@strapi/content-manager 0.0.0-next.929f36e7cd2888f97e66b5159baa15234a283fca → 0.0.0-next.92e60e369ae0e382a5d486de347f6d286ab22987

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 (540) hide show
  1. package/dist/admin/components/ComponentIcon.js +3 -0
  2. package/dist/admin/components/ComponentIcon.js.map +1 -1
  3. package/dist/admin/components/ComponentIcon.mjs +3 -0
  4. package/dist/admin/components/ComponentIcon.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +3 -2
  6. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +3 -2
  8. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  10. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  11. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  12. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  13. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  14. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  15. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  16. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  22. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  23. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  24. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  25. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  26. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  27. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  28. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  29. package/dist/admin/components/LeftMenu.js +94 -50
  30. package/dist/admin/components/LeftMenu.js.map +1 -1
  31. package/dist/admin/components/LeftMenu.mjs +97 -53
  32. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  33. package/dist/admin/components/RelativeTime.js.map +1 -1
  34. package/dist/admin/components/RelativeTime.mjs.map +1 -1
  35. package/dist/admin/components/Widgets.js +437 -0
  36. package/dist/admin/components/Widgets.js.map +1 -0
  37. package/dist/admin/components/Widgets.mjs +414 -0
  38. package/dist/admin/components/Widgets.mjs.map +1 -0
  39. package/dist/admin/content-manager.js.map +1 -1
  40. package/dist/admin/content-manager.mjs.map +1 -1
  41. package/dist/admin/history/components/HistoryAction.js.map +1 -1
  42. package/dist/admin/history/components/HistoryAction.mjs.map +1 -1
  43. package/dist/admin/history/components/VersionContent.js +24 -3
  44. package/dist/admin/history/components/VersionContent.js.map +1 -1
  45. package/dist/admin/history/components/VersionContent.mjs +25 -4
  46. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  47. package/dist/admin/history/components/VersionHeader.js +7 -0
  48. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  49. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  50. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  51. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  52. package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
  53. package/dist/admin/history/components/VersionsList.js +1 -1
  54. package/dist/admin/history/components/VersionsList.js.map +1 -1
  55. package/dist/admin/history/components/VersionsList.mjs +1 -1
  56. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  57. package/dist/admin/history/pages/History.js +8 -16
  58. package/dist/admin/history/pages/History.js.map +1 -1
  59. package/dist/admin/history/pages/History.mjs +8 -16
  60. package/dist/admin/history/pages/History.mjs.map +1 -1
  61. package/dist/admin/history/services/historyVersion.js.map +1 -1
  62. package/dist/admin/history/services/historyVersion.mjs.map +1 -1
  63. package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
  64. package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
  65. package/dist/admin/hooks/useDocumentActions.js +43 -12
  66. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  67. package/dist/admin/hooks/useDocumentActions.mjs +44 -13
  68. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  69. package/dist/admin/hooks/useDocumentContext.js +57 -0
  70. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  71. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  72. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  73. package/dist/admin/index.js +81 -5
  74. package/dist/admin/index.js.map +1 -1
  75. package/dist/admin/index.mjs +80 -3
  76. package/dist/admin/index.mjs.map +1 -1
  77. package/dist/admin/layout.js +28 -33
  78. package/dist/admin/layout.js.map +1 -1
  79. package/dist/admin/layout.mjs +29 -15
  80. package/dist/admin/layout.mjs.map +1 -1
  81. package/dist/admin/pages/EditView/EditViewPage.js +101 -88
  82. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  83. package/dist/admin/pages/EditView/EditViewPage.mjs +103 -90
  84. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  85. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  86. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  87. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  88. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  89. package/dist/admin/pages/EditView/components/DocumentActions.js +335 -123
  90. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  91. package/dist/admin/pages/EditView/components/DocumentActions.mjs +342 -130
  92. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  93. package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -1
  94. package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  96. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  98. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  100. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -1
  102. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  104. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  106. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  108. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  110. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  112. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  114. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  116. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  118. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
  120. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  122. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  124. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  126. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  128. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
  130. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
  132. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +19 -5
  134. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +20 -6
  136. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  138. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  140. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +27 -24
  142. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  143. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +29 -26
  144. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  145. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  146. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  147. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  148. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  149. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +508 -345
  150. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  151. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +508 -347
  152. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  153. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +180 -70
  154. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  155. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +184 -74
  156. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  157. package/dist/admin/pages/EditView/components/FormInputs/UID.js +13 -10
  158. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  159. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +13 -10
  160. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  161. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  162. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  163. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  164. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  165. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  166. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  167. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  168. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  169. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  170. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
  171. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  172. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  173. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  174. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  175. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -1
  176. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -1
  177. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -1
  178. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -1
  179. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  180. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  181. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  182. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  183. package/dist/admin/pages/EditView/components/Header.js +92 -27
  184. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  185. package/dist/admin/pages/EditView/components/Header.mjs +94 -29
  186. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  187. package/dist/admin/pages/EditView/components/InputRenderer.js +42 -34
  188. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  189. package/dist/admin/pages/EditView/components/InputRenderer.mjs +42 -34
  190. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  191. package/dist/admin/pages/EditView/utils/data.js +128 -0
  192. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  193. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  194. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  195. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  196. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  197. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  198. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  199. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  200. package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
  201. package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -1
  202. package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -1
  203. package/dist/admin/pages/ListView/ListViewPage.js +225 -132
  204. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  205. package/dist/admin/pages/ListView/ListViewPage.mjs +227 -134
  206. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  207. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
  208. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
  209. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +6 -16
  210. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  211. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +6 -16
  212. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -1
  213. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +20 -32
  214. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  215. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +21 -33
  216. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  217. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +13 -3
  218. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  219. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +13 -3
  220. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  221. package/dist/admin/pages/ListView/components/Filters.js +8 -2
  222. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  223. package/dist/admin/pages/ListView/components/Filters.mjs +8 -2
  224. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  225. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  226. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  227. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  228. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  229. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +1 -1
  230. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  231. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +1 -1
  232. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  233. package/dist/admin/pages/ListView/components/TableCells/Media.js +1 -1
  234. package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -1
  235. package/dist/admin/pages/ListView/components/TableCells/Media.mjs +1 -1
  236. package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -1
  237. package/dist/admin/pages/ListView/components/TableCells/Relations.js +8 -4
  238. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  239. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +8 -4
  240. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  241. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  242. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  243. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  244. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  245. package/dist/admin/preview/components/InputPopover.js +189 -0
  246. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  247. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  248. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  249. package/dist/admin/preview/components/PreviewHeader.js +2 -6
  250. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  251. package/dist/admin/preview/components/PreviewHeader.mjs +2 -6
  252. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  253. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  254. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  255. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  256. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  257. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  258. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  259. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  260. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  261. package/dist/admin/preview/pages/Preview.js +180 -84
  262. package/dist/admin/preview/pages/Preview.js.map +1 -1
  263. package/dist/admin/preview/pages/Preview.mjs +182 -86
  264. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  265. package/dist/admin/preview/services/preview.js.map +1 -1
  266. package/dist/admin/preview/services/preview.mjs.map +1 -1
  267. package/dist/admin/preview/utils/constants.js +56 -0
  268. package/dist/admin/preview/utils/constants.js.map +1 -0
  269. package/dist/admin/preview/utils/constants.mjs +52 -0
  270. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  271. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  272. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  273. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  274. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  275. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  276. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  277. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  278. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  279. package/dist/admin/preview/utils/previewScript.js +534 -0
  280. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  281. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  282. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  283. package/dist/admin/router.js.map +1 -1
  284. package/dist/admin/router.mjs.map +1 -1
  285. package/dist/admin/services/api.js +5 -1
  286. package/dist/admin/services/api.js.map +1 -1
  287. package/dist/admin/services/api.mjs +5 -1
  288. package/dist/admin/services/api.mjs.map +1 -1
  289. package/dist/admin/services/documents.js +59 -17
  290. package/dist/admin/services/documents.js.map +1 -1
  291. package/dist/admin/services/documents.mjs +59 -17
  292. package/dist/admin/services/documents.mjs.map +1 -1
  293. package/dist/admin/services/homepage.js +30 -0
  294. package/dist/admin/services/homepage.js.map +1 -0
  295. package/dist/admin/services/homepage.mjs +28 -0
  296. package/dist/admin/services/homepage.mjs.map +1 -0
  297. package/dist/admin/services/relations.js.map +1 -1
  298. package/dist/admin/services/relations.mjs.map +1 -1
  299. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  300. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  301. package/dist/admin/src/components/Widgets.d.ts +8 -0
  302. package/dist/admin/src/content-manager.d.ts +0 -3
  303. package/dist/admin/src/exports.d.ts +1 -0
  304. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  305. package/dist/admin/src/history/pages/History.d.ts +1 -1
  306. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  307. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  308. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  309. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  310. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  311. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  312. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  313. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  314. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
  315. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  316. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  317. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  318. package/dist/admin/src/pages/EditView/components/Header.d.ts +15 -0
  319. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -2
  320. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  321. package/dist/admin/src/pages/ListView/components/TableCells/Relations.d.ts +0 -3
  322. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  323. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  324. package/dist/admin/src/preview/pages/Preview.d.ts +14 -1
  325. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  326. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  327. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  328. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  329. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  330. package/dist/admin/src/services/api.d.ts +1 -1
  331. package/dist/admin/src/services/components.d.ts +2 -2
  332. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  333. package/dist/admin/src/services/documents.d.ts +23 -17
  334. package/dist/admin/src/services/homepage.d.ts +5 -0
  335. package/dist/admin/src/services/init.d.ts +1 -1
  336. package/dist/admin/src/services/relations.d.ts +2 -2
  337. package/dist/admin/src/services/uid.d.ts +3 -3
  338. package/dist/admin/src/utils/api.d.ts +1 -1
  339. package/dist/admin/src/utils/validation.d.ts +1 -0
  340. package/dist/admin/translations/en.json.js +15 -1
  341. package/dist/admin/translations/en.json.js.map +1 -1
  342. package/dist/admin/translations/en.json.mjs +15 -1
  343. package/dist/admin/translations/en.json.mjs.map +1 -1
  344. package/dist/admin/translations/es.json.js +6 -2
  345. package/dist/admin/translations/es.json.js.map +1 -1
  346. package/dist/admin/translations/es.json.mjs +6 -2
  347. package/dist/admin/translations/es.json.mjs.map +1 -1
  348. package/dist/admin/translations/fr.json.js +12 -3
  349. package/dist/admin/translations/fr.json.js.map +1 -1
  350. package/dist/admin/translations/fr.json.mjs +12 -3
  351. package/dist/admin/translations/fr.json.mjs.map +1 -1
  352. package/dist/admin/translations/ru.json.js +235 -226
  353. package/dist/admin/translations/ru.json.js.map +1 -1
  354. package/dist/admin/translations/ru.json.mjs +230 -226
  355. package/dist/admin/translations/ru.json.mjs.map +1 -1
  356. package/dist/admin/utils/api.js +1 -1
  357. package/dist/admin/utils/api.js.map +1 -1
  358. package/dist/admin/utils/api.mjs +1 -1
  359. package/dist/admin/utils/api.mjs.map +1 -1
  360. package/dist/admin/utils/translations.js.map +1 -1
  361. package/dist/admin/utils/translations.mjs.map +1 -1
  362. package/dist/admin/utils/urls.js.map +1 -1
  363. package/dist/admin/utils/urls.mjs.map +1 -1
  364. package/dist/admin/utils/users.js.map +1 -1
  365. package/dist/admin/utils/users.mjs.map +1 -1
  366. package/dist/admin/utils/validation.js +19 -7
  367. package/dist/admin/utils/validation.js.map +1 -1
  368. package/dist/admin/utils/validation.mjs +19 -7
  369. package/dist/admin/utils/validation.mjs.map +1 -1
  370. package/dist/server/controllers/collection-types.js +2 -1
  371. package/dist/server/controllers/collection-types.js.map +1 -1
  372. package/dist/server/controllers/collection-types.mjs +2 -1
  373. package/dist/server/controllers/collection-types.mjs.map +1 -1
  374. package/dist/server/controllers/content-types.js +11 -1
  375. package/dist/server/controllers/content-types.js.map +1 -1
  376. package/dist/server/controllers/content-types.mjs +11 -1
  377. package/dist/server/controllers/content-types.mjs.map +1 -1
  378. package/dist/server/controllers/index.js +3 -1
  379. package/dist/server/controllers/index.js.map +1 -1
  380. package/dist/server/controllers/index.mjs +3 -1
  381. package/dist/server/controllers/index.mjs.map +1 -1
  382. package/dist/server/controllers/relations.js +8 -6
  383. package/dist/server/controllers/relations.js.map +1 -1
  384. package/dist/server/controllers/relations.mjs +8 -6
  385. package/dist/server/controllers/relations.mjs.map +1 -1
  386. package/dist/server/controllers/single-types.js +3 -1
  387. package/dist/server/controllers/single-types.js.map +1 -1
  388. package/dist/server/controllers/single-types.mjs +3 -1
  389. package/dist/server/controllers/single-types.mjs.map +1 -1
  390. package/dist/server/controllers/validation/dimensions.js.map +1 -1
  391. package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
  392. package/dist/server/controllers/validation/index.js +14 -2
  393. package/dist/server/controllers/validation/index.js.map +1 -1
  394. package/dist/server/controllers/validation/index.mjs +14 -2
  395. package/dist/server/controllers/validation/index.mjs.map +1 -1
  396. package/dist/server/controllers/validation/model-configuration.js +2 -2
  397. package/dist/server/controllers/validation/model-configuration.js.map +1 -1
  398. package/dist/server/controllers/validation/model-configuration.mjs +2 -2
  399. package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
  400. package/dist/server/history/services/lifecycles.js +23 -19
  401. package/dist/server/history/services/lifecycles.js.map +1 -1
  402. package/dist/server/history/services/lifecycles.mjs +23 -19
  403. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  404. package/dist/server/history/utils.js.map +1 -1
  405. package/dist/server/history/utils.mjs.map +1 -1
  406. package/dist/server/homepage/controllers/homepage.js +62 -0
  407. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  408. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  409. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  410. package/dist/server/homepage/controllers/index.js +10 -0
  411. package/dist/server/homepage/controllers/index.js.map +1 -0
  412. package/dist/server/homepage/controllers/index.mjs +8 -0
  413. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  414. package/dist/server/homepage/index.js +14 -0
  415. package/dist/server/homepage/index.js.map +1 -0
  416. package/dist/server/homepage/index.mjs +12 -0
  417. package/dist/server/homepage/index.mjs.map +1 -0
  418. package/dist/server/homepage/routes/homepage.js +36 -0
  419. package/dist/server/homepage/routes/homepage.js.map +1 -0
  420. package/dist/server/homepage/routes/homepage.mjs +34 -0
  421. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  422. package/dist/server/homepage/routes/index.js +13 -0
  423. package/dist/server/homepage/routes/index.js.map +1 -0
  424. package/dist/server/homepage/routes/index.mjs +11 -0
  425. package/dist/server/homepage/routes/index.mjs.map +1 -0
  426. package/dist/server/homepage/services/homepage.js +198 -0
  427. package/dist/server/homepage/services/homepage.js.map +1 -0
  428. package/dist/server/homepage/services/homepage.mjs +196 -0
  429. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  430. package/dist/server/homepage/services/index.js +10 -0
  431. package/dist/server/homepage/services/index.js.map +1 -0
  432. package/dist/server/homepage/services/index.mjs +8 -0
  433. package/dist/server/homepage/services/index.mjs.map +1 -0
  434. package/dist/server/middlewares/routing.js.map +1 -1
  435. package/dist/server/middlewares/routing.mjs.map +1 -1
  436. package/dist/server/preview/services/preview-config.js +11 -32
  437. package/dist/server/preview/services/preview-config.js.map +1 -1
  438. package/dist/server/preview/services/preview-config.mjs +12 -33
  439. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  440. package/dist/server/preview/services/preview.js +4 -1
  441. package/dist/server/preview/services/preview.js.map +1 -1
  442. package/dist/server/preview/services/preview.mjs +4 -1
  443. package/dist/server/preview/services/preview.mjs.map +1 -1
  444. package/dist/server/preview/utils.js.map +1 -1
  445. package/dist/server/preview/utils.mjs.map +1 -1
  446. package/dist/server/routes/index.js +3 -1
  447. package/dist/server/routes/index.js.map +1 -1
  448. package/dist/server/routes/index.mjs +3 -1
  449. package/dist/server/routes/index.mjs.map +1 -1
  450. package/dist/server/services/configuration.js.map +1 -1
  451. package/dist/server/services/configuration.mjs.map +1 -1
  452. package/dist/server/services/data-mapper.js +4 -1
  453. package/dist/server/services/data-mapper.js.map +1 -1
  454. package/dist/server/services/data-mapper.mjs +4 -1
  455. package/dist/server/services/data-mapper.mjs.map +1 -1
  456. package/dist/server/services/document-manager.js +8 -1
  457. package/dist/server/services/document-manager.js.map +1 -1
  458. package/dist/server/services/document-manager.mjs +8 -1
  459. package/dist/server/services/document-manager.mjs.map +1 -1
  460. package/dist/server/services/document-metadata.js +26 -2
  461. package/dist/server/services/document-metadata.js.map +1 -1
  462. package/dist/server/services/document-metadata.mjs +26 -2
  463. package/dist/server/services/document-metadata.mjs.map +1 -1
  464. package/dist/server/services/field-sizes.js.map +1 -1
  465. package/dist/server/services/field-sizes.mjs.map +1 -1
  466. package/dist/server/services/index.js +3 -1
  467. package/dist/server/services/index.js.map +1 -1
  468. package/dist/server/services/index.mjs +3 -1
  469. package/dist/server/services/index.mjs.map +1 -1
  470. package/dist/server/services/uid.js.map +1 -1
  471. package/dist/server/services/uid.mjs.map +1 -1
  472. package/dist/server/services/utils/configuration/attributes.js +1 -1
  473. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  474. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  475. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  476. package/dist/server/services/utils/configuration/layouts.js +1 -1
  477. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  478. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  479. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  480. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  481. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  482. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  483. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  484. package/dist/server/services/utils/populate.js +11 -0
  485. package/dist/server/services/utils/populate.js.map +1 -1
  486. package/dist/server/services/utils/populate.mjs +11 -0
  487. package/dist/server/services/utils/populate.mjs.map +1 -1
  488. package/dist/server/services/utils/store.js.map +1 -1
  489. package/dist/server/services/utils/store.mjs.map +1 -1
  490. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  491. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  492. package/dist/server/src/controllers/index.d.ts.map +1 -1
  493. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  494. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  495. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  496. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  497. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  498. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  499. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  500. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  501. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  502. package/dist/server/src/homepage/index.d.ts +23 -0
  503. package/dist/server/src/homepage/index.d.ts.map +1 -0
  504. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  505. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  506. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  507. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  508. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  509. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  510. package/dist/server/src/homepage/services/index.d.ts +16 -0
  511. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  512. package/dist/server/src/index.d.ts +15 -0
  513. package/dist/server/src/index.d.ts.map +1 -1
  514. package/dist/server/src/preview/services/index.d.ts +1 -0
  515. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  516. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  517. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  518. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  519. package/dist/server/src/preview/utils.d.ts +1 -0
  520. package/dist/server/src/preview/utils.d.ts.map +1 -1
  521. package/dist/server/src/routes/index.d.ts +1 -0
  522. package/dist/server/src/routes/index.d.ts.map +1 -1
  523. package/dist/server/src/services/data-mapper.d.ts +1 -0
  524. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  525. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  526. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  527. package/dist/server/src/services/index.d.ts +14 -0
  528. package/dist/server/src/services/index.d.ts.map +1 -1
  529. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  530. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  531. package/dist/shared/contracts/collection-types.d.ts +0 -1
  532. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  533. package/dist/shared/contracts/homepage.d.ts +38 -0
  534. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  535. package/package.json +13 -11
  536. package/dist/admin/features/DocumentContext.js +0 -71
  537. package/dist/admin/features/DocumentContext.js.map +0 -1
  538. package/dist/admin/features/DocumentContext.mjs +0 -49
  539. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  540. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -1 +1 @@
1
- {"version":3,"file":"ListViewPage.mjs","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useRBAC,\n Layouts,\n useTable,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Typography, ButtonProps } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const { data, error, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isFetching) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n return (\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n marginLeft={2}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","collectionType","model","schema","useDoc","list","useDocumentLayout","displayedHeaders","setDisplayedHeaders","React","useState","listLayout","usePrev","layout","useEffect","isEqual","handleSetHeaders","headers","convertListLayoutToFieldLayouts","attributes","metadatas","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","useMemo","buildValidParams","data","error","isFetching","useGetAllDocumentsQuery","type","message","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","map","header","translation","label","id","name","defaultMessage","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","_jsxs","Main","Title","primaryAction","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Action","endActions","_Fragment","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","startActions","SearchInput","disabled","length","target","placeholder","trackedEvent","filterable","Filters","Content","Flex","gap","direction","alignItems","Table","Root","rows","isLoading","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","action","variant","Body","row","Row","cursor","onClick","documentId","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","includes","split","Typography","textColor","getDisplayName","CellContent","content","rowId","ActionsCell","e","stopPropagation","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","minWidth","marginLeft","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"ListViewPage.mjs","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useRBAC,\n Layouts,\n useTable,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const { data, error, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isFetching) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n if (!isFetching && results.length === 0) {\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? <Filters schema={schema} /> : null}\n </>\n }\n />\n <Layouts.Content>\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={canCreate ? <CreateButton variant=\"secondary\" /> : null}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n }\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n marginLeft={2}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","collectionType","model","schema","useDoc","list","useDocumentLayout","displayedHeaders","setDisplayedHeaders","React","useState","listLayout","usePrev","layout","useEffect","isEqual","handleSetHeaders","headers","convertListLayoutToFieldLayouts","attributes","metadatas","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","useMemo","buildValidParams","data","error","isFetching","useGetAllDocumentsQuery","type","message","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","map","header","translation","label","id","name","defaultMessage","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","length","_jsxs","_Fragment","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateNewEntry","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Action","endActions","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","startActions","SearchInput","target","placeholder","trackedEvent","filterable","Filters","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","disabled","Flex","gap","direction","alignItems","Table","Root","rows","isLoading","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","documentId","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","includes","split","Typography","textColor","getDisplayName","CellContent","rowId","ActionsCell","e","stopPropagation","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","minWidth","marginLeft","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,MAAM,EAAEA,sBAAsB,EAAE,GAAGC,KAAAA;AAEnC;;AAEkG,qGAClG,MAAMC,mBAAsBC,GAAAA,MAAAA,CAAOC,OAAQC,CAAAA,MAAM,CAAC;;AAElD,CAAC;AAED,MAAMC,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,kBAAmBC,CAAAA,cAAAA,CAAAA;AAEvE,IAAA,MAAM,EAAEC,cAAc,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAGC,MAAAA,EAAAA;AAC1C,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGC,iBAAkBJ,CAAAA,KAAAA,CAAAA;AAEnC,IAAA,MAAM,CAACK,gBAAkBC,EAAAA,mBAAAA,CAAoB,GAAGC,KAAMC,CAAAA,QAAQ,CAAoB,EAAE,CAAA;IAEpF,MAAMC,UAAAA,GAAaC,OAAQP,CAAAA,IAAAA,CAAKQ,MAAM,CAAA;AACtCJ,IAAAA,KAAAA,CAAMK,SAAS,CAAC,IAAA;AACd;;;AAGC,QACD,IAAI,CAACC,OAAAA,CAAQJ,UAAYN,EAAAA,IAAAA,CAAKQ,MAAM,CAAG,EAAA;AACrCL,YAAAA,mBAAAA,CAAoBH,KAAKQ,MAAM,CAAA;AACjC;KACC,EAAA;AAACR,QAAAA,IAAAA,CAAKQ,MAAM;AAAEF,QAAAA;AAAW,KAAA,CAAA;AAE5B,IAAA,MAAMK,mBAAmB,CAACC,OAAAA,GAAAA;AACxBT,QAAAA,mBAAAA,CACEU,gCAAgCD,OAASd,EAAAA,MAAAA,CAAQgB,UAAU,EAAEd,KAAKe,SAAS,CAAA,CAAA;AAE/E,KAAA;AAEA,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAKjB,CAAA;QACDC,IAAM,EAAA,GAAA;AACNC,QAAAA,QAAAA,EAAUnB,IAAKoB,CAAAA,QAAQ,CAACD,QAAQ,CAACE,QAAQ,EAAA;AACzCC,QAAAA,IAAAA,EAAMtB,KAAKoB,QAAQ,CAACG,aAAa,GAC7B,CAAA,EAAGvB,KAAKoB,QAAQ,CAACG,aAAa,CAAC,CAAC,EAAEvB,IAAAA,CAAKoB,QAAQ,CAACI,gBAAgB,EAAE,GAClE;AACN,KAAA,CAAA;AAEA,IAAA,MAAMC,SAASrB,KAAMsB,CAAAA,OAAO,CAAC,IAAMC,iBAAiBX,KAAQ,CAAA,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;IAEnE,MAAM,EAAEY,IAAI,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGC,uBAAwB,CAAA;AAC1DlC,QAAAA,KAAAA;AACA4B,QAAAA;AACF,KAAA,CAAA;AAEA;;MAGArB,KAAAA,CAAMK,SAAS,CAAC,IAAA;AACd,QAAA,IAAIoB,KAAO,EAAA;YACTvC,kBAAmB,CAAA;gBACjB0C,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASxC,cAAeoC,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOpC,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;IAE9C,MAAM,EAAE4C,UAAU,EAAE,EAAEC,UAAU,EAAE,GAAGP,QAAQ,EAAC;AAE9CxB,IAAAA,KAAAA,CAAMK,SAAS,CAAC,IAAA;QACd,IAAI0B,UAAAA,IAAcA,UAAWC,CAAAA,SAAS,GAAG,CAAA,IAAKD,WAAWjB,IAAI,GAAGiB,UAAWC,CAAAA,SAAS,EAAE;YACpFlD,QACE,CAAA;AACEmD,gBAAAA,MAAAA,EAAQC,SAAU,CAAA;AAChB,oBAAA,GAAGtB,KAAK;AACRE,oBAAAA,IAAAA,EAAMiB,WAAWC;AACnB,iBAAA;aAEF,EAAA;gBAAEG,OAAS,EAAA;AAAK,aAAA,CAAA;AAEpB;KACC,EAAA;AAACJ,QAAAA,UAAAA;AAAY/C,QAAAA,aAAAA;AAAe4B,QAAAA,KAAAA;AAAO9B,QAAAA;AAAS,KAAA,CAAA;IAE/C,MAAM,EAAEsD,SAAS,EAAE,GAAGC,eAAAA,CAAgB,cAAgB,EAAA,CAAC,EAAED,SAAS,EAAE,IAAM;AACxEA,YAAAA;SACF,CAAA,CAAA;AAEA,IAAA,MAAME,mBAAmBC,YAAa,CAAA,cAAA,EAAgB,CAAC,EAAED,gBAAgB,EAAE,GAAKA,gBAAAA,CAAAA;AAChF;;AAEC,MACD,MAAME,YAAAA,GAAexC,KAAMsB,CAAAA,OAAO,CAAC,IAAA;QACjC,MAAMd,OAAAA,GAAU8B,iBAAiBjE,sBAAwB,EAAA;AACvDyB,YAAAA,gBAAAA;YACAM,MAAQR,EAAAA;AACV,SAAA,CAAA;AAEA,QAAA,MAAM6C,mBAAmBjC,OAAQV,CAAAA,gBAAgB,CAAC4C,GAAG,CAAkB,CAACC,MAAAA,GAAAA;AACtE;;;;;AAKC,UACD,MAAMC,WACJ,GAAA,OAAOD,MAAOE,CAAAA,KAAK,KAAK,QACpB,GAAA;gBACEC,EAAI,EAAA,CAAC,8BAA8B,EAAErD,KAAAA,CAAM,CAAC,EAAEkD,MAAAA,CAAOI,IAAI,CAAE,CAAA;AAC3DC,gBAAAA,cAAAA,EAAgBL,OAAOE;AACzB,aAAA,GACAF,OAAOE,KAAK;YAElB,OAAO;AACL,gBAAA,GAAGF,MAAM;AACTE,gBAAAA,KAAAA,EAAO7D,aAAc4D,CAAAA,WAAAA,CAAAA;AACrBG,gBAAAA,IAAAA,EAAM,GAAGJ,MAAOI,CAAAA,IAAI,CAAGJ,EAAAA,MAAAA,CAAOM,SAAS,EAAEF,IAAAA,GAAO,CAAC,CAAC,EAAEJ,MAAOM,CAAAA,SAAS,CAACF,IAAI,CAAA,CAAE,GAAG,EAAI,CAAA;AACpF,aAAA;AACF,SAAA,CAAA;QAEA,IAAIrD,MAAAA,EAAQwD,SAASC,eAAiB,EAAA;AACpCV,YAAAA,gBAAAA,CAAiBW,IAAI,CAAC;gBACpBC,SAAW,EAAA;oBACTzB,IAAM,EAAA;AACR,iBAAA;gBACAmB,IAAM,EAAA,QAAA;AACNF,gBAAAA,KAAAA,EAAO7D,aAAc,CAAA;oBACnB8D,EAAIvD,EAAAA,cAAAA,CAAe,CAAC,oCAAoC,CAAC,CAAA;oBACzDyD,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAM,UAAY,EAAA,KAAA;gBACZC,QAAU,EAAA;AACZ,aAAA,CAAA;AACF;QAEA,OAAOd,gBAAAA;KACN,EAAA;AACD3C,QAAAA,gBAAAA;AACAd,QAAAA,aAAAA;AACAY,QAAAA,IAAAA;AACA0C,QAAAA,gBAAAA;AACA5C,QAAAA,MAAAA,EAAQwD,OAASC,EAAAA,eAAAA;AACjB1D,QAAAA;AACD,KAAA,CAAA;AAED,IAAA,IAAIiC,UAAY,EAAA;QACd,qBAAO8B,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,IAAIjC,KAAO,EAAA;QACT,qBAAO+B,GAAA,CAACC,KAAKE,KAAK,EAAA,EAAA,CAAA;AACpB;AAEA,IAAA,MAAMC,gBAAmBlE,GAAAA,MAAAA,EAAQmE,IAAKC,CAAAA,WAAAA,GAClC9E,aAAc,CAAA;QAAE8D,EAAIpD,EAAAA,MAAAA,CAAOmE,IAAI,CAACC,WAAW;QAAEd,cAAgBtD,EAAAA,MAAAA,CAAOmE,IAAI,CAACC;AAAY,KAAA,CAAA,GACrF9E,aAAc,CAAA;QACZ8D,EAAI,EAAA,qCAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;IAEJ,MAAMe,cAAAA,GAAiB,CAACjB,EAA6B,GAAA,IAAA;YACnDlE,UAAW,CAAA,uBAAA,CAAA;YACXE,QAAS,CAAA;AACPkF,gBAAAA,QAAAA,EAAUlB,GAAG7B,QAAQ,EAAA;AACrBgB,gBAAAA,MAAAA,EAAQC,SAAU,CAAA;AAAE+B,oBAAAA,OAAAA,EAASrD,MAAMqD;AAAQ,iBAAA;AAC7C,aAAA,CAAA;AACF,SAAA;AAEA,IAAA,IAAI,CAACvC,UAAAA,IAAcI,OAAQoC,CAAAA,MAAM,KAAK,CAAG,EAAA;QACvC,qBACEC,IAAA,CAAAC,QAAA,EAAA;;8BACEZ,GAACa,CAAAA,KAAAA,CAAMC,cAAc,CAACC,YAAY,EAAA;AAEhC,oBAAA,QAAA,gBAAAf,GAACgB,CAAAA,GAAAA,EAAAA,EAAAA;;AAEH,8BAAAL,IAAA,CAACV,KAAKgB,IAAI,EAAA;;AACR,sCAAAjB,GAAA,CAACC,KAAKiB,KAAK,EAAA;AAAE,4BAAA,QAAA,EAAA,CAAA,EAAGd,gBAAkB,CAAA;;sCAClCJ,GAACjF,CAAAA,mBAAAA,EAAAA;AACCoG,4BAAAA,aAAAA,EACEvC,SACE,iBAAAoB,GAAA,CAACa,KAAMC,CAAAA,cAAc,CAACM,cAAc,EAAA;AAClC,gCAAA,QAAA,gBAAApB,GAACqB,CAAAA,YAAAA,EAAAA,EAAAA;AAED,6BAAA,CAAA,GAAA,IAAA;AAENC,4BAAAA,QAAAA,EAAU9F,aACR,CAAA;AACE8D,gCAAAA,EAAAA,EAAIvD,cAAe,CAAA,gCAAA,CAAA;gCACnByD,cACE,EAAA;6BAEJ,EAAA;AAAE+B,gCAAAA,MAAAA,EAAQhD,UAAYiD,EAAAA;AAAM,6BAAA,CAAA;4BAE9BC,KAAOrB,EAAAA,gBAAAA;AACPsB,4BAAAA,gBAAAA,gBAAkB1B,GAAC2B,CAAAA,UAAAA,EAAAA,EAAAA;;AAErB,sCAAA3B,GAAA,CAAC/E,QAAQ2G,MAAM,EAAA;4BACbC,UACE,gBAAAlB,IAAA,CAAAC,QAAA,EAAA;;kDACEZ,GAAC8B,CAAAA,aAAAA,EAAAA;wCAAcC,IAAK,EAAA;;kDACpB/B,GAACgC,CAAAA,gBAAAA,EAAAA;wCACCC,UAAYlF,EAAAA,gBAAAA;wCACZmF,YAAc,EAAA,IAAM3F,mBAAoBH,CAAAA,IAAAA,CAAKQ,MAAM,CAAA;AACnDI,wCAAAA,OAAAA,EAASV,iBAAiB4C,GAAG,CAAC,CAACC,MAAAA,GAAWA,OAAOI,IAAI;;;;4BAI3D4C,YACE,gBAAAxB,IAAA,CAAAC,QAAA,EAAA;;AACGxE,oCAAAA,IAAAA,CAAKoB,QAAQ,CAACsC,UAAU,kBACvBE,GAACoC,CAAAA,WAAAA,EAAAA;AACC/C,wCAAAA,KAAAA,EAAO7D,aACL,CAAA;4CAAE8D,EAAI,EAAA,4BAAA;4CAA8BE,cAAgB,EAAA;yCACpD,EAAA;4CAAE6C,MAAQjC,EAAAA;AAAiB,yCAAA,CAAA;AAE7BkC,wCAAAA,WAAAA,EAAa9G,aAAc,CAAA;4CACzB8D,EAAI,EAAA,eAAA;4CACJE,cAAgB,EAAA;AAClB,yCAAA,CAAA;wCACA+C,YAAa,EAAA;;AAGhBnG,oCAAAA,IAAAA,CAAKoB,QAAQ,CAACgF,UAAU,IAAItG,uBAAS8D,GAACyC,CAAAA,WAAAA,EAAAA;wCAAQvG,MAAQA,EAAAA;AAAa,qCAAA,CAAA,GAAA;;;;AAI1E,sCAAA8D,GAAA,CAAC/E,QAAQyH,OAAO,EAAA;AACd,4BAAA,QAAA,gBAAA1C,GAACgB,CAAAA,GAAAA,EAAAA;gCAAI2B,UAAW,EAAA,UAAA;gCAAWC,MAAO,EAAA,cAAA;gCAAeC,SAAS,EAAA,IAAA;AACxD,gCAAA,QAAA,gBAAA7C,GAAC8C,CAAAA,gBAAAA,EAAAA;AACCC,oCAAAA,MAAAA,EAAQnE,0BAAYoB,GAACqB,CAAAA,YAAAA,EAAAA;wCAAa2B,OAAQ,EAAA;AAAiB,qCAAA,CAAA,GAAA,IAAA;AAC3DC,oCAAAA,OAAAA,EAASzH,aAAc,CAAA;wCACrB8D,EAAI,EAAA,kDAAA;wCACJE,cAAgB,EAAA;AAClB,qCAAA,CAAA;oCACAqD,SAAS,EAAA,IAAA;AACTK,oCAAAA,IAAAA,gBAAMlD,GAACmD,CAAAA,cAAAA,EAAAA;wCAAeC,KAAM,EAAA;;;;;;;;;AAO1C;IAEA,qBACEzC,IAAA,CAAAC,QAAA,EAAA;;0BACEZ,GAACa,CAAAA,KAAAA,CAAMC,cAAc,CAACC,YAAY,EAAA;AAEhC,gBAAA,QAAA,gBAAAf,GAACgB,CAAAA,GAAAA,EAAAA,EAAAA;;AAEH,0BAAAL,IAAA,CAACV,KAAKgB,IAAI,EAAA;;AACR,kCAAAjB,GAAA,CAACC,KAAKiB,KAAK,EAAA;AAAE,wBAAA,QAAA,EAAA,CAAA,EAAGd,gBAAkB,CAAA;;kCAClCJ,GAACjF,CAAAA,mBAAAA,EAAAA;AACCoG,wBAAAA,aAAAA,EACEvC,SACE,iBAAAoB,GAAA,CAACa,KAAMC,CAAAA,cAAc,CAACM,cAAc,EAAA;AAClC,4BAAA,QAAA,gBAAApB,GAACqB,CAAAA,YAAAA,EAAAA,EAAAA;AAED,yBAAA,CAAA,GAAA,IAAA;AAENC,wBAAAA,QAAAA,EAAU9F,aACR,CAAA;AACE8D,4BAAAA,EAAAA,EAAIvD,cAAe,CAAA,gCAAA,CAAA;4BACnByD,cACE,EAAA;yBAEJ,EAAA;AAAE+B,4BAAAA,MAAAA,EAAQhD,UAAYiD,EAAAA;AAAM,yBAAA,CAAA;wBAE9BC,KAAOrB,EAAAA,gBAAAA;AACPsB,wBAAAA,gBAAAA,gBAAkB1B,GAAC2B,CAAAA,UAAAA,EAAAA,EAAAA;;AAErB,kCAAA3B,GAAA,CAAC/E,QAAQ2G,MAAM,EAAA;wBACbC,UACE,gBAAAlB,IAAA,CAAAC,QAAA,EAAA;;8CACEZ,GAAC8B,CAAAA,aAAAA,EAAAA;oCAAcC,IAAK,EAAA;;8CACpB/B,GAACgC,CAAAA,gBAAAA,EAAAA;oCACCC,UAAYlF,EAAAA,gBAAAA;oCACZmF,YAAc,EAAA,IAAM3F,mBAAoBH,CAAAA,IAAAA,CAAKQ,MAAM,CAAA;AACnDI,oCAAAA,OAAAA,EAASV,iBAAiB4C,GAAG,CAAC,CAACC,MAAAA,GAAWA,OAAOI,IAAI;;;;wBAI3D4C,YACE,gBAAAxB,IAAA,CAAAC,QAAA,EAAA;;AACGxE,gCAAAA,IAAAA,CAAKoB,QAAQ,CAACsC,UAAU,kBACvBE,GAACoC,CAAAA,WAAAA,EAAAA;oCACCiB,QAAU/E,EAAAA,OAAAA,CAAQoC,MAAM,KAAK,CAAA;AAC7BrB,oCAAAA,KAAAA,EAAO7D,aACL,CAAA;wCAAE8D,EAAI,EAAA,4BAAA;wCAA8BE,cAAgB,EAAA;qCACpD,EAAA;wCAAE6C,MAAQjC,EAAAA;AAAiB,qCAAA,CAAA;AAE7BkC,oCAAAA,WAAAA,EAAa9G,aAAc,CAAA;wCACzB8D,EAAI,EAAA,eAAA;wCACJE,cAAgB,EAAA;AAClB,qCAAA,CAAA;oCACA+C,YAAa,EAAA;;AAGhBnG,gCAAAA,IAAAA,CAAKoB,QAAQ,CAACgF,UAAU,IAAItG,uBAC3B8D,GAACyC,CAAAA,WAAAA,EAAAA;oCAAQY,QAAU/E,EAAAA,OAAAA,CAAQoC,MAAM,KAAK,CAAA;oCAAGxE,MAAQA,EAAAA;AAC/C,iCAAA,CAAA,GAAA;;;;AAIV,kCAAA8D,GAAA,CAAC/E,QAAQyH,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA/B,IAAC2C,CAAAA,IAAAA,EAAAA;4BAAKC,GAAK,EAAA,CAAA;4BAAGC,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;;AAC1C,8CAAA9C,IAAA,CAAC+C,MAAMC,IAAI,EAAA;oCAACC,IAAMtF,EAAAA,OAAAA;oCAAStB,OAASgC,EAAAA,YAAAA;oCAAc6E,SAAW3F,EAAAA,UAAAA;;sDAC3D8B,GAAC8D,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;AACD,sDAAAnD,IAAA,CAAC+C,MAAMhB,OAAO,EAAA;;AACZ,8DAAA/B,IAAA,CAAC+C,MAAMK,IAAI,EAAA;;AACT,sEAAA/D,GAAA,CAAC0D,MAAMM,kBAAkB,EAAA,EAAA,CAAA;AACxBhF,wDAAAA,YAAAA,CAAaE,GAAG,CAAC,CAACC,MACjB,iBAAAa,GAAA,CAAC0D,MAAMO,UAAU,EAAA;AAAoB,gEAAA,GAAG9E;AAAjBA,6DAAAA,EAAAA,MAAAA,CAAOI,IAAI,CAAA;;;AAGtC,8DAAAS,GAAA,CAAC0D,MAAMxD,OAAO,EAAA,EAAA,CAAA;AACd,8DAAAF,GAAA,CAAC0D,MAAMQ,KAAK,EAAA;AAACnB,oDAAAA,MAAAA,EAAQnE,0BAAYoB,GAACqB,CAAAA,YAAAA,EAAAA;wDAAa2B,OAAQ,EAAA;AAAiB,qDAAA,CAAA,GAAA;;AACxE,8DAAAhD,GAAA,CAAC0D,MAAMS,IAAI,EAAA;8DACR7F,OAAQY,CAAAA,GAAG,CAAC,CAACkF,GAAAA,GAAAA;wDACZ,qBACEzD,IAAA,CAAC+C,MAAMW,GAAG,EAAA;4DACRC,MAAO,EAAA,SAAA;4DAEPC,OAAShE,EAAAA,cAAAA,CAAe6D,IAAII,UAAU,CAAA;;AAEtC,8EAAAxE,GAAA,CAAC0D,MAAMe,YAAY,EAAA;AAACnF,oEAAAA,EAAAA,EAAI8E,IAAI9E;;AAC3BN,gEAAAA,YAAAA,CAAaE,GAAG,CAAC,CAAC,EAAEwF,aAAa,EAAE,GAAGvF,MAAQ,EAAA,GAAA;oEAC7C,IAAIA,MAAAA,CAAOI,IAAI,KAAK,QAAU,EAAA;wEAC5B,MAAM,EAAEoF,MAAM,EAAE,GAAGP,GAAAA;wEAEnB,qBACEpE,GAAA,CAAC0D,MAAMkB,IAAI,EAAA;AACT,4EAAA,QAAA,gBAAA5E,GAAC6E,CAAAA,cAAAA,EAAAA;gFAAeF,MAAQA,EAAAA,MAAAA;gFAAQG,QAAU,EAAA;;AAD3B3F,yEAAAA,EAAAA,MAAAA,CAAOI,IAAI,CAAA;AAIhC;oEACA,IAAI;AAAC,wEAAA,WAAA;AAAa,wEAAA;qEAAY,CAACwF,QAAQ,CAAC5F,MAAAA,CAAOI,IAAI,CAACyF,KAAK,CAAC,GAAA,CAAI,CAAC,CAAA,CAAE,CAAG,EAAA;;;;wEAIlE,qBACEhF,GAAA,CAAC0D,MAAMkB,IAAI,EAAA;AACT,4EAAA,QAAA,gBAAA5E,GAACiF,CAAAA,UAAAA,EAAAA;gFAAWC,SAAU,EAAA,YAAA;0FACnBd,GAAG,CAACjF,OAAOI,IAAI,CAACyF,KAAK,CAAC,GAAA,CAAI,CAAC,CAAA,CAAE,CAAC,GAC3BG,eAAef,GAAG,CAACjF,MAAOI,CAAAA,IAAI,CAACyF,KAAK,CAAC,GAAI,CAAA,CAAC,CAAE,CAAA,CAAC,CAC7C,GAAA;;AAJS7F,yEAAAA,EAAAA,MAAAA,CAAOI,IAAI,CAAA;AAQhC;oEACA,IAAI,OAAOmF,kBAAkB,UAAY,EAAA;wEACvC,qBACE1E,GAAA,CAAC0D,MAAMkB,IAAI,EAAA;AAERF,4EAAAA,QAAAA,EAAAA,aAAAA,CAAcN,KAAKjF,MAAQ,EAAA;AAAEnD,gFAAAA,cAAAA;AAAgBC,gFAAAA;AAAM,6EAAA;AAFrCkD,yEAAAA,EAAAA,MAAAA,CAAOI,IAAI,CAAA;AAKhC;oEACA,qBACES,GAAA,CAAC0D,MAAMkB,IAAI,EAAA;AACT,wEAAA,QAAA,gBAAA5E,GAACoF,CAAAA,WAAAA,EAAAA;4EACCnC,OAASmB,EAAAA,GAAG,CAACjF,MAAAA,CAAOI,IAAI,CAACyF,KAAK,CAAC,GAAA,CAAI,CAAC,CAAA,CAAE,CAAC;AACvCK,4EAAAA,KAAAA,EAAOjB,IAAII,UAAU;AACpB,4EAAA,GAAGrF;;AAJSA,qEAAAA,EAAAA,MAAAA,CAAOI,IAAI,CAAA;AAQhC,iEAAA,CAAA;8EAEAS,GAACsF,CAAAA,WAAAA,EAAAA;oEAAYf,OAAS,EAAA,CAACgB,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;AAC5C,oEAAA,QAAA,gBAAAxF,GAACyF,CAAAA,YAAAA,EAAAA;wEAAaC,QAAUtB,EAAAA;;;;AAhDrBA,yDAAAA,EAAAA,GAAAA,CAAI9E,EAAE,CAAA;AAoDjB,qDAAA;;;;;;AAIN,8CAAAqB,IAAA,CAACgF,WAAWhC,IAAI,EAAA;AACb,oCAAA,GAAGpF,UAAU;AACdqH,oCAAAA,gBAAAA,EAAkB,IAAMxK,UAAW,CAAA,kCAAA,CAAA;;AAEnC,sDAAA4E,GAAA,CAAC2F,WAAWE,QAAQ,EAAA,EAAA,CAAA;AACpB,sDAAA7F,GAAA,CAAC2F,WAAWG,KAAK,EAAA,EAAA;;;;;;;;;;AAO/B;AAEA,MAAMR,WAActK,GAAAA,MAAAA,CAAO0I,KAAMkB,CAAAA,IAAI,CAAC;;;AAGtC,CAAC;AAED;;AAEkG,qGAElG,MAAMd,eAAkB,GAAA,IAAA;AACtB,IAAA,MAAMiC,YAAYC,QAAS,CAAA,iBAAA,EAAmB,CAACC,KAAAA,GAAUA,MAAMF,SAAS,CAAA;AACxE,IAAA,MAAM,CAAC,EAAE3I,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IACpB,MAAM6I,MAAAA,GAAS9I,KAAOqD,EAAAA,OAAAA,EAAS0F,IAAMD,EAAAA,MAAAA;AACrC,IAAA,MAAME,aAAazJ,OAAQuJ,CAAAA,MAAAA,CAAAA;;AAG3B1J,IAAAA,KAAAA,CAAMK,SAAS,CAAC,IAAA;AACd,QAAA,IAAIuJ,eAAeF,MAAQ,EAAA;AACzBH,YAAAA,SAAAA,CAAU,EAAE,CAAA;AACd;KACC,EAAA;AAACA,QAAAA,SAAAA;AAAWK,QAAAA,UAAAA;AAAYF,QAAAA;AAAO,KAAA,CAAA;IAElC,qBACElG,GAAA,CAAC0D,MAAM2C,SAAS,EAAA;AACd,QAAA,QAAA,gBAAArG,GAACsG,CAAAA,mBAAAA,EAAAA,EAAAA;;AAGP,CAAA;AAQA,MAAMjF,YAAe,GAAA,CAAC,EAAE2B,OAAO,EAAqB,GAAA;IAClD,MAAM,EAAExH,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEL,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAM,CAAC,EAAE+B,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AAEpB,IAAA,qBACE2C,GAACuG,CAAAA,MAAAA,EAAAA;QACCvD,OAASA,EAAAA,OAAAA;QACTwD,GAAKC,EAAAA,IAAAA;QACLlC,OAAS,EAAA,IAAA;AACPnJ,YAAAA,UAAAA,CAAW,iBAAmB,EAAA;gBAAEuJ,MAAQ,EAAA;AAAQ,aAAA,CAAA;AAClD,SAAA;AACA+B,QAAAA,SAAAA,gBAAW1G,GAAC2G,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;QACZC,KAAO,EAAA;YAAEC,cAAgB,EAAA;AAAO,SAAA;QAChCC,EAAI,EAAA;YACFtG,QAAU,EAAA,QAAA;AACV/B,YAAAA,MAAAA,EAAQC,SAAU,CAAA;AAAE+B,gBAAAA,OAAAA,EAASrD,MAAMqD;AAAQ,aAAA;AAC7C,SAAA;QACAsG,QAAS,EAAA,aAAA;QACTC,UAAY,EAAA,CAAA;kBAEXxL,aAAc,CAAA;AACb8D,YAAAA,EAAAA,EAAIvD,cAAe,CAAA,qCAAA,CAAA;YACnByD,cAAgB,EAAA;AAClB,SAAA;;AAGN,CAAA;AAEA;;AAEkG,2GAE5FyH,qBAAwB,GAAA,IAAA;AAC5B,IAAA,MAAM,EAAEC,IAAAA,GAAO,EAAE,EAAE,GAAGC,SAAAA,EAAAA;AAGtB,IAAA,MAAM,EACJC,WAAAA,GAAc,EAAE,EAChBvD,SAAS,EACT5F,KAAK,EACN,GAAGoJ,QACFC,WAAYpI,CAAAA,GAAG,CAAC,CAAC6D,UAAY;AAC3BA,YAAAA,MAAAA;YACAwE,OAASL,EAAAA;SACX,CAAA,CAAA,CAAA;AAGF,IAAA,IAAIrD,SAAW,EAAA;QACb,qBAAO7D,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,IAAIjC,KAAAA,IAAS,CAACiJ,IAAM,EAAA;QAClB,qBAAOlH,GAAA,CAACC,KAAKE,KAAK,EAAA,EAAA,CAAA;AACpB;IAEA,qBACEH,GAAA,CAACC,KAAKuH,OAAO,EAAA;QAACJ,WAAaA,EAAAA,WAAAA;AACxB,QAAA,QAAA,EAAA,CAAC,EAAEA,WAAW,EAAE,iBACfpH,GAACyH,CAAAA,YAAAA,EAAAA;gBAAaL,WAAaA,EAAAA,WAAAA;AACzB,gBAAA,QAAA,gBAAApH,GAAC7E,CAAAA,YAAAA,EAAAA,EAAAA;;;AAKX;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCloneFailureModal.js","sources":["../../../../../admin/src/pages/ListView/components/AutoCloneFailureModal.tsx"],"sourcesContent":["import { Box, Flex, Typography } from '@strapi/design-system';\nimport { ChevronRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../../../utils/translations';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\n\ntype Reason = ProhibitedCloningField[1];\n\ninterface AutoCloneFailureModalBodyProps {\n prohibitedFields: ProhibitedCloningField[];\n}\n\nconst AutoCloneFailureModalBody = ({ prohibitedFields }: AutoCloneFailureModalBodyProps) => {\n const { formatMessage } = useIntl();\n\n const getDefaultErrorMessage = (reason: Reason) => {\n switch (reason) {\n case 'relation':\n return 'Duplicating the relation could remove it from the original entry.';\n case 'unique':\n return 'Identical values in a unique field are not allowed';\n default:\n return reason;\n }\n };\n\n return (\n <>\n <Typography variant=\"beta\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.title'),\n defaultMessage: \"This entry can't be duplicated directly.\",\n })}\n </Typography>\n <Box marginTop={2}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.description'),\n defaultMessage:\n \"A new entry will be created with the same content, but you'll have to change the following fields to save it.\",\n })}\n </Typography>\n </Box>\n <Flex marginTop={6} gap={2} direction=\"column\" alignItems=\"stretch\">\n {prohibitedFields.map(([fieldPath, reason]) => (\n <Flex\n direction=\"column\"\n gap={2}\n alignItems=\"flex-start\"\n borderColor=\"neutral200\"\n hasRadius\n padding={6}\n key={fieldPath.join()}\n >\n <Flex direction=\"row\" tag=\"ol\">\n {fieldPath.map((pathSegment, index) => (\n <Typography fontWeight=\"semiBold\" tag=\"li\" key={index}>\n {pathSegment}\n {index !== fieldPath.length - 1 && (\n <ChevronRight\n fill=\"neutral500\"\n height=\"0.8rem\"\n width=\"0.8rem\"\n style={{ margin: '0 0.8rem' }}\n />\n )}\n </Typography>\n ))}\n </Flex>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation(`containers.list.autoCloneModal.error.${reason}`),\n defaultMessage: getDefaultErrorMessage(reason),\n })}\n </Typography>\n </Flex>\n ))}\n </Flex>\n </>\n );\n};\n\nexport { AutoCloneFailureModalBody };\nexport type { AutoCloneFailureModalBodyProps };\n"],"names":["AutoCloneFailureModalBody","prohibitedFields","formatMessage","useIntl","getDefaultErrorMessage","reason","_jsxs","_Fragment","_jsx","Typography","variant","id","getTranslation","defaultMessage","Box","marginTop","textColor","Flex","gap","direction","alignItems","map","fieldPath","borderColor","hasRadius","padding","tag","pathSegment","index","fontWeight","length","ChevronRight","fill","height","width","style","margin","join"],"mappings":";;;;;;;;AAcA,MAAMA,yBAA4B,GAAA,CAAC,EAAEC,gBAAgB,EAAkC,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMC,yBAAyB,CAACC,MAAAA,GAAAA;QAC9B,OAAQA,MAAAA;YACN,KAAK,UAAA;gBACH,OAAO,mEAAA;YACT,KAAK,QAAA;gBACH,OAAO,oDAAA;AACT,YAAA;gBACE,OAAOA,MAAAA;AACX;AACF,KAAA;IAEA,qBACEC,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAACC,CAAAA,uBAAAA,EAAAA;gBAAWC,OAAQ,EAAA,MAAA;0BACjBR,aAAc,CAAA;AACbS,oBAAAA,EAAAA,EAAIC,2BAAe,CAAA,sCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFL,cAACM,CAAAA,gBAAAA,EAAAA;gBAAIC,SAAW,EAAA,CAAA;AACd,gBAAA,QAAA,gBAAAP,cAACC,CAAAA,uBAAAA,EAAAA;oBAAWO,SAAU,EAAA,YAAA;8BACnBd,aAAc,CAAA;AACbS,wBAAAA,EAAAA,EAAIC,2BAAe,CAAA,4CAAA,CAAA;wBACnBC,cACE,EAAA;AACJ,qBAAA;;;0BAGJL,cAACS,CAAAA,iBAAAA,EAAAA;gBAAKF,SAAW,EAAA,CAAA;gBAAGG,GAAK,EAAA,CAAA;gBAAGC,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACvDnB,gBAAAA,QAAAA,EAAAA,gBAAAA,CAAiBoB,GAAG,CAAC,CAAC,CAACC,SAAWjB,EAAAA,MAAAA,CAAO,iBACxCC,eAACW,CAAAA,iBAAAA,EAAAA;wBACCE,SAAU,EAAA,QAAA;wBACVD,GAAK,EAAA,CAAA;wBACLE,UAAW,EAAA,YAAA;wBACXG,WAAY,EAAA,YAAA;wBACZC,SAAS,EAAA,IAAA;wBACTC,OAAS,EAAA,CAAA;;0CAGTjB,cAACS,CAAAA,iBAAAA,EAAAA;gCAAKE,SAAU,EAAA,KAAA;gCAAMO,GAAI,EAAA,IAAA;AACvBJ,gCAAAA,QAAAA,EAAAA,SAAAA,CAAUD,GAAG,CAAC,CAACM,WAAAA,EAAaC,sBAC3BtB,eAACG,CAAAA,uBAAAA,EAAAA;wCAAWoB,UAAW,EAAA,UAAA;wCAAWH,GAAI,EAAA,IAAA;;AACnCC,4CAAAA,WAAAA;AACAC,4CAAAA,KAAAA,KAAUN,SAAUQ,CAAAA,MAAM,GAAG,CAAA,kBAC5BtB,cAACuB,CAAAA,kBAAAA,EAAAA;gDACCC,IAAK,EAAA,YAAA;gDACLC,MAAO,EAAA,QAAA;gDACPC,KAAM,EAAA,QAAA;gDACNC,KAAO,EAAA;oDAAEC,MAAQ,EAAA;AAAW;;;AAPcR,qCAAAA,EAAAA,KAAAA,CAAAA;;0CAapDpB,cAACC,CAAAA,uBAAAA,EAAAA;gCAAWiB,GAAI,EAAA,GAAA;gCAAIV,SAAU,EAAA,YAAA;0CAC3Bd,aAAc,CAAA;AACbS,oCAAAA,EAAAA,EAAIC,2BAAe,CAAA,CAAC,qCAAqC,EAAEP,OAAO,CAAC,CAAA;AACnEQ,oCAAAA,cAAAA,EAAgBT,sBAAuBC,CAAAA,MAAAA;AACzC,iCAAA;;;AArBGiB,qBAAAA,EAAAA,SAAAA,CAAUe,IAAI,EAAA,CAAA;;;;AA4B/B;;;;"}
1
+ {"version":3,"file":"AutoCloneFailureModal.js","sources":["../../../../../admin/src/pages/ListView/components/AutoCloneFailureModal.tsx"],"sourcesContent":["import { Box, Flex, Typography } from '@strapi/design-system';\nimport { ChevronRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../../../utils/translations';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\n\ntype Reason = ProhibitedCloningField[1];\n\ninterface AutoCloneFailureModalBodyProps {\n prohibitedFields: ProhibitedCloningField[];\n}\n\nconst AutoCloneFailureModalBody = ({ prohibitedFields }: AutoCloneFailureModalBodyProps) => {\n const { formatMessage } = useIntl();\n\n const getDefaultErrorMessage = (reason: Reason) => {\n switch (reason) {\n case 'relation':\n return 'Duplicating the relation could remove it from the original entry.';\n case 'unique':\n return 'Identical values in a unique field are not allowed';\n default:\n return reason;\n }\n };\n\n return (\n <>\n <Typography variant=\"beta\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.title'),\n defaultMessage: \"This entry can't be duplicated directly.\",\n })}\n </Typography>\n <Box marginTop={2}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.description'),\n defaultMessage:\n \"A new entry will be created with the same content, but you'll have to change the following fields to save it.\",\n })}\n </Typography>\n </Box>\n <Flex marginTop={6} gap={2} direction=\"column\" alignItems=\"stretch\">\n {prohibitedFields.map(([fieldPath, reason]) => (\n <Flex\n direction=\"column\"\n gap={2}\n alignItems=\"flex-start\"\n borderColor=\"neutral200\"\n hasRadius\n padding={6}\n key={fieldPath.join()}\n >\n <Flex direction=\"row\" tag=\"ol\">\n {fieldPath.map((pathSegment, index) => (\n <Typography fontWeight=\"semiBold\" tag=\"li\" key={index}>\n {pathSegment}\n {index !== fieldPath.length - 1 && (\n <ChevronRight\n fill=\"neutral500\"\n height=\"0.8rem\"\n width=\"0.8rem\"\n style={{ margin: '0 0.8rem' }}\n />\n )}\n </Typography>\n ))}\n </Flex>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation(`containers.list.autoCloneModal.error.${reason}`),\n defaultMessage: getDefaultErrorMessage(reason),\n })}\n </Typography>\n </Flex>\n ))}\n </Flex>\n </>\n );\n};\n\nexport { AutoCloneFailureModalBody };\nexport type { AutoCloneFailureModalBodyProps };\n"],"names":["AutoCloneFailureModalBody","prohibitedFields","formatMessage","useIntl","getDefaultErrorMessage","reason","_jsxs","_Fragment","_jsx","Typography","variant","id","getTranslation","defaultMessage","Box","marginTop","textColor","Flex","gap","direction","alignItems","map","fieldPath","borderColor","hasRadius","padding","tag","pathSegment","index","fontWeight","length","ChevronRight","fill","height","width","style","margin","join"],"mappings":";;;;;;;;AAcA,MAAMA,yBAA4B,GAAA,CAAC,EAAEC,gBAAgB,EAAkC,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMC,yBAAyB,CAACC,MAAAA,GAAAA;QAC9B,OAAQA,MAAAA;YACN,KAAK,UAAA;gBACH,OAAO,mEAAA;YACT,KAAK,QAAA;gBACH,OAAO,oDAAA;AACT,YAAA;gBACE,OAAOA,MAAAA;AACX;AACF,KAAA;IAEA,qBACEC,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAACC,CAAAA,uBAAAA,EAAAA;gBAAWC,OAAQ,EAAA,MAAA;0BACjBR,aAAc,CAAA;AACbS,oBAAAA,EAAAA,EAAIC,2BAAe,CAAA,sCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFL,cAACM,CAAAA,gBAAAA,EAAAA;gBAAIC,SAAW,EAAA,CAAA;AACd,gBAAA,QAAA,gBAAAP,cAACC,CAAAA,uBAAAA,EAAAA;oBAAWO,SAAU,EAAA,YAAA;8BACnBd,aAAc,CAAA;AACbS,wBAAAA,EAAAA,EAAIC,2BAAe,CAAA,4CAAA,CAAA;wBACnBC,cACE,EAAA;AACJ,qBAAA;;;0BAGJL,cAACS,CAAAA,iBAAAA,EAAAA;gBAAKF,SAAW,EAAA,CAAA;gBAAGG,GAAK,EAAA,CAAA;gBAAGC,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACvDnB,gBAAAA,QAAAA,EAAAA,gBAAAA,CAAiBoB,GAAG,CAAC,CAAC,CAACC,SAAWjB,EAAAA,MAAAA,CAAO,iBACxCC,eAACW,CAAAA,iBAAAA,EAAAA;wBACCE,SAAU,EAAA,QAAA;wBACVD,GAAK,EAAA,CAAA;wBACLE,UAAW,EAAA,YAAA;wBACXG,WAAY,EAAA,YAAA;wBACZC,SAAS,EAAA,IAAA;wBACTC,OAAS,EAAA,CAAA;;0CAGTjB,cAACS,CAAAA,iBAAAA,EAAAA;gCAAKE,SAAU,EAAA,KAAA;gCAAMO,GAAI,EAAA,IAAA;AACvBJ,gCAAAA,QAAAA,EAAAA,SAAAA,CAAUD,GAAG,CAAC,CAACM,WAAAA,EAAaC,sBAC3BtB,eAACG,CAAAA,uBAAAA,EAAAA;wCAAWoB,UAAW,EAAA,UAAA;wCAAWH,GAAI,EAAA,IAAA;;AACnCC,4CAAAA,WAAAA;AACAC,4CAAAA,KAAAA,KAAUN,SAAUQ,CAAAA,MAAM,GAAG,CAAA,kBAC5BtB,cAACuB,CAAAA,kBAAAA,EAAAA;gDACCC,IAAK,EAAA,YAAA;gDACLC,MAAO,EAAA,QAAA;gDACPC,KAAM,EAAA,QAAA;gDACNC,KAAO,EAAA;oDAAEC,MAAQ,EAAA;AAAW;;;AAPcR,qCAAAA,EAAAA,KAAAA,CAAAA;;0CAapDpB,cAACC,CAAAA,uBAAAA,EAAAA;gCAAWiB,GAAI,EAAA,GAAA;gCAAIV,SAAU,EAAA,YAAA;0CAC3Bd,aAAc,CAAA;AACbS,oCAAAA,EAAAA,EAAIC,2BAAe,CAAA,CAAC,qCAAqC,EAAEP,MAAQ,CAAA,CAAA,CAAA;AACnEQ,oCAAAA,cAAAA,EAAgBT,sBAAuBC,CAAAA,MAAAA;AACzC,iCAAA;;;AArBGiB,qBAAAA,EAAAA,SAAAA,CAAUe,IAAI,EAAA,CAAA;;;;AA4B/B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCloneFailureModal.mjs","sources":["../../../../../admin/src/pages/ListView/components/AutoCloneFailureModal.tsx"],"sourcesContent":["import { Box, Flex, Typography } from '@strapi/design-system';\nimport { ChevronRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../../../utils/translations';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\n\ntype Reason = ProhibitedCloningField[1];\n\ninterface AutoCloneFailureModalBodyProps {\n prohibitedFields: ProhibitedCloningField[];\n}\n\nconst AutoCloneFailureModalBody = ({ prohibitedFields }: AutoCloneFailureModalBodyProps) => {\n const { formatMessage } = useIntl();\n\n const getDefaultErrorMessage = (reason: Reason) => {\n switch (reason) {\n case 'relation':\n return 'Duplicating the relation could remove it from the original entry.';\n case 'unique':\n return 'Identical values in a unique field are not allowed';\n default:\n return reason;\n }\n };\n\n return (\n <>\n <Typography variant=\"beta\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.title'),\n defaultMessage: \"This entry can't be duplicated directly.\",\n })}\n </Typography>\n <Box marginTop={2}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.description'),\n defaultMessage:\n \"A new entry will be created with the same content, but you'll have to change the following fields to save it.\",\n })}\n </Typography>\n </Box>\n <Flex marginTop={6} gap={2} direction=\"column\" alignItems=\"stretch\">\n {prohibitedFields.map(([fieldPath, reason]) => (\n <Flex\n direction=\"column\"\n gap={2}\n alignItems=\"flex-start\"\n borderColor=\"neutral200\"\n hasRadius\n padding={6}\n key={fieldPath.join()}\n >\n <Flex direction=\"row\" tag=\"ol\">\n {fieldPath.map((pathSegment, index) => (\n <Typography fontWeight=\"semiBold\" tag=\"li\" key={index}>\n {pathSegment}\n {index !== fieldPath.length - 1 && (\n <ChevronRight\n fill=\"neutral500\"\n height=\"0.8rem\"\n width=\"0.8rem\"\n style={{ margin: '0 0.8rem' }}\n />\n )}\n </Typography>\n ))}\n </Flex>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation(`containers.list.autoCloneModal.error.${reason}`),\n defaultMessage: getDefaultErrorMessage(reason),\n })}\n </Typography>\n </Flex>\n ))}\n </Flex>\n </>\n );\n};\n\nexport { AutoCloneFailureModalBody };\nexport type { AutoCloneFailureModalBodyProps };\n"],"names":["AutoCloneFailureModalBody","prohibitedFields","formatMessage","useIntl","getDefaultErrorMessage","reason","_jsxs","_Fragment","_jsx","Typography","variant","id","getTranslation","defaultMessage","Box","marginTop","textColor","Flex","gap","direction","alignItems","map","fieldPath","borderColor","hasRadius","padding","tag","pathSegment","index","fontWeight","length","ChevronRight","fill","height","width","style","margin","join"],"mappings":";;;;;;AAcA,MAAMA,yBAA4B,GAAA,CAAC,EAAEC,gBAAgB,EAAkC,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,yBAAyB,CAACC,MAAAA,GAAAA;QAC9B,OAAQA,MAAAA;YACN,KAAK,UAAA;gBACH,OAAO,mEAAA;YACT,KAAK,QAAA;gBACH,OAAO,oDAAA;AACT,YAAA;gBACE,OAAOA,MAAAA;AACX;AACF,KAAA;IAEA,qBACEC,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAACC,CAAAA,UAAAA,EAAAA;gBAAWC,OAAQ,EAAA,MAAA;0BACjBR,aAAc,CAAA;AACbS,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,sCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFL,GAACM,CAAAA,GAAAA,EAAAA;gBAAIC,SAAW,EAAA,CAAA;AACd,gBAAA,QAAA,gBAAAP,GAACC,CAAAA,UAAAA,EAAAA;oBAAWO,SAAU,EAAA,YAAA;8BACnBd,aAAc,CAAA;AACbS,wBAAAA,EAAAA,EAAIC,cAAe,CAAA,4CAAA,CAAA;wBACnBC,cACE,EAAA;AACJ,qBAAA;;;0BAGJL,GAACS,CAAAA,IAAAA,EAAAA;gBAAKF,SAAW,EAAA,CAAA;gBAAGG,GAAK,EAAA,CAAA;gBAAGC,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACvDnB,gBAAAA,QAAAA,EAAAA,gBAAAA,CAAiBoB,GAAG,CAAC,CAAC,CAACC,SAAWjB,EAAAA,MAAAA,CAAO,iBACxCC,IAACW,CAAAA,IAAAA,EAAAA;wBACCE,SAAU,EAAA,QAAA;wBACVD,GAAK,EAAA,CAAA;wBACLE,UAAW,EAAA,YAAA;wBACXG,WAAY,EAAA,YAAA;wBACZC,SAAS,EAAA,IAAA;wBACTC,OAAS,EAAA,CAAA;;0CAGTjB,GAACS,CAAAA,IAAAA,EAAAA;gCAAKE,SAAU,EAAA,KAAA;gCAAMO,GAAI,EAAA,IAAA;AACvBJ,gCAAAA,QAAAA,EAAAA,SAAAA,CAAUD,GAAG,CAAC,CAACM,WAAAA,EAAaC,sBAC3BtB,IAACG,CAAAA,UAAAA,EAAAA;wCAAWoB,UAAW,EAAA,UAAA;wCAAWH,GAAI,EAAA,IAAA;;AACnCC,4CAAAA,WAAAA;AACAC,4CAAAA,KAAAA,KAAUN,SAAUQ,CAAAA,MAAM,GAAG,CAAA,kBAC5BtB,GAACuB,CAAAA,YAAAA,EAAAA;gDACCC,IAAK,EAAA,YAAA;gDACLC,MAAO,EAAA,QAAA;gDACPC,KAAM,EAAA,QAAA;gDACNC,KAAO,EAAA;oDAAEC,MAAQ,EAAA;AAAW;;;AAPcR,qCAAAA,EAAAA,KAAAA,CAAAA;;0CAapDpB,GAACC,CAAAA,UAAAA,EAAAA;gCAAWiB,GAAI,EAAA,GAAA;gCAAIV,SAAU,EAAA,YAAA;0CAC3Bd,aAAc,CAAA;AACbS,oCAAAA,EAAAA,EAAIC,cAAe,CAAA,CAAC,qCAAqC,EAAEP,OAAO,CAAC,CAAA;AACnEQ,oCAAAA,cAAAA,EAAgBT,sBAAuBC,CAAAA,MAAAA;AACzC,iCAAA;;;AArBGiB,qBAAAA,EAAAA,SAAAA,CAAUe,IAAI,EAAA,CAAA;;;;AA4B/B;;;;"}
1
+ {"version":3,"file":"AutoCloneFailureModal.mjs","sources":["../../../../../admin/src/pages/ListView/components/AutoCloneFailureModal.tsx"],"sourcesContent":["import { Box, Flex, Typography } from '@strapi/design-system';\nimport { ChevronRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../../../utils/translations';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\n\ntype Reason = ProhibitedCloningField[1];\n\ninterface AutoCloneFailureModalBodyProps {\n prohibitedFields: ProhibitedCloningField[];\n}\n\nconst AutoCloneFailureModalBody = ({ prohibitedFields }: AutoCloneFailureModalBodyProps) => {\n const { formatMessage } = useIntl();\n\n const getDefaultErrorMessage = (reason: Reason) => {\n switch (reason) {\n case 'relation':\n return 'Duplicating the relation could remove it from the original entry.';\n case 'unique':\n return 'Identical values in a unique field are not allowed';\n default:\n return reason;\n }\n };\n\n return (\n <>\n <Typography variant=\"beta\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.title'),\n defaultMessage: \"This entry can't be duplicated directly.\",\n })}\n </Typography>\n <Box marginTop={2}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('containers.list.autoCloneModal.description'),\n defaultMessage:\n \"A new entry will be created with the same content, but you'll have to change the following fields to save it.\",\n })}\n </Typography>\n </Box>\n <Flex marginTop={6} gap={2} direction=\"column\" alignItems=\"stretch\">\n {prohibitedFields.map(([fieldPath, reason]) => (\n <Flex\n direction=\"column\"\n gap={2}\n alignItems=\"flex-start\"\n borderColor=\"neutral200\"\n hasRadius\n padding={6}\n key={fieldPath.join()}\n >\n <Flex direction=\"row\" tag=\"ol\">\n {fieldPath.map((pathSegment, index) => (\n <Typography fontWeight=\"semiBold\" tag=\"li\" key={index}>\n {pathSegment}\n {index !== fieldPath.length - 1 && (\n <ChevronRight\n fill=\"neutral500\"\n height=\"0.8rem\"\n width=\"0.8rem\"\n style={{ margin: '0 0.8rem' }}\n />\n )}\n </Typography>\n ))}\n </Flex>\n <Typography tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation(`containers.list.autoCloneModal.error.${reason}`),\n defaultMessage: getDefaultErrorMessage(reason),\n })}\n </Typography>\n </Flex>\n ))}\n </Flex>\n </>\n );\n};\n\nexport { AutoCloneFailureModalBody };\nexport type { AutoCloneFailureModalBodyProps };\n"],"names":["AutoCloneFailureModalBody","prohibitedFields","formatMessage","useIntl","getDefaultErrorMessage","reason","_jsxs","_Fragment","_jsx","Typography","variant","id","getTranslation","defaultMessage","Box","marginTop","textColor","Flex","gap","direction","alignItems","map","fieldPath","borderColor","hasRadius","padding","tag","pathSegment","index","fontWeight","length","ChevronRight","fill","height","width","style","margin","join"],"mappings":";;;;;;AAcA,MAAMA,yBAA4B,GAAA,CAAC,EAAEC,gBAAgB,EAAkC,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,yBAAyB,CAACC,MAAAA,GAAAA;QAC9B,OAAQA,MAAAA;YACN,KAAK,UAAA;gBACH,OAAO,mEAAA;YACT,KAAK,QAAA;gBACH,OAAO,oDAAA;AACT,YAAA;gBACE,OAAOA,MAAAA;AACX;AACF,KAAA;IAEA,qBACEC,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAACC,CAAAA,UAAAA,EAAAA;gBAAWC,OAAQ,EAAA,MAAA;0BACjBR,aAAc,CAAA;AACbS,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,sCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFL,GAACM,CAAAA,GAAAA,EAAAA;gBAAIC,SAAW,EAAA,CAAA;AACd,gBAAA,QAAA,gBAAAP,GAACC,CAAAA,UAAAA,EAAAA;oBAAWO,SAAU,EAAA,YAAA;8BACnBd,aAAc,CAAA;AACbS,wBAAAA,EAAAA,EAAIC,cAAe,CAAA,4CAAA,CAAA;wBACnBC,cACE,EAAA;AACJ,qBAAA;;;0BAGJL,GAACS,CAAAA,IAAAA,EAAAA;gBAAKF,SAAW,EAAA,CAAA;gBAAGG,GAAK,EAAA,CAAA;gBAAGC,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACvDnB,gBAAAA,QAAAA,EAAAA,gBAAAA,CAAiBoB,GAAG,CAAC,CAAC,CAACC,SAAWjB,EAAAA,MAAAA,CAAO,iBACxCC,IAACW,CAAAA,IAAAA,EAAAA;wBACCE,SAAU,EAAA,QAAA;wBACVD,GAAK,EAAA,CAAA;wBACLE,UAAW,EAAA,YAAA;wBACXG,WAAY,EAAA,YAAA;wBACZC,SAAS,EAAA,IAAA;wBACTC,OAAS,EAAA,CAAA;;0CAGTjB,GAACS,CAAAA,IAAAA,EAAAA;gCAAKE,SAAU,EAAA,KAAA;gCAAMO,GAAI,EAAA,IAAA;AACvBJ,gCAAAA,QAAAA,EAAAA,SAAAA,CAAUD,GAAG,CAAC,CAACM,WAAAA,EAAaC,sBAC3BtB,IAACG,CAAAA,UAAAA,EAAAA;wCAAWoB,UAAW,EAAA,UAAA;wCAAWH,GAAI,EAAA,IAAA;;AACnCC,4CAAAA,WAAAA;AACAC,4CAAAA,KAAAA,KAAUN,SAAUQ,CAAAA,MAAM,GAAG,CAAA,kBAC5BtB,GAACuB,CAAAA,YAAAA,EAAAA;gDACCC,IAAK,EAAA,YAAA;gDACLC,MAAO,EAAA,QAAA;gDACPC,KAAM,EAAA,QAAA;gDACNC,KAAO,EAAA;oDAAEC,MAAQ,EAAA;AAAW;;;AAPcR,qCAAAA,EAAAA,KAAAA,CAAAA;;0CAapDpB,GAACC,CAAAA,UAAAA,EAAAA;gCAAWiB,GAAI,EAAA,GAAA;gCAAIV,SAAU,EAAA,YAAA;0CAC3Bd,aAAc,CAAA;AACbS,oCAAAA,EAAAA,EAAIC,cAAe,CAAA,CAAC,qCAAqC,EAAEP,MAAQ,CAAA,CAAA,CAAA;AACnEQ,oCAAAA,cAAAA,EAAgBT,sBAAuBC,CAAAA,MAAAA;AACzC,iCAAA;;;AArBGiB,qBAAAA,EAAAA,SAAAA,CAAUe,IAAI,EAAA,CAAA;;;;AA4B/B;;;;"}
@@ -9,6 +9,7 @@ var reactIntl = require('react-intl');
9
9
  var DocumentRBAC = require('../../../../features/DocumentRBAC.js');
10
10
  var useDocument = require('../../../../hooks/useDocument.js');
11
11
  var useDocumentActions = require('../../../../hooks/useDocumentActions.js');
12
+ var useDocumentLayout = require('../../../../hooks/useDocumentLayout.js');
12
13
  var api = require('../../../../utils/api.js');
13
14
  var translations = require('../../../../utils/translations.js');
14
15
  var DocumentActions = require('../../../EditView/components/DocumentActions.js');
@@ -38,6 +39,7 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
38
39
  * -----------------------------------------------------------------------------------------------*/ const BulkActionsRenderer = ()=>{
39
40
  const plugins = strapiAdmin.useStrapiApp('BulkActionsRenderer', (state)=>state.plugins);
40
41
  const { model, collectionType } = useDocument.useDoc();
42
+ const { list } = useDocumentLayout.useDocumentLayout(model);
41
43
  const { selectedRows } = strapiAdmin.useTable('BulkActionsRenderer', (state)=>state);
42
44
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
43
45
  gap: 2,
@@ -48,9 +50,11 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
48
50
  documents: selectedRows
49
51
  },
50
52
  descriptions: plugins['content-manager'].apis.getBulkActions(),
51
- children: (actions)=>actions.map((action)=>/*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
53
+ children: (actions)=>actions.map((action)=>{
54
+ return list.settings.bulkable && /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
52
55
  ...action
53
- }, action.id))
56
+ }, action.id);
57
+ })
54
58
  })
55
59
  });
56
60
  };
@@ -138,7 +142,6 @@ const UnpublishAction = ({ documents, model })=>{
138
142
  const { schema } = useDocument.useDoc();
139
143
  const selectRow = strapiAdmin.useTable('UnpublishAction', (state)=>state.selectRow);
140
144
  const hasPublishPermission = DocumentRBAC.useDocumentRBAC('unpublishAction', (state)=>state.canPublish);
141
- const hasI18nEnabled = Boolean(schema?.pluginOptions?.i18n);
142
145
  const hasDraftAndPublishEnabled = Boolean(schema?.options?.draftAndPublish);
143
146
  const { unpublishMany: bulkUnpublishAction, isLoading } = useDocumentActions.useDocumentActions();
144
147
  const documentIds = documents.map(({ documentId })=>documentId);
@@ -191,19 +194,6 @@ const UnpublishAction = ({ documents, model })=>{
191
194
  id: 'popUpWarning.bodyMessage.contentType.unpublish.all',
192
195
  defaultMessage: 'Are you sure you want to unpublish these entries?'
193
196
  })
194
- }),
195
- hasI18nEnabled && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
196
- textAlign: "center",
197
- padding: 3,
198
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
199
- textColor: "danger500",
200
- children: formatMessage({
201
- id: translations.getTranslation('Settings.list.actions.unpublishAdditionalInfos'),
202
- defaultMessage: 'This will unpublish the active locale versions <em>(from Internationalization)</em>'
203
- }, {
204
- em: Emphasis
205
- })
206
- })
207
197
  })
208
198
  ]
209
199
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/Actions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n DescriptionComponentRenderer,\n useTable,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Box, ButtonProps, Flex, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport {\n DialogOptions,\n DocumentActionButton,\n ModalOptions,\n NotificationOptions,\n} from '../../../EditView/components/DocumentActions';\n\nimport { PublishAction } from './PublishAction';\n\nimport type { BulkActionComponent, ContentManagerPlugin } from '../../../../content-manager';\n\ninterface BulkActionDescription {\n dialog?: DialogOptions | NotificationOptions | ModalOptions;\n disabled?: boolean;\n icon?: React.ReactNode;\n label: string;\n onClick?: (event: React.SyntheticEvent) => void;\n /**\n * @default 'default'\n */\n type?: 'icon' | 'default';\n /**\n * @default 'secondary'\n */\n variant?: ButtonProps['variant'];\n}\n\n/* -------------------------------------------------------------------------------------------------\n * BulkActionsRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst BulkActionsRenderer = () => {\n const plugins = useStrapiApp('BulkActionsRenderer', (state) => state.plugins);\n\n const { model, collectionType } = useDoc();\n const { selectedRows } = useTable('BulkActionsRenderer', (state) => state);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n model,\n collectionType,\n documents: selectedRows,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getBulkActions()}\n >\n {(actions) => actions.map((action) => <DocumentActionButton key={action.id} {...action} />)}\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DefaultBulkActions\n * -----------------------------------------------------------------------------------------------*/\n\nconst DeleteAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema: contentType } = useDoc();\n const selectRow = useTable('DeleteAction', (state) => state.selectRow);\n const hasI18nEnabled = Boolean(contentType?.pluginOptions?.i18n);\n const [{ query }] = useQueryParams<{ plugins?: { i18n?: { locale?: string } } }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasDeletePermission = useDocumentRBAC('deleteAction', (state) => state.canDelete);\n const { deleteMany: bulkDeleteAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n\n const handleConfirmBulkDelete = async () => {\n const res = await bulkDeleteAction({\n documentIds,\n model,\n params,\n });\n if (!('error' in res)) {\n selectRow([]);\n }\n };\n\n if (!hasDeletePermission) return null;\n\n return {\n variant: 'danger-light',\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.delete.all',\n defaultMessage: 'Are you sure you want to delete these entries?',\n })}\n </Typography>\n {hasI18nEnabled && (\n <Box textAlign=\"center\" padding={3}>\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.deleteAdditionalInfos'),\n defaultMessage:\n 'This will delete the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n </Box>\n )}\n </Flex>\n ),\n onConfirm: handleConfirmBulkDelete,\n },\n };\n};\n\nDeleteAction.type = 'delete';\n\nconst UnpublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema } = useDoc();\n const selectRow = useTable('UnpublishAction', (state) => state.selectRow);\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const hasI18nEnabled = Boolean(schema?.pluginOptions?.i18n);\n const hasDraftAndPublishEnabled = Boolean(schema?.options?.draftAndPublish);\n const { unpublishMany: bulkUnpublishAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const handleConfirmBulkUnpublish = async () => {\n const data = await bulkUnpublishAction({ documentIds, model, params });\n if (!('error' in data)) {\n selectRow([]);\n }\n };\n\n const showUnpublishButton =\n hasDraftAndPublishEnabled &&\n hasPublishPermission &&\n documents.some((entry) => entry.status === 'published' || entry.status === 'modified');\n\n if (!showUnpublishButton) return null;\n\n return {\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.unpublish', defaultMessage: 'Unpublish' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.unpublish.all',\n defaultMessage: 'Are you sure you want to unpublish these entries?',\n })}\n </Typography>\n {hasI18nEnabled && (\n <Box textAlign=\"center\" padding={3}>\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.unpublishAdditionalInfos'),\n defaultMessage:\n 'This will unpublish the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n </Box>\n )}\n </Flex>\n ),\n confirmButton: formatMessage({\n id: 'app.utils.unpublish',\n defaultMessage: 'Unpublish',\n }),\n onConfirm: handleConfirmBulkUnpublish,\n },\n };\n};\n\nUnpublishAction.type = 'unpublish';\n\nconst Emphasis = (chunks: React.ReactNode) => (\n <Typography fontWeight=\"semiBold\" textColor=\"danger500\">\n {chunks}\n </Typography>\n);\n\nconst DEFAULT_BULK_ACTIONS: BulkActionComponent[] = [PublishAction, UnpublishAction, DeleteAction];\n\nexport { DEFAULT_BULK_ACTIONS, BulkActionsRenderer, Emphasis };\nexport type { BulkActionDescription };\n"],"names":["BulkActionsRenderer","plugins","useStrapiApp","state","model","collectionType","useDoc","selectedRows","useTable","_jsx","Flex","gap","DescriptionComponentRenderer","props","documents","descriptions","apis","getBulkActions","actions","map","action","DocumentActionButton","id","DeleteAction","formatMessage","useIntl","schema","contentType","selectRow","hasI18nEnabled","Boolean","pluginOptions","i18n","query","useQueryParams","params","React","useMemo","buildValidParams","hasDeletePermission","useDocumentRBAC","canDelete","deleteMany","bulkDeleteAction","isLoading","useDocumentActions","documentIds","documentId","handleConfirmBulkDelete","res","variant","label","defaultMessage","dialog","type","title","loading","content","_jsxs","direction","alignItems","justifyContent","WarningCircle","width","height","fill","Typography","textAlign","Box","padding","textColor","getTranslation","em","Emphasis","onConfirm","UnpublishAction","hasPublishPermission","canPublish","hasDraftAndPublishEnabled","options","draftAndPublish","unpublishMany","bulkUnpublishAction","handleConfirmBulkUnpublish","data","showUnpublishButton","some","entry","status","confirmButton","chunks","fontWeight","DEFAULT_BULK_ACTIONS","PublishAction"],"mappings":"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"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/Actions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n DescriptionComponentRenderer,\n useTable,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Box, ButtonProps, Flex, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { useDocumentLayout } from '../../../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport {\n DialogOptions,\n DocumentActionButton,\n ModalOptions,\n NotificationOptions,\n} from '../../../EditView/components/DocumentActions';\n\nimport { PublishAction } from './PublishAction';\n\nimport type { BulkActionComponent, ContentManagerPlugin } from '../../../../content-manager';\n\ninterface BulkActionDescription {\n dialog?: DialogOptions | NotificationOptions | ModalOptions;\n disabled?: boolean;\n icon?: React.ReactNode;\n label: string;\n onClick?: (event: React.SyntheticEvent) => void;\n /**\n * @default 'default'\n */\n type?: 'icon' | 'default';\n /**\n * @default 'secondary'\n */\n variant?: ButtonProps['variant'];\n}\n\n/* -------------------------------------------------------------------------------------------------\n * BulkActionsRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst BulkActionsRenderer = () => {\n const plugins = useStrapiApp('BulkActionsRenderer', (state) => state.plugins);\n\n const { model, collectionType } = useDoc();\n const { list } = useDocumentLayout(model);\n const { selectedRows } = useTable('BulkActionsRenderer', (state) => state);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n model,\n collectionType,\n documents: selectedRows,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getBulkActions()}\n >\n {(actions) =>\n actions.map((action) => {\n return list.settings.bulkable && <DocumentActionButton key={action.id} {...action} />;\n })\n }\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DefaultBulkActions\n * -----------------------------------------------------------------------------------------------*/\n\nconst DeleteAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema: contentType } = useDoc();\n const selectRow = useTable('DeleteAction', (state) => state.selectRow);\n const hasI18nEnabled = Boolean(contentType?.pluginOptions?.i18n);\n const [{ query }] = useQueryParams<{ plugins?: { i18n?: { locale?: string } } }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasDeletePermission = useDocumentRBAC('deleteAction', (state) => state.canDelete);\n const { deleteMany: bulkDeleteAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n\n const handleConfirmBulkDelete = async () => {\n const res = await bulkDeleteAction({\n documentIds,\n model,\n params,\n });\n if (!('error' in res)) {\n selectRow([]);\n }\n };\n\n if (!hasDeletePermission) return null;\n\n return {\n variant: 'danger-light',\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.delete.all',\n defaultMessage: 'Are you sure you want to delete these entries?',\n })}\n </Typography>\n {hasI18nEnabled && (\n <Box textAlign=\"center\" padding={3}>\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.deleteAdditionalInfos'),\n defaultMessage:\n 'This will delete the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n </Box>\n )}\n </Flex>\n ),\n onConfirm: handleConfirmBulkDelete,\n },\n };\n};\n\nDeleteAction.type = 'delete';\n\nconst UnpublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema } = useDoc();\n const selectRow = useTable('UnpublishAction', (state) => state.selectRow);\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const hasDraftAndPublishEnabled = Boolean(schema?.options?.draftAndPublish);\n const { unpublishMany: bulkUnpublishAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const handleConfirmBulkUnpublish = async () => {\n const data = await bulkUnpublishAction({ documentIds, model, params });\n if (!('error' in data)) {\n selectRow([]);\n }\n };\n\n const showUnpublishButton =\n hasDraftAndPublishEnabled &&\n hasPublishPermission &&\n documents.some((entry) => entry.status === 'published' || entry.status === 'modified');\n\n if (!showUnpublishButton) return null;\n\n return {\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.unpublish', defaultMessage: 'Unpublish' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.unpublish.all',\n defaultMessage: 'Are you sure you want to unpublish these entries?',\n })}\n </Typography>\n </Flex>\n ),\n confirmButton: formatMessage({\n id: 'app.utils.unpublish',\n defaultMessage: 'Unpublish',\n }),\n onConfirm: handleConfirmBulkUnpublish,\n },\n };\n};\n\nUnpublishAction.type = 'unpublish';\n\nconst Emphasis = (chunks: React.ReactNode) => (\n <Typography fontWeight=\"semiBold\" textColor=\"danger500\">\n {chunks}\n </Typography>\n);\n\nconst DEFAULT_BULK_ACTIONS: BulkActionComponent[] = [PublishAction, UnpublishAction, DeleteAction];\n\nexport { DEFAULT_BULK_ACTIONS, BulkActionsRenderer, Emphasis };\nexport type { BulkActionDescription };\n"],"names":["BulkActionsRenderer","plugins","useStrapiApp","state","model","collectionType","useDoc","list","useDocumentLayout","selectedRows","useTable","_jsx","Flex","gap","DescriptionComponentRenderer","props","documents","descriptions","apis","getBulkActions","actions","map","action","settings","bulkable","DocumentActionButton","id","DeleteAction","formatMessage","useIntl","schema","contentType","selectRow","hasI18nEnabled","Boolean","pluginOptions","i18n","query","useQueryParams","params","React","useMemo","buildValidParams","hasDeletePermission","useDocumentRBAC","canDelete","deleteMany","bulkDeleteAction","isLoading","useDocumentActions","documentIds","documentId","handleConfirmBulkDelete","res","variant","label","defaultMessage","dialog","type","title","loading","content","_jsxs","direction","alignItems","justifyContent","WarningCircle","width","height","fill","Typography","textAlign","Box","padding","textColor","getTranslation","em","Emphasis","onConfirm","UnpublishAction","hasPublishPermission","canPublish","hasDraftAndPublishEnabled","options","draftAndPublish","unpublishMany","bulkUnpublishAction","handleConfirmBulkUnpublish","data","showUnpublishButton","some","entry","status","confirmButton","chunks","fontWeight","DEFAULT_BULK_ACTIONS","PublishAction"],"mappings":"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"}
@@ -7,6 +7,7 @@ import { useIntl } from 'react-intl';
7
7
  import { useDocumentRBAC } from '../../../../features/DocumentRBAC.mjs';
8
8
  import { useDoc } from '../../../../hooks/useDocument.mjs';
9
9
  import { useDocumentActions } from '../../../../hooks/useDocumentActions.mjs';
10
+ import { useDocumentLayout } from '../../../../hooks/useDocumentLayout.mjs';
10
11
  import { buildValidParams } from '../../../../utils/api.mjs';
11
12
  import { getTranslation } from '../../../../utils/translations.mjs';
12
13
  import { DocumentActionButton } from '../../../EditView/components/DocumentActions.mjs';
@@ -17,6 +18,7 @@ import { PublishAction } from './PublishAction.mjs';
17
18
  * -----------------------------------------------------------------------------------------------*/ const BulkActionsRenderer = ()=>{
18
19
  const plugins = useStrapiApp('BulkActionsRenderer', (state)=>state.plugins);
19
20
  const { model, collectionType } = useDoc();
21
+ const { list } = useDocumentLayout(model);
20
22
  const { selectedRows } = useTable('BulkActionsRenderer', (state)=>state);
21
23
  return /*#__PURE__*/ jsx(Flex, {
22
24
  gap: 2,
@@ -27,9 +29,11 @@ import { PublishAction } from './PublishAction.mjs';
27
29
  documents: selectedRows
28
30
  },
29
31
  descriptions: plugins['content-manager'].apis.getBulkActions(),
30
- children: (actions)=>actions.map((action)=>/*#__PURE__*/ jsx(DocumentActionButton, {
32
+ children: (actions)=>actions.map((action)=>{
33
+ return list.settings.bulkable && /*#__PURE__*/ jsx(DocumentActionButton, {
31
34
  ...action
32
- }, action.id))
35
+ }, action.id);
36
+ })
33
37
  })
34
38
  });
35
39
  };
@@ -117,7 +121,6 @@ const UnpublishAction = ({ documents, model })=>{
117
121
  const { schema } = useDoc();
118
122
  const selectRow = useTable('UnpublishAction', (state)=>state.selectRow);
119
123
  const hasPublishPermission = useDocumentRBAC('unpublishAction', (state)=>state.canPublish);
120
- const hasI18nEnabled = Boolean(schema?.pluginOptions?.i18n);
121
124
  const hasDraftAndPublishEnabled = Boolean(schema?.options?.draftAndPublish);
122
125
  const { unpublishMany: bulkUnpublishAction, isLoading } = useDocumentActions();
123
126
  const documentIds = documents.map(({ documentId })=>documentId);
@@ -170,19 +173,6 @@ const UnpublishAction = ({ documents, model })=>{
170
173
  id: 'popUpWarning.bodyMessage.contentType.unpublish.all',
171
174
  defaultMessage: 'Are you sure you want to unpublish these entries?'
172
175
  })
173
- }),
174
- hasI18nEnabled && /*#__PURE__*/ jsx(Box, {
175
- textAlign: "center",
176
- padding: 3,
177
- children: /*#__PURE__*/ jsx(Typography, {
178
- textColor: "danger500",
179
- children: formatMessage({
180
- id: getTranslation('Settings.list.actions.unpublishAdditionalInfos'),
181
- defaultMessage: 'This will unpublish the active locale versions <em>(from Internationalization)</em>'
182
- }, {
183
- em: Emphasis
184
- })
185
- })
186
176
  })
187
177
  ]
188
178
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.mjs","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/Actions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n DescriptionComponentRenderer,\n useTable,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Box, ButtonProps, Flex, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport {\n DialogOptions,\n DocumentActionButton,\n ModalOptions,\n NotificationOptions,\n} from '../../../EditView/components/DocumentActions';\n\nimport { PublishAction } from './PublishAction';\n\nimport type { BulkActionComponent, ContentManagerPlugin } from '../../../../content-manager';\n\ninterface BulkActionDescription {\n dialog?: DialogOptions | NotificationOptions | ModalOptions;\n disabled?: boolean;\n icon?: React.ReactNode;\n label: string;\n onClick?: (event: React.SyntheticEvent) => void;\n /**\n * @default 'default'\n */\n type?: 'icon' | 'default';\n /**\n * @default 'secondary'\n */\n variant?: ButtonProps['variant'];\n}\n\n/* -------------------------------------------------------------------------------------------------\n * BulkActionsRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst BulkActionsRenderer = () => {\n const plugins = useStrapiApp('BulkActionsRenderer', (state) => state.plugins);\n\n const { model, collectionType } = useDoc();\n const { selectedRows } = useTable('BulkActionsRenderer', (state) => state);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n model,\n collectionType,\n documents: selectedRows,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getBulkActions()}\n >\n {(actions) => actions.map((action) => <DocumentActionButton key={action.id} {...action} />)}\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DefaultBulkActions\n * -----------------------------------------------------------------------------------------------*/\n\nconst DeleteAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema: contentType } = useDoc();\n const selectRow = useTable('DeleteAction', (state) => state.selectRow);\n const hasI18nEnabled = Boolean(contentType?.pluginOptions?.i18n);\n const [{ query }] = useQueryParams<{ plugins?: { i18n?: { locale?: string } } }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasDeletePermission = useDocumentRBAC('deleteAction', (state) => state.canDelete);\n const { deleteMany: bulkDeleteAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n\n const handleConfirmBulkDelete = async () => {\n const res = await bulkDeleteAction({\n documentIds,\n model,\n params,\n });\n if (!('error' in res)) {\n selectRow([]);\n }\n };\n\n if (!hasDeletePermission) return null;\n\n return {\n variant: 'danger-light',\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.delete.all',\n defaultMessage: 'Are you sure you want to delete these entries?',\n })}\n </Typography>\n {hasI18nEnabled && (\n <Box textAlign=\"center\" padding={3}>\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.deleteAdditionalInfos'),\n defaultMessage:\n 'This will delete the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n </Box>\n )}\n </Flex>\n ),\n onConfirm: handleConfirmBulkDelete,\n },\n };\n};\n\nDeleteAction.type = 'delete';\n\nconst UnpublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema } = useDoc();\n const selectRow = useTable('UnpublishAction', (state) => state.selectRow);\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const hasI18nEnabled = Boolean(schema?.pluginOptions?.i18n);\n const hasDraftAndPublishEnabled = Boolean(schema?.options?.draftAndPublish);\n const { unpublishMany: bulkUnpublishAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const handleConfirmBulkUnpublish = async () => {\n const data = await bulkUnpublishAction({ documentIds, model, params });\n if (!('error' in data)) {\n selectRow([]);\n }\n };\n\n const showUnpublishButton =\n hasDraftAndPublishEnabled &&\n hasPublishPermission &&\n documents.some((entry) => entry.status === 'published' || entry.status === 'modified');\n\n if (!showUnpublishButton) return null;\n\n return {\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.unpublish', defaultMessage: 'Unpublish' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.unpublish.all',\n defaultMessage: 'Are you sure you want to unpublish these entries?',\n })}\n </Typography>\n {hasI18nEnabled && (\n <Box textAlign=\"center\" padding={3}>\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.unpublishAdditionalInfos'),\n defaultMessage:\n 'This will unpublish the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n </Box>\n )}\n </Flex>\n ),\n confirmButton: formatMessage({\n id: 'app.utils.unpublish',\n defaultMessage: 'Unpublish',\n }),\n onConfirm: handleConfirmBulkUnpublish,\n },\n };\n};\n\nUnpublishAction.type = 'unpublish';\n\nconst Emphasis = (chunks: React.ReactNode) => (\n <Typography fontWeight=\"semiBold\" textColor=\"danger500\">\n {chunks}\n </Typography>\n);\n\nconst DEFAULT_BULK_ACTIONS: BulkActionComponent[] = [PublishAction, UnpublishAction, DeleteAction];\n\nexport { DEFAULT_BULK_ACTIONS, BulkActionsRenderer, Emphasis };\nexport type { BulkActionDescription };\n"],"names":["BulkActionsRenderer","plugins","useStrapiApp","state","model","collectionType","useDoc","selectedRows","useTable","_jsx","Flex","gap","DescriptionComponentRenderer","props","documents","descriptions","apis","getBulkActions","actions","map","action","DocumentActionButton","id","DeleteAction","formatMessage","useIntl","schema","contentType","selectRow","hasI18nEnabled","Boolean","pluginOptions","i18n","query","useQueryParams","params","React","useMemo","buildValidParams","hasDeletePermission","useDocumentRBAC","canDelete","deleteMany","bulkDeleteAction","isLoading","useDocumentActions","documentIds","documentId","handleConfirmBulkDelete","res","variant","label","defaultMessage","dialog","type","title","loading","content","_jsxs","direction","alignItems","justifyContent","WarningCircle","width","height","fill","Typography","textAlign","Box","padding","textColor","getTranslation","em","Emphasis","onConfirm","UnpublishAction","hasPublishPermission","canPublish","hasDraftAndPublishEnabled","options","draftAndPublish","unpublishMany","bulkUnpublishAction","handleConfirmBulkUnpublish","data","showUnpublishButton","some","entry","status","confirmButton","chunks","fontWeight","DEFAULT_BULK_ACTIONS","PublishAction"],"mappings":"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"}
1
+ {"version":3,"file":"Actions.mjs","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/Actions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n DescriptionComponentRenderer,\n useTable,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Box, ButtonProps, Flex, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { useDocumentLayout } from '../../../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport {\n DialogOptions,\n DocumentActionButton,\n ModalOptions,\n NotificationOptions,\n} from '../../../EditView/components/DocumentActions';\n\nimport { PublishAction } from './PublishAction';\n\nimport type { BulkActionComponent, ContentManagerPlugin } from '../../../../content-manager';\n\ninterface BulkActionDescription {\n dialog?: DialogOptions | NotificationOptions | ModalOptions;\n disabled?: boolean;\n icon?: React.ReactNode;\n label: string;\n onClick?: (event: React.SyntheticEvent) => void;\n /**\n * @default 'default'\n */\n type?: 'icon' | 'default';\n /**\n * @default 'secondary'\n */\n variant?: ButtonProps['variant'];\n}\n\n/* -------------------------------------------------------------------------------------------------\n * BulkActionsRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst BulkActionsRenderer = () => {\n const plugins = useStrapiApp('BulkActionsRenderer', (state) => state.plugins);\n\n const { model, collectionType } = useDoc();\n const { list } = useDocumentLayout(model);\n const { selectedRows } = useTable('BulkActionsRenderer', (state) => state);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n model,\n collectionType,\n documents: selectedRows,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getBulkActions()}\n >\n {(actions) =>\n actions.map((action) => {\n return list.settings.bulkable && <DocumentActionButton key={action.id} {...action} />;\n })\n }\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DefaultBulkActions\n * -----------------------------------------------------------------------------------------------*/\n\nconst DeleteAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema: contentType } = useDoc();\n const selectRow = useTable('DeleteAction', (state) => state.selectRow);\n const hasI18nEnabled = Boolean(contentType?.pluginOptions?.i18n);\n const [{ query }] = useQueryParams<{ plugins?: { i18n?: { locale?: string } } }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const hasDeletePermission = useDocumentRBAC('deleteAction', (state) => state.canDelete);\n const { deleteMany: bulkDeleteAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n\n const handleConfirmBulkDelete = async () => {\n const res = await bulkDeleteAction({\n documentIds,\n model,\n params,\n });\n if (!('error' in res)) {\n selectRow([]);\n }\n };\n\n if (!hasDeletePermission) return null;\n\n return {\n variant: 'danger-light',\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.delete.all',\n defaultMessage: 'Are you sure you want to delete these entries?',\n })}\n </Typography>\n {hasI18nEnabled && (\n <Box textAlign=\"center\" padding={3}>\n <Typography textColor=\"danger500\">\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.deleteAdditionalInfos'),\n defaultMessage:\n 'This will delete the active locale versions <em>(from Internationalization)</em>',\n },\n {\n em: Emphasis,\n }\n )}\n </Typography>\n </Box>\n )}\n </Flex>\n ),\n onConfirm: handleConfirmBulkDelete,\n },\n };\n};\n\nDeleteAction.type = 'delete';\n\nconst UnpublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n const { schema } = useDoc();\n const selectRow = useTable('UnpublishAction', (state) => state.selectRow);\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const hasDraftAndPublishEnabled = Boolean(schema?.options?.draftAndPublish);\n const { unpublishMany: bulkUnpublishAction, isLoading } = useDocumentActions();\n const documentIds = documents.map(({ documentId }) => documentId);\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const handleConfirmBulkUnpublish = async () => {\n const data = await bulkUnpublishAction({ documentIds, model, params });\n if (!('error' in data)) {\n selectRow([]);\n }\n };\n\n const showUnpublishButton =\n hasDraftAndPublishEnabled &&\n hasPublishPermission &&\n documents.some((entry) => entry.status === 'published' || entry.status === 'modified');\n\n if (!showUnpublishButton) return null;\n\n return {\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.unpublish', defaultMessage: 'Unpublish' }),\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n loading: isLoading,\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {formatMessage({\n id: 'popUpWarning.bodyMessage.contentType.unpublish.all',\n defaultMessage: 'Are you sure you want to unpublish these entries?',\n })}\n </Typography>\n </Flex>\n ),\n confirmButton: formatMessage({\n id: 'app.utils.unpublish',\n defaultMessage: 'Unpublish',\n }),\n onConfirm: handleConfirmBulkUnpublish,\n },\n };\n};\n\nUnpublishAction.type = 'unpublish';\n\nconst Emphasis = (chunks: React.ReactNode) => (\n <Typography fontWeight=\"semiBold\" textColor=\"danger500\">\n {chunks}\n </Typography>\n);\n\nconst DEFAULT_BULK_ACTIONS: BulkActionComponent[] = [PublishAction, UnpublishAction, DeleteAction];\n\nexport { DEFAULT_BULK_ACTIONS, BulkActionsRenderer, Emphasis };\nexport type { BulkActionDescription };\n"],"names":["BulkActionsRenderer","plugins","useStrapiApp","state","model","collectionType","useDoc","list","useDocumentLayout","selectedRows","useTable","_jsx","Flex","gap","DescriptionComponentRenderer","props","documents","descriptions","apis","getBulkActions","actions","map","action","settings","bulkable","DocumentActionButton","id","DeleteAction","formatMessage","useIntl","schema","contentType","selectRow","hasI18nEnabled","Boolean","pluginOptions","i18n","query","useQueryParams","params","React","useMemo","buildValidParams","hasDeletePermission","useDocumentRBAC","canDelete","deleteMany","bulkDeleteAction","isLoading","useDocumentActions","documentIds","documentId","handleConfirmBulkDelete","res","variant","label","defaultMessage","dialog","type","title","loading","content","_jsxs","direction","alignItems","justifyContent","WarningCircle","width","height","fill","Typography","textAlign","Box","padding","textColor","getTranslation","em","Emphasis","onConfirm","UnpublishAction","hasPublishPermission","canPublish","hasDraftAndPublishEnabled","options","draftAndPublish","unpublishMany","bulkUnpublishAction","handleConfirmBulkUnpublish","data","showUnpublishButton","some","entry","status","confirmButton","chunks","fontWeight","DEFAULT_BULK_ACTIONS","PublishAction"],"mappings":";;;;;;;;;;;;;;;AA6CA;;AAEkG,2GAE5FA,mBAAsB,GAAA,IAAA;AAC1B,IAAA,MAAMC,UAAUC,YAAa,CAAA,qBAAA,EAAuB,CAACC,KAAAA,GAAUA,MAAMF,OAAO,CAAA;AAE5E,IAAA,MAAM,EAAEG,KAAK,EAAEC,cAAc,EAAE,GAAGC,MAAAA,EAAAA;AAClC,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGC,iBAAkBJ,CAAAA,KAAAA,CAAAA;AACnC,IAAA,MAAM,EAAEK,YAAY,EAAE,GAAGC,QAAS,CAAA,qBAAA,EAAuB,CAACP,KAAUA,GAAAA,KAAAA,CAAAA;AAEpE,IAAA,qBACEQ,GAACC,CAAAA,IAAAA,EAAAA;QAAKC,GAAK,EAAA,CAAA;AACT,QAAA,QAAA,gBAAAF,GAACG,CAAAA,4BAAAA,EAAAA;YACCC,KAAO,EAAA;AACLX,gBAAAA,KAAAA;AACAC,gBAAAA,cAAAA;gBACAW,SAAWP,EAAAA;AACb,aAAA;AACAQ,YAAAA,YAAAA,EAAc,OACL,CAAC,kBAAkB,CAACC,IAAI,CAC/BC,cAAc,EAAA;AAEf,YAAA,QAAA,EAAA,CAACC,OACAA,GAAAA,OAAAA,CAAQC,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,oBAAA,OAAOf,IAAKgB,CAAAA,QAAQ,CAACC,QAAQ,kBAAIb,GAACc,CAAAA,oBAAAA,EAAAA;AAAsC,wBAAA,GAAGH;AAAfA,qBAAAA,EAAAA,MAAAA,CAAOI,EAAE,CAAA;AACvE,iBAAA;;;AAKV;AAEA;;AAEkG,qGAElG,MAAMC,YAAoC,GAAA,CAAC,EAAEX,SAAS,EAAEZ,KAAK,EAAE,GAAA;IAC7D,MAAM,EAAEwB,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,MAAAA,EAAQC,WAAW,EAAE,GAAGzB,MAAAA,EAAAA;AAChC,IAAA,MAAM0B,YAAYtB,QAAS,CAAA,cAAA,EAAgB,CAACP,KAAAA,GAAUA,MAAM6B,SAAS,CAAA;IACrE,MAAMC,cAAAA,GAAiBC,OAAQH,CAAAA,WAAAA,EAAaI,aAAeC,EAAAA,IAAAA,CAAAA;AAC3D,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,SAASC,KAAMC,CAAAA,OAAO,CAAC,IAAMC,iBAAiBL,KAAQ,CAAA,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;AACnE,IAAA,MAAMM,sBAAsBC,eAAgB,CAAA,cAAA,EAAgB,CAACzC,KAAAA,GAAUA,MAAM0C,SAAS,CAAA;AACtF,IAAA,MAAM,EAAEC,UAAYC,EAAAA,gBAAgB,EAAEC,SAAS,EAAE,GAAGC,kBAAAA,EAAAA;IACpD,MAAMC,WAAAA,GAAclC,UAAUK,GAAG,CAAC,CAAC,EAAE8B,UAAU,EAAE,GAAKA,UAAAA,CAAAA;AAEtD,IAAA,MAAMC,uBAA0B,GAAA,UAAA;QAC9B,MAAMC,GAAAA,GAAM,MAAMN,gBAAiB,CAAA;AACjCG,YAAAA,WAAAA;AACA9C,YAAAA,KAAAA;AACAmC,YAAAA;AACF,SAAA,CAAA;AACA,QAAA,IAAI,EAAE,OAAWc,IAAAA,GAAE,CAAI,EAAA;AACrBrB,YAAAA,SAAAA,CAAU,EAAE,CAAA;AACd;AACF,KAAA;IAEA,IAAI,CAACW,qBAAqB,OAAO,IAAA;IAEjC,OAAO;QACLW,OAAS,EAAA,cAAA;AACTC,QAAAA,KAAAA,EAAO3B,aAAc,CAAA;YAAEF,EAAI,EAAA,eAAA;YAAiB8B,cAAgB,EAAA;AAAS,SAAA,CAAA;QACrEC,MAAQ,EAAA;YACNC,IAAM,EAAA,QAAA;AACNC,YAAAA,KAAAA,EAAO/B,aAAc,CAAA;gBACnBF,EAAI,EAAA,oCAAA;gBACJ8B,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAI,OAASZ,EAAAA,SAAAA;AACTa,YAAAA,OAAAA,gBACEC,IAAClD,CAAAA,IAAAA,EAAAA;gBAAKmD,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;gBAAUnD,GAAK,EAAA,CAAA;;kCACjDF,GAACC,CAAAA,IAAAA,EAAAA;wBAAKqD,cAAe,EAAA,QAAA;AACnB,wBAAA,QAAA,gBAAAtD,GAACuD,CAAAA,aAAAA,EAAAA;4BAAcC,KAAM,EAAA,MAAA;4BAAOC,MAAO,EAAA,MAAA;4BAAOC,IAAK,EAAA;;;kCAEjD1D,GAAC2D,CAAAA,UAAAA,EAAAA;wBAAW5C,EAAG,EAAA,qBAAA;wBAAsB6C,SAAU,EAAA,QAAA;kCAC5C3C,aAAc,CAAA;4BACbF,EAAI,EAAA,iDAAA;4BACJ8B,cAAgB,EAAA;AAClB,yBAAA;;AAEDvB,oBAAAA,cAAAA,kBACCtB,GAAC6D,CAAAA,GAAAA,EAAAA;wBAAID,SAAU,EAAA,QAAA;wBAASE,OAAS,EAAA,CAAA;AAC/B,wBAAA,QAAA,gBAAA9D,GAAC2D,CAAAA,UAAAA,EAAAA;4BAAWI,SAAU,EAAA,WAAA;sCACnB9C,aACC,CAAA;AACEF,gCAAAA,EAAAA,EAAIiD,cAAe,CAAA,6CAAA,CAAA;gCACnBnB,cACE,EAAA;6BAEJ,EAAA;gCACEoB,EAAIC,EAAAA;AACN,6BAAA;;;;;YAOZC,SAAW1B,EAAAA;AACb;AACF,KAAA;AACF,CAAA;AAEAzB,YAAAA,CAAa+B,IAAI,GAAG,QAAA;AAEpB,MAAMqB,kBAAuC,CAAC,EAAE/D,SAAS,EAAEZ,KAAK,EAAE,GAAA;IAChE,MAAM,EAAEwB,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGxB,MAAAA,EAAAA;AACnB,IAAA,MAAM0B,YAAYtB,QAAS,CAAA,iBAAA,EAAmB,CAACP,KAAAA,GAAUA,MAAM6B,SAAS,CAAA;AACxE,IAAA,MAAMgD,uBAAuBpC,eAAgB,CAAA,iBAAA,EAAmB,CAACzC,KAAAA,GAAUA,MAAM8E,UAAU,CAAA;IAC3F,MAAMC,yBAAAA,GAA4BhD,OAAQJ,CAAAA,MAAAA,EAAQqD,OAASC,EAAAA,eAAAA,CAAAA;AAC3D,IAAA,MAAM,EAAEC,aAAeC,EAAAA,mBAAmB,EAAEtC,SAAS,EAAE,GAAGC,kBAAAA,EAAAA;IAC1D,MAAMC,WAAAA,GAAclC,UAAUK,GAAG,CAAC,CAAC,EAAE8B,UAAU,EAAE,GAAKA,UAAAA,CAAAA;AACtD,IAAA,MAAM,CAAC,EAAEd,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,SAASC,KAAMC,CAAAA,OAAO,CAAC,IAAMC,iBAAiBL,KAAQ,CAAA,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;AAEnE,IAAA,MAAMkD,0BAA6B,GAAA,UAAA;QACjC,MAAMC,IAAAA,GAAO,MAAMF,mBAAoB,CAAA;AAAEpC,YAAAA,WAAAA;AAAa9C,YAAAA,KAAAA;AAAOmC,YAAAA;AAAO,SAAA,CAAA;AACpE,QAAA,IAAI,EAAE,OAAWiD,IAAAA,IAAG,CAAI,EAAA;AACtBxD,YAAAA,SAAAA,CAAU,EAAE,CAAA;AACd;AACF,KAAA;AAEA,IAAA,MAAMyD,mBACJP,GAAAA,yBAAAA,IACAF,oBACAhE,IAAAA,SAAAA,CAAU0E,IAAI,CAAC,CAACC,KAAUA,GAAAA,KAAAA,CAAMC,MAAM,KAAK,WAAeD,IAAAA,KAAAA,CAAMC,MAAM,KAAK,UAAA,CAAA;IAE7E,IAAI,CAACH,qBAAqB,OAAO,IAAA;IAEjC,OAAO;QACLnC,OAAS,EAAA,UAAA;AACTC,QAAAA,KAAAA,EAAO3B,aAAc,CAAA;YAAEF,EAAI,EAAA,qBAAA;YAAuB8B,cAAgB,EAAA;AAAY,SAAA,CAAA;QAC9EC,MAAQ,EAAA;YACNC,IAAM,EAAA,QAAA;AACNC,YAAAA,KAAAA,EAAO/B,aAAc,CAAA;gBACnBF,EAAI,EAAA,oCAAA;gBACJ8B,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAI,OAASZ,EAAAA,SAAAA;AACTa,YAAAA,OAAAA,gBACEC,IAAClD,CAAAA,IAAAA,EAAAA;gBAAKmD,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;gBAAUnD,GAAK,EAAA,CAAA;;kCACjDF,GAACC,CAAAA,IAAAA,EAAAA;wBAAKqD,cAAe,EAAA,QAAA;AACnB,wBAAA,QAAA,gBAAAtD,GAACuD,CAAAA,aAAAA,EAAAA;4BAAcC,KAAM,EAAA,MAAA;4BAAOC,MAAO,EAAA,MAAA;4BAAOC,IAAK,EAAA;;;kCAEjD1D,GAAC2D,CAAAA,UAAAA,EAAAA;wBAAW5C,EAAG,EAAA,qBAAA;wBAAsB6C,SAAU,EAAA,QAAA;kCAC5C3C,aAAc,CAAA;4BACbF,EAAI,EAAA,oDAAA;4BACJ8B,cAAgB,EAAA;AAClB,yBAAA;;;;AAINqC,YAAAA,aAAAA,EAAejE,aAAc,CAAA;gBAC3BF,EAAI,EAAA,qBAAA;gBACJ8B,cAAgB,EAAA;AAClB,aAAA,CAAA;YACAsB,SAAWS,EAAAA;AACb;AACF,KAAA;AACF,CAAA;AAEAR,eAAAA,CAAgBrB,IAAI,GAAG,WAAA;AAEjBmB,MAAAA,QAAAA,GAAW,CAACiB,MAAAA,iBAChBnF,GAAC2D,CAAAA,UAAAA,EAAAA;QAAWyB,UAAW,EAAA,UAAA;QAAWrB,SAAU,EAAA,WAAA;AACzCoB,QAAAA,QAAAA,EAAAA;;AAIL,MAAME,oBAA8C,GAAA;AAACC,IAAAA,aAAAA;AAAelB,IAAAA,eAAAA;AAAiBpD,IAAAA;AAAa;;;;"}
@@ -9,7 +9,6 @@ var reactIntl = require('react-intl');
9
9
  var useDocument = require('../../../../hooks/useDocument.js');
10
10
  var documents = require('../../../../services/documents.js');
11
11
  var translations = require('../../../../utils/translations.js');
12
- var Actions = require('./Actions.js');
13
12
 
14
13
  function _interopNamespaceDefault(e) {
15
14
  var n = Object.create(null);
@@ -64,7 +63,7 @@ const ConfirmBulkActionDialog = ({ onToggleDialog, isOpen = false, dialogBody, e
64
63
  children: [
65
64
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Dialog.Cancel, {
66
65
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
67
- fullWidth: true,
66
+ width: '50%',
68
67
  onClick: onToggleDialog,
69
68
  variant: "tertiary",
70
69
  children: formatMessage({
@@ -91,7 +90,7 @@ const ConfirmDialogPublishAll = ({ isOpen, onToggleDialog, isConfirmButtonLoadin
91
90
  const selectedEntries = strapiAdmin.useTable('ConfirmDialogPublishAll', (state)=>state.selectedRows);
92
91
  const { toggleNotification } = strapiAdmin.useNotification();
93
92
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler(translations.getTranslation);
94
- const { model, schema } = useDocument.useDoc();
93
+ const { model } = useDocument.useDoc();
95
94
  const [{ query }] = strapiAdmin.useQueryParams();
96
95
  // TODO skipping this for now as there is a bug with the draft relation count that will be worked on separately
97
96
  // see RFC "Count draft relations" in Notion
@@ -121,39 +120,28 @@ const ConfirmDialogPublishAll = ({ isOpen, onToggleDialog, isConfirmButtonLoadin
121
120
  return /*#__PURE__*/ jsxRuntime.jsx(ConfirmBulkActionDialog, {
122
121
  isOpen: isOpen && !isLoading,
123
122
  onToggleDialog: onToggleDialog,
124
- dialogBody: /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
125
- children: [
126
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
127
- id: "confirm-description",
128
- textAlign: "center",
129
- children: [
130
- countDraftRelations > 0 && formatMessage({
131
- id: translations.getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),
132
- defaultMessage: '<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. '
133
- }, {
134
- b: BoldChunk,
135
- count: countDraftRelations,
136
- entities: selectedEntries.length
137
- }),
138
- formatMessage({
139
- id: translations.getTranslation('popUpWarning.bodyMessage.contentType.publish.all'),
140
- defaultMessage: 'Are you sure you want to publish these entries?'
141
- })
142
- ]
143
- }),
144
- schema?.pluginOptions && 'i18n' in schema.pluginOptions && schema?.pluginOptions.i18n && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
145
- textColor: "danger500",
146
- textAlign: "center",
147
- children: formatMessage({
148
- id: translations.getTranslation('Settings.list.actions.publishAdditionalInfos'),
149
- defaultMessage: 'This will publish the active locale versions <em>(from Internationalization)</em>'
123
+ dialogBody: /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
124
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
125
+ id: "confirm-description",
126
+ textAlign: "center",
127
+ children: [
128
+ countDraftRelations > 0 && formatMessage({
129
+ id: translations.getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),
130
+ defaultMessage: '<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. '
150
131
  }, {
151
- em: Actions.Emphasis
132
+ b: BoldChunk,
133
+ count: countDraftRelations,
134
+ entities: selectedEntries.length
135
+ }),
136
+ formatMessage({
137
+ id: translations.getTranslation('popUpWarning.bodyMessage.contentType.publish.all'),
138
+ defaultMessage: 'Are you sure you want to publish these entries?'
152
139
  })
153
- })
154
- ]
140
+ ]
141
+ })
155
142
  }),
156
143
  endAction: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
144
+ width: '50%',
157
145
  onClick: onConfirm,
158
146
  variant: "secondary",
159
147
  startIcon: /*#__PURE__*/ jsxRuntime.jsx(Icons.Check, {}),