@strapi/content-manager 5.48.1 → 5.50.0

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 (458) hide show
  1. package/dist/admin/components/ActionsDrawer.js +3 -2
  2. package/dist/admin/components/ActionsDrawer.js.map +1 -1
  3. package/dist/admin/components/ComponentIcon.js +4 -3
  4. package/dist/admin/components/ComponentIcon.js.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/Fields.js +3 -2
  8. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Form.js +7 -3
  10. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  11. package/dist/admin/components/LeftMenu.js +3 -2
  12. package/dist/admin/components/LeftMenu.js.map +1 -1
  13. package/dist/admin/components/RelativeTime.js +3 -2
  14. package/dist/admin/components/RelativeTime.js.map +1 -1
  15. package/dist/admin/components/Widgets.js +3 -2
  16. package/dist/admin/components/Widgets.js.map +1 -1
  17. package/dist/admin/features/DocumentRBAC.js +3 -2
  18. package/dist/admin/features/DocumentRBAC.js.map +1 -1
  19. package/dist/admin/history/components/VersionContent.js +7 -3
  20. package/dist/admin/history/components/VersionContent.js.map +1 -1
  21. package/dist/admin/history/components/VersionHeader.js +3 -2
  22. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  23. package/dist/admin/history/components/VersionInputRenderer.js +3 -2
  24. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  25. package/dist/admin/history/pages/History.js +3 -2
  26. package/dist/admin/history/pages/History.js.map +1 -1
  27. package/dist/admin/history/routes.js +3 -2
  28. package/dist/admin/history/routes.js.map +1 -1
  29. package/dist/admin/hooks/useContentTypeSchema.js +3 -2
  30. package/dist/admin/hooks/useContentTypeSchema.js.map +1 -1
  31. package/dist/admin/hooks/useDocument.js +3 -2
  32. package/dist/admin/hooks/useDocument.js.map +1 -1
  33. package/dist/admin/hooks/useDocumentActions.js +3 -2
  34. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  35. package/dist/admin/hooks/useDocumentContext.js +3 -2
  36. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  37. package/dist/admin/hooks/useDocumentLayout.js +3 -2
  38. package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
  39. package/dist/admin/hooks/useDragAndDrop.js +3 -2
  40. package/dist/admin/hooks/useDragAndDrop.js.map +1 -1
  41. package/dist/admin/hooks/useKeyboardDragAndDrop.js +3 -2
  42. package/dist/admin/hooks/useKeyboardDragAndDrop.js.map +1 -1
  43. package/dist/admin/hooks/useOnce.js +3 -2
  44. package/dist/admin/hooks/useOnce.js.map +1 -1
  45. package/dist/admin/hooks/usePersistentQueryParams.js +7 -2
  46. package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
  47. package/dist/admin/layout.js +3 -1
  48. package/dist/admin/layout.js.map +1 -1
  49. package/dist/admin/layout.mjs +5 -3
  50. package/dist/admin/layout.mjs.map +1 -1
  51. package/dist/admin/pages/ComponentConfigurationPage.js +3 -2
  52. package/dist/admin/pages/ComponentConfigurationPage.js.map +1 -1
  53. package/dist/admin/pages/EditConfigurationPage.js +3 -2
  54. package/dist/admin/pages/EditConfigurationPage.js.map +1 -1
  55. package/dist/admin/pages/EditView/EditViewPage.js +3 -2
  56. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/DocumentActions.js +238 -108
  58. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/DocumentActions.mjs +225 -103
  60. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +3 -2
  62. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js +4 -3
  64. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +3 -2
  66. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +3 -2
  68. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +3 -2
  70. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +3 -2
  72. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js +3 -2
  74. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +4 -3
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +3 -2
  78. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +3 -2
  80. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +3 -2
  82. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +6 -1
  84. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +2 -1
  86. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +9 -4
  88. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +3 -2
  90. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +13 -4
  92. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +6 -1
  94. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +3 -2
  96. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +7 -3
  98. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/UID.js +3 -2
  100. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +8 -4
  102. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js +3 -2
  104. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +3 -2
  106. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js +5 -1
  108. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js +15 -2
  110. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js +5 -1
  112. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormLayout.js +3 -2
  114. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  115. package/dist/admin/pages/EditView/components/Header.js +3 -2
  116. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -2
  118. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  119. package/dist/admin/pages/EditView/components/Panels.js +3 -2
  120. package/dist/admin/pages/EditView/components/Panels.js.map +1 -1
  121. package/dist/admin/pages/EditView/utils/data.js +5 -1
  122. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  123. package/dist/admin/pages/EditView/utils/draftRelationCounts.js +117 -0
  124. package/dist/admin/pages/EditView/utils/draftRelationCounts.js.map +1 -0
  125. package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs +109 -0
  126. package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs.map +1 -0
  127. package/dist/admin/pages/EditView/utils/keyboardShortcuts.js +35 -0
  128. package/dist/admin/pages/EditView/utils/keyboardShortcuts.js.map +1 -0
  129. package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs +33 -0
  130. package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs.map +1 -0
  131. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +3 -2
  132. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  133. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +3 -2
  134. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  135. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +3 -2
  136. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
  137. package/dist/admin/pages/ListConfiguration/components/Settings.js +3 -2
  138. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  139. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js +3 -2
  140. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js.map +1 -1
  141. package/dist/admin/pages/ListView/ListViewPage.js +3 -2
  142. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  143. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +3 -2
  144. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  145. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +4 -3
  146. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  147. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +1 -1
  148. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  149. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +3 -2
  150. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  151. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  152. package/dist/admin/pages/ListView/components/Filters.js +3 -2
  153. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  154. package/dist/admin/pages/ListView/components/TableActions.js +3 -2
  155. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  156. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +9 -5
  157. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  158. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +2 -2
  159. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  160. package/dist/admin/pages/ListView/components/TableCells/CellValue.js +7 -2
  161. package/dist/admin/pages/ListView/components/TableCells/CellValue.js.map +1 -1
  162. package/dist/admin/pages/ListView/components/TableCells/Relations.js +4 -3
  163. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  164. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +1 -1
  165. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  166. package/dist/admin/preview/components/InputPopover.js +3 -2
  167. package/dist/admin/preview/components/InputPopover.js.map +1 -1
  168. package/dist/admin/preview/hooks/usePreviewInputManager.js +3 -2
  169. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -1
  170. package/dist/admin/preview/pages/Preview.js +41 -13
  171. package/dist/admin/preview/pages/Preview.js.map +1 -1
  172. package/dist/admin/preview/pages/Preview.mjs +39 -12
  173. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  174. package/dist/admin/preview/routes.js +3 -2
  175. package/dist/admin/preview/routes.js.map +1 -1
  176. package/dist/admin/preview/utils/constants.js +9 -15
  177. package/dist/admin/preview/utils/constants.js.map +1 -1
  178. package/dist/admin/preview/utils/constants.mjs +10 -15
  179. package/dist/admin/preview/utils/constants.mjs.map +1 -1
  180. package/dist/admin/src/components/InjectionZone.d.ts +1 -2
  181. package/dist/admin/src/content-manager.d.ts +15 -15
  182. package/dist/admin/src/history/services/historyVersion.d.ts +2 -2
  183. package/dist/admin/src/hooks/useContentTypeSchema.d.ts +1 -1
  184. package/dist/admin/src/hooks/useDocument.d.ts +8 -9
  185. package/dist/admin/src/hooks/useDocumentLayout.d.ts +3 -3
  186. package/dist/admin/src/hooks/useDragAndDrop.d.ts +4 -4
  187. package/dist/admin/src/hooks/useKeyboardDragAndDrop.d.ts +1 -1
  188. package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +0 -1
  189. package/dist/admin/src/modules/app.d.ts +5 -5
  190. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +1 -1
  191. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +12 -1
  192. package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +1 -1
  193. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +1 -1
  194. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +2 -2
  195. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -2
  196. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +4 -4
  197. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
  198. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +19 -20
  199. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +12 -12
  200. package/dist/admin/src/pages/EditView/utils/draftRelationCounts.d.ts +26 -0
  201. package/dist/admin/src/pages/EditView/utils/keyboardShortcuts.d.ts +18 -0
  202. package/dist/admin/src/pages/ListView/components/BulkActions/PublishAction.d.ts +1 -1
  203. package/dist/admin/src/pages/ListView/components/Filters.d.ts +1 -1
  204. package/dist/admin/src/pages/formatComponentConfigurationEditLayout.d.ts +1 -1
  205. package/dist/admin/src/preview/utils/constants.d.ts +1 -7
  206. package/dist/admin/src/preview/utils/getSendMessage.d.ts +0 -1
  207. package/dist/admin/src/services/documents.d.ts +30 -70
  208. package/dist/admin/src/services/relations.d.ts +6 -20
  209. package/dist/admin/src/services/uid.d.ts +5 -5
  210. package/dist/admin/src/utils/layouts/normalizeContentManagerLayout.d.ts +4 -4
  211. package/dist/admin/src/utils/users.d.ts +1 -1
  212. package/dist/admin/src/utils/validation.d.ts +1 -1
  213. package/dist/admin/translations/cs.json.js +2 -1
  214. package/dist/admin/translations/cs.json.js.map +1 -1
  215. package/dist/admin/translations/cs.json.mjs +2 -1
  216. package/dist/admin/translations/cs.json.mjs.map +1 -1
  217. package/dist/admin/translations/de.json.js +2 -1
  218. package/dist/admin/translations/de.json.js.map +1 -1
  219. package/dist/admin/translations/de.json.mjs +2 -1
  220. package/dist/admin/translations/de.json.mjs.map +1 -1
  221. package/dist/admin/translations/en.json.js +7 -3
  222. package/dist/admin/translations/en.json.js.map +1 -1
  223. package/dist/admin/translations/en.json.mjs +7 -3
  224. package/dist/admin/translations/en.json.mjs.map +1 -1
  225. package/dist/admin/translations/es.json.js +2 -1
  226. package/dist/admin/translations/es.json.js.map +1 -1
  227. package/dist/admin/translations/es.json.mjs +2 -1
  228. package/dist/admin/translations/es.json.mjs.map +1 -1
  229. package/dist/admin/translations/fr.json.js +2 -1
  230. package/dist/admin/translations/fr.json.js.map +1 -1
  231. package/dist/admin/translations/fr.json.mjs +2 -1
  232. package/dist/admin/translations/fr.json.mjs.map +1 -1
  233. package/dist/admin/translations/ja.json.js +262 -87
  234. package/dist/admin/translations/ja.json.js.map +1 -1
  235. package/dist/admin/translations/ja.json.mjs +262 -87
  236. package/dist/admin/translations/ja.json.mjs.map +1 -1
  237. package/dist/admin/translations/nl.json.js +2 -1
  238. package/dist/admin/translations/nl.json.js.map +1 -1
  239. package/dist/admin/translations/nl.json.mjs +2 -1
  240. package/dist/admin/translations/nl.json.mjs.map +1 -1
  241. package/dist/admin/translations/pl.json.js +2 -1
  242. package/dist/admin/translations/pl.json.js.map +1 -1
  243. package/dist/admin/translations/pl.json.mjs +2 -1
  244. package/dist/admin/translations/pl.json.mjs.map +1 -1
  245. package/dist/admin/translations/sk.json.js +2 -1
  246. package/dist/admin/translations/sk.json.js.map +1 -1
  247. package/dist/admin/translations/sk.json.mjs +2 -1
  248. package/dist/admin/translations/sk.json.mjs.map +1 -1
  249. package/dist/admin/utils/objects.js +9 -4
  250. package/dist/admin/utils/objects.js.map +1 -1
  251. package/dist/admin/utils/validation.js +7 -3
  252. package/dist/admin/utils/validation.js.map +1 -1
  253. package/dist/server/controllers/collection-types.js +2 -2
  254. package/dist/server/controllers/collection-types.js.map +1 -1
  255. package/dist/server/controllers/collection-types.mjs +2 -2
  256. package/dist/server/controllers/collection-types.mjs.map +1 -1
  257. package/dist/server/controllers/single-types.js +2 -2
  258. package/dist/server/controllers/single-types.js.map +1 -1
  259. package/dist/server/controllers/single-types.mjs +2 -2
  260. package/dist/server/controllers/single-types.mjs.map +1 -1
  261. package/dist/server/controllers/utils/clone.js +5 -1
  262. package/dist/server/controllers/utils/clone.js.map +1 -1
  263. package/dist/server/controllers/utils/clone.mjs.map +1 -1
  264. package/dist/server/controllers/validation/index.js +6 -2
  265. package/dist/server/controllers/validation/index.js.map +1 -1
  266. package/dist/server/homepage/services/homepage.js +6 -1
  267. package/dist/server/homepage/services/homepage.js.map +1 -1
  268. package/dist/server/homepage/services/homepage.mjs +6 -1
  269. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  270. package/dist/server/mcp/handlers/collection-handlers.js +15 -18
  271. package/dist/server/mcp/handlers/collection-handlers.js.map +1 -1
  272. package/dist/server/mcp/handlers/collection-handlers.mjs +16 -19
  273. package/dist/server/mcp/handlers/collection-handlers.mjs.map +1 -1
  274. package/dist/server/mcp/handlers/single-type-handlers.js +12 -12
  275. package/dist/server/mcp/handlers/single-type-handlers.js.map +1 -1
  276. package/dist/server/mcp/handlers/single-type-handlers.mjs +13 -13
  277. package/dist/server/mcp/handlers/single-type-handlers.mjs.map +1 -1
  278. package/dist/server/mcp/register-content-manager-mcp-tools.js +4 -1
  279. package/dist/server/mcp/register-content-manager-mcp-tools.js.map +1 -1
  280. package/dist/server/mcp/register-content-manager-mcp-tools.mjs +4 -1
  281. package/dist/server/mcp/register-content-manager-mcp-tools.mjs.map +1 -1
  282. package/dist/server/mcp/sanitizers/shape-relations.js +108 -0
  283. package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -0
  284. package/dist/server/mcp/sanitizers/shape-relations.mjs +103 -0
  285. package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -0
  286. package/dist/server/mcp/schemas/data-schema.js +0 -3
  287. package/dist/server/mcp/schemas/data-schema.js.map +1 -1
  288. package/dist/server/mcp/schemas/data-schema.mjs +0 -3
  289. package/dist/server/mcp/schemas/data-schema.mjs.map +1 -1
  290. package/dist/server/mcp/schemas/output-schemas.js +30 -4
  291. package/dist/server/mcp/schemas/output-schemas.js.map +1 -1
  292. package/dist/server/mcp/schemas/output-schemas.mjs +30 -4
  293. package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -1
  294. package/dist/server/mcp/utils.js +30 -3
  295. package/dist/server/mcp/utils.js.map +1 -1
  296. package/dist/server/mcp/utils.mjs +30 -4
  297. package/dist/server/mcp/utils.mjs.map +1 -1
  298. package/dist/server/middlewares/routing.js +5 -1
  299. package/dist/server/middlewares/routing.js.map +1 -1
  300. package/dist/server/preview/controllers/preview.js +9 -0
  301. package/dist/server/preview/controllers/preview.js.map +1 -1
  302. package/dist/server/preview/controllers/preview.mjs +9 -0
  303. package/dist/server/preview/controllers/preview.mjs.map +1 -1
  304. package/dist/server/preview/controllers/previewScript.js +1450 -0
  305. package/dist/server/preview/routes/preview.js +11 -0
  306. package/dist/server/preview/routes/preview.js.map +1 -1
  307. package/dist/server/preview/routes/preview.mjs +11 -0
  308. package/dist/server/preview/routes/preview.mjs.map +1 -1
  309. package/dist/server/services/document-manager.js +13 -19
  310. package/dist/server/services/document-manager.js.map +1 -1
  311. package/dist/server/services/document-manager.mjs +13 -19
  312. package/dist/server/services/document-manager.mjs.map +1 -1
  313. package/dist/server/services/populate-builder.js.map +1 -1
  314. package/dist/server/services/populate-builder.mjs.map +1 -1
  315. package/dist/server/services/uid.js +9 -4
  316. package/dist/server/services/uid.js.map +1 -1
  317. package/dist/server/services/utils/configuration/attributes.js +14 -10
  318. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  319. package/dist/server/services/utils/configuration/layouts.js +8 -4
  320. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  321. package/dist/server/services/utils/configuration/metadatas.js +19 -15
  322. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  323. package/dist/server/services/utils/configuration/settings.js +5 -1
  324. package/dist/server/services/utils/configuration/settings.js.map +1 -1
  325. package/dist/server/services/utils/draft-relations.js +9 -0
  326. package/dist/server/services/utils/draft-relations.js.map +1 -0
  327. package/dist/server/services/utils/draft-relations.mjs +7 -0
  328. package/dist/server/services/utils/draft-relations.mjs.map +1 -0
  329. package/dist/server/services/utils/draft.js +123 -26
  330. package/dist/server/services/utils/draft.js.map +1 -1
  331. package/dist/server/services/utils/draft.mjs +118 -25
  332. package/dist/server/services/utils/draft.mjs.map +1 -1
  333. package/dist/server/services/utils/populate.js +23 -5
  334. package/dist/server/services/utils/populate.js.map +1 -1
  335. package/dist/server/services/utils/populate.mjs +15 -1
  336. package/dist/server/services/utils/populate.mjs.map +1 -1
  337. package/dist/server/services/utils/store.js +9 -5
  338. package/dist/server/services/utils/store.js.map +1 -1
  339. package/dist/server/src/controllers/index.d.ts +1 -1
  340. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  341. package/dist/server/src/controllers/utils/clone.d.ts +1 -1
  342. package/dist/server/src/controllers/utils/clone.d.ts.map +1 -1
  343. package/dist/server/src/controllers/utils/document-status.d.ts +1 -1
  344. package/dist/server/src/controllers/utils/document-status.d.ts.map +1 -1
  345. package/dist/server/src/controllers/utils/metadata.d.ts +5 -5
  346. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  347. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
  348. package/dist/server/src/controllers/validation/index.d.ts +3 -3
  349. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  350. package/dist/server/src/controllers/validation/model-configuration.d.ts.map +1 -1
  351. package/dist/server/src/controllers/validation/relations.d.ts +2 -2
  352. package/dist/server/src/history/controllers/history-version.d.ts +1 -7
  353. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  354. package/dist/server/src/history/controllers/index.d.ts +2 -1
  355. package/dist/server/src/history/controllers/index.d.ts.map +1 -1
  356. package/dist/server/src/history/controllers/validation/history-version.d.ts +1 -1
  357. package/dist/server/src/history/services/history.d.ts +0 -2
  358. package/dist/server/src/history/services/history.d.ts.map +1 -1
  359. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  360. package/dist/server/src/history/services/utils.d.ts +3 -3
  361. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  362. package/dist/server/src/history/utils.d.ts +1 -18
  363. package/dist/server/src/history/utils.d.ts.map +1 -1
  364. package/dist/server/src/homepage/controllers/homepage.d.ts +0 -1
  365. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  366. package/dist/server/src/homepage/controllers/index.d.ts +2 -1
  367. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -1
  368. package/dist/server/src/homepage/index.d.ts +4 -8
  369. package/dist/server/src/homepage/index.d.ts.map +1 -1
  370. package/dist/server/src/homepage/services/homepage-query-utils.d.ts.map +1 -1
  371. package/dist/server/src/homepage/services/homepage.d.ts +3 -4
  372. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  373. package/dist/server/src/homepage/services/index.d.ts +4 -8
  374. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  375. package/dist/server/src/index.d.ts +82 -86
  376. package/dist/server/src/index.d.ts.map +1 -1
  377. package/dist/server/src/mcp/derive-content-type-mcp-tools.d.ts.map +1 -1
  378. package/dist/server/src/mcp/handlers/collection-handlers.d.ts.map +1 -1
  379. package/dist/server/src/mcp/handlers/single-type-handlers.d.ts.map +1 -1
  380. package/dist/server/src/mcp/permissions.d.ts +1 -1
  381. package/dist/server/src/mcp/permissions.d.ts.map +1 -1
  382. package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts +2 -1
  383. package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts.map +1 -1
  384. package/dist/server/src/mcp/sanitizers/shape-relations.d.ts +38 -0
  385. package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -0
  386. package/dist/server/src/mcp/schemas/blocks-schema.d.ts.map +1 -1
  387. package/dist/server/src/mcp/schemas/data-schema.d.ts +0 -3
  388. package/dist/server/src/mcp/schemas/data-schema.d.ts.map +1 -1
  389. package/dist/server/src/mcp/schemas/filters-schema.d.ts.map +1 -1
  390. package/dist/server/src/mcp/schemas/output-schemas.d.ts +2 -2
  391. package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -1
  392. package/dist/server/src/mcp/schemas/sort-schema.d.ts.map +1 -1
  393. package/dist/server/src/mcp/types.d.ts +2 -2
  394. package/dist/server/src/mcp/types.d.ts.map +1 -1
  395. package/dist/server/src/mcp/utils.d.ts +19 -1
  396. package/dist/server/src/mcp/utils.d.ts.map +1 -1
  397. package/dist/server/src/middlewares/routing.d.ts.map +1 -1
  398. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  399. package/dist/server/src/policies/index.d.ts.map +1 -1
  400. package/dist/server/src/preview/controllers/index.d.ts +2 -1
  401. package/dist/server/src/preview/controllers/index.d.ts.map +1 -1
  402. package/dist/server/src/preview/controllers/preview.d.ts +5 -0
  403. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -1
  404. package/dist/server/src/preview/controllers/validation/preview.d.ts +1 -2
  405. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  406. package/dist/server/src/preview/routes/preview.d.ts.map +1 -1
  407. package/dist/server/src/preview/services/index.d.ts +1 -1
  408. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  409. package/dist/server/src/preview/services/preview-config.d.ts +1 -1
  410. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  411. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  412. package/dist/server/src/preview/utils.d.ts +1 -16
  413. package/dist/server/src/preview/utils.d.ts.map +1 -1
  414. package/dist/server/src/services/components.d.ts +2 -2
  415. package/dist/server/src/services/components.d.ts.map +1 -1
  416. package/dist/server/src/services/configuration.d.ts.map +1 -1
  417. package/dist/server/src/services/content-types.d.ts.map +1 -1
  418. package/dist/server/src/services/data-mapper.d.ts +5 -5
  419. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  420. package/dist/server/src/services/document-manager.d.ts +14 -14
  421. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  422. package/dist/server/src/services/document-metadata.d.ts +6 -6
  423. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  424. package/dist/server/src/services/field-sizes.d.ts +2 -2
  425. package/dist/server/src/services/field-sizes.d.ts.map +1 -1
  426. package/dist/server/src/services/index.d.ts +81 -85
  427. package/dist/server/src/services/index.d.ts.map +1 -1
  428. package/dist/server/src/services/metrics.d.ts.map +1 -1
  429. package/dist/server/src/services/permission-checker.d.ts +12 -31
  430. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  431. package/dist/server/src/services/permission.d.ts.map +1 -1
  432. package/dist/server/src/services/populate-builder.d.ts +7 -5
  433. package/dist/server/src/services/populate-builder.d.ts.map +1 -1
  434. package/dist/server/src/services/uid.d.ts.map +1 -1
  435. package/dist/server/src/services/utils/configuration/attributes.d.ts.map +1 -1
  436. package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -1
  437. package/dist/server/src/services/utils/count.d.ts.map +1 -1
  438. package/dist/server/src/services/utils/draft-relations.d.ts +19 -0
  439. package/dist/server/src/services/utils/draft-relations.d.ts.map +1 -0
  440. package/dist/server/src/services/utils/draft.d.ts +8 -7
  441. package/dist/server/src/services/utils/draft.d.ts.map +1 -1
  442. package/dist/server/src/services/utils/populate.d.ts +3 -1
  443. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  444. package/dist/server/src/services/utils/store.d.ts.map +1 -1
  445. package/dist/server/src/utils/index.d.ts.map +1 -1
  446. package/dist/server/src/validation/policies/hasPermissions.d.ts +1 -1
  447. package/dist/server/src/validation/zod.d.ts +1 -1
  448. package/dist/server/src/validation/zod.d.ts.map +1 -1
  449. package/dist/shared/contracts/collection-types.d.ts +4 -1
  450. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  451. package/dist/shared/contracts/single-types.d.ts +4 -1
  452. package/dist/shared/contracts/single-types.d.ts.map +1 -1
  453. package/package.json +10 -10
  454. package/dist/admin/preview/utils/previewScript.js +0 -1068
  455. package/dist/admin/preview/utils/previewScript.js.map +0 -1
  456. package/dist/admin/preview/utils/previewScript.mjs +0 -1066
  457. package/dist/admin/preview/utils/previewScript.mjs.map +0 -1
  458. package/dist/admin/src/preview/utils/previewScript.d.ts +0 -32
@@ -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 { 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(({ type: _bulkType, ...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","type","_bulkType","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","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(({ type: _bulkType, ...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","type","_bulkType","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","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,mBAAAA,GAAsB,IAAA;AAC1B,IAAA,MAAMC,UAAUC,wBAAAA,CAAa,qBAAA,EAAuB,CAACC,KAAAA,GAAUA,MAAMF,OAAO,CAAA;AAE5E,IAAA,MAAM,EAAEG,KAAK,EAAEC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;AAClC,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGC,mCAAAA,CAAkBJ,KAAAA,CAAAA;AACnC,IAAA,MAAM,EAAEK,YAAY,EAAE,GAAGC,oBAAAA,CAAS,qBAAA,EAAuB,CAACP,KAAAA,GAAUA,KAAAA,CAAAA;AAEpE,IAAA,qBACEQ,cAAA,CAACC,iBAAAA,EAAAA;QAAKC,GAAAA,EAAK,CAAA;AACT,QAAA,QAAA,gBAAAF,cAAA,CAACG,wCAAAA,EAAAA;YACCC,KAAAA,EAAO;AACLX,gBAAAA,KAAAA;AACAC,gBAAAA,cAAAA;gBACAW,SAAAA,EAAWP;AACb,aAAA;AACAQ,YAAAA,YAAAA,EAAc,OACL,CAAC,kBAAkB,CAACC,IAAI,CAC/BC,cAAc,EAAA;sBAEf,CAACC,OAAAA,GACAA,OAAAA,CAAQC,GAAG,CAAC,CAAC,EAAEC,IAAAA,EAAMC,SAAS,EAAE,GAAGC,MAAAA,EAAQ,GAAA;AACzC,oBAAA,OAAOjB,IAAAA,CAAKkB,QAAQ,CAACC,QAAQ,kBAAIf,cAAA,CAACgB,oCAAAA,EAAAA;AAAsC,wBAAA,GAAGH;AAAfA,qBAAAA,EAAAA,MAAAA,CAAOI,EAAE,CAAA;AACvE,gBAAA,CAAA;;;AAKV;AAEA;;AAEkG,qGAElG,MAAMC,YAAAA,GAAoC,CAAC,EAAEb,SAAS,EAAEZ,KAAK,EAAE,GAAA;IAC7D,MAAM,EAAE0B,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,MAAAA,EAAQC,WAAW,EAAE,GAAG3B,kBAAAA,EAAAA;AAChC,IAAA,MAAM4B,YAAYxB,oBAAAA,CAAS,cAAA,EAAgB,CAACP,KAAAA,GAAUA,MAAM+B,SAAS,CAAA;IACrE,MAAMC,cAAAA,GAAiBC,OAAAA,CAAQH,WAAAA,EAAaI,aAAAA,EAAeC,IAAAA,CAAAA;AAC3D,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,SAASC,gBAAAA,CAAMC,OAAO,CAAC,IAAMC,qBAAiBL,KAAAA,CAAAA,EAAQ;AAACA,QAAAA;AAAM,KAAA,CAAA;AACnE,IAAA,MAAMM,sBAAsBC,4BAAAA,CAAgB,cAAA,EAAgB,CAAC3C,KAAAA,GAAUA,MAAM4C,SAAS,CAAA;AACtF,IAAA,MAAM,EAAEC,UAAAA,EAAYC,gBAAgB,EAAEC,SAAS,EAAE,GAAGC,qCAAAA,EAAAA;IACpD,MAAMC,WAAAA,GAAcpC,UAAUK,GAAG,CAAC,CAAC,EAAEgC,UAAU,EAAE,GAAKA,UAAAA,CAAAA;AAEtD,IAAA,MAAMC,uBAAAA,GAA0B,UAAA;QAC9B,MAAMC,GAAAA,GAAM,MAAMN,gBAAAA,CAAiB;AACjCG,YAAAA,WAAAA;AACAhD,YAAAA,KAAAA;AACAqC,YAAAA;AACF,SAAA,CAAA;AACA,QAAA,IAAI,EAAE,OAAA,IAAWc,GAAE,CAAA,EAAI;AACrBrB,YAAAA,SAAAA,CAAU,EAAE,CAAA;AACd,QAAA;AACF,IAAA,CAAA;IAEA,IAAI,CAACW,qBAAqB,OAAO,IAAA;IAEjC,OAAO;QACLW,OAAAA,EAAS,cAAA;AACTC,QAAAA,KAAAA,EAAO3B,aAAAA,CAAc;YAAEF,EAAAA,EAAI,eAAA;YAAiB8B,cAAAA,EAAgB;AAAS,SAAA,CAAA;QACrEC,MAAAA,EAAQ;YACNrC,IAAAA,EAAM,QAAA;AACNsC,YAAAA,KAAAA,EAAO9B,aAAAA,CAAc;gBACnBF,EAAAA,EAAI,oCAAA;gBACJ8B,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAG,OAAAA,EAASX,SAAAA;AACTY,YAAAA,OAAAA,gBACEC,eAAA,CAACnD,iBAAAA,EAAAA;gBAAKoD,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUpD,GAAAA,EAAK,CAAA;;kCACjDF,cAAA,CAACC,iBAAAA,EAAAA;wBAAKsD,cAAAA,EAAe,QAAA;AACnB,wBAAA,QAAA,gBAAAvD,cAAA,CAACwD,mBAAAA,EAAAA;4BAAcC,KAAAA,EAAM,MAAA;4BAAOC,MAAAA,EAAO,MAAA;4BAAOC,IAAAA,EAAK;;;kCAEjD3D,cAAA,CAAC4D,uBAAAA,EAAAA;wBAAW3C,EAAAA,EAAG,qBAAA;wBAAsB4C,SAAAA,EAAU,QAAA;kCAC5C1C,aAAAA,CAAc;4BACbF,EAAAA,EAAI,iDAAA;4BACJ8B,cAAAA,EAAgB;AAClB,yBAAA;;AAEDvB,oBAAAA,cAAAA,kBACCxB,cAAA,CAAC8D,gBAAAA,EAAAA;wBAAID,SAAAA,EAAU,QAAA;wBAASE,OAAAA,EAAS,CAAA;AAC/B,wBAAA,QAAA,gBAAA/D,cAAA,CAAC4D,uBAAAA,EAAAA;4BAAWI,SAAAA,EAAU,WAAA;sCACnB7C,aAAAA,CACC;AACEF,gCAAAA,EAAAA,EAAIgD,2BAAAA,CAAe,6CAAA,CAAA;gCACnBlB,cAAAA,EACE;6BACJ,EACA;gCACEmB,EAAAA,EAAIC;AACN,6BAAA;;;;;YAOZC,SAAAA,EAAWzB;AACb;AACF,KAAA;AACF,CAAA;AAEAzB,YAAAA,CAAaP,IAAI,GAAG,QAAA;AAEpB,MAAM0D,kBAAuC,CAAC,EAAEhE,SAAS,EAAEZ,KAAK,EAAE,GAAA;IAChE,MAAM,EAAE0B,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAG1B,kBAAAA,EAAAA;AACnB,IAAA,MAAM4B,YAAYxB,oBAAAA,CAAS,iBAAA,EAAmB,CAACP,KAAAA,GAAUA,MAAM+B,SAAS,CAAA;AACxE,IAAA,MAAM+C,uBAAuBnC,4BAAAA,CAAgB,iBAAA,EAAmB,CAAC3C,KAAAA,GAAUA,MAAM+E,UAAU,CAAA;IAC3F,MAAMC,yBAAAA,GAA4B/C,OAAAA,CAAQJ,MAAAA,EAAQoD,OAAAA,EAASC,eAAAA,CAAAA;AAC3D,IAAA,MAAM,EAAEC,aAAAA,EAAeC,mBAAmB,EAAErC,SAAS,EAAE,GAAGC,qCAAAA,EAAAA;IAC1D,MAAMC,WAAAA,GAAcpC,UAAUK,GAAG,CAAC,CAAC,EAAEgC,UAAU,EAAE,GAAKA,UAAAA,CAAAA;AACtD,IAAA,MAAM,CAAC,EAAEd,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,SAASC,gBAAAA,CAAMC,OAAO,CAAC,IAAMC,qBAAiBL,KAAAA,CAAAA,EAAQ;AAACA,QAAAA;AAAM,KAAA,CAAA;AAEnE,IAAA,MAAMiD,0BAAAA,GAA6B,UAAA;QACjC,MAAMC,IAAAA,GAAO,MAAMF,mBAAAA,CAAoB;AAAEnC,YAAAA,WAAAA;AAAahD,YAAAA,KAAAA;AAAOqC,YAAAA;AAAO,SAAA,CAAA;AACpE,QAAA,IAAI,EAAE,OAAA,IAAWgD,IAAG,CAAA,EAAI;AACtBvD,YAAAA,SAAAA,CAAU,EAAE,CAAA;AACd,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMwD,mBAAAA,GACJP,yBAAAA,IACAF,oBAAAA,IACAjE,SAAAA,CAAU2E,IAAI,CAAC,CAACC,KAAAA,GAAUA,KAAAA,CAAMC,MAAM,KAAK,WAAA,IAAeD,KAAAA,CAAMC,MAAM,KAAK,UAAA,CAAA;IAE7E,IAAI,CAACH,qBAAqB,OAAO,IAAA;IAEjC,OAAO;QACLlC,OAAAA,EAAS,UAAA;AACTC,QAAAA,KAAAA,EAAO3B,aAAAA,CAAc;YAAEF,EAAAA,EAAI,qBAAA;YAAuB8B,cAAAA,EAAgB;AAAY,SAAA,CAAA;QAC9EC,MAAAA,EAAQ;YACNrC,IAAAA,EAAM,QAAA;AACNsC,YAAAA,KAAAA,EAAO9B,aAAAA,CAAc;gBACnBF,EAAAA,EAAI,oCAAA;gBACJ8B,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAG,OAAAA,EAASX,SAAAA;AACTY,YAAAA,OAAAA,gBACEC,eAAA,CAACnD,iBAAAA,EAAAA;gBAAKoD,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUpD,GAAAA,EAAK,CAAA;;kCACjDF,cAAA,CAACC,iBAAAA,EAAAA;wBAAKsD,cAAAA,EAAe,QAAA;AACnB,wBAAA,QAAA,gBAAAvD,cAAA,CAACwD,mBAAAA,EAAAA;4BAAcC,KAAAA,EAAM,MAAA;4BAAOC,MAAAA,EAAO,MAAA;4BAAOC,IAAAA,EAAK;;;kCAEjD3D,cAAA,CAAC4D,uBAAAA,EAAAA;wBAAW3C,EAAAA,EAAG,qBAAA;wBAAsB4C,SAAAA,EAAU,QAAA;kCAC5C1C,aAAAA,CAAc;4BACbF,EAAAA,EAAI,oDAAA;4BACJ8B,cAAAA,EAAgB;AAClB,yBAAA;;;;AAINoC,YAAAA,aAAAA,EAAehE,aAAAA,CAAc;gBAC3BF,EAAAA,EAAI,qBAAA;gBACJ8B,cAAAA,EAAgB;AAClB,aAAA,CAAA;YACAqB,SAAAA,EAAWS;AACb;AACF,KAAA;AACF,CAAA;AAEAR,eAAAA,CAAgB1D,IAAI,GAAG,WAAA;AAEvB,MAAMwD,QAAAA,GAAW,CAACiB,MAAAA,iBAChBpF,cAAA,CAAC4D,uBAAAA,EAAAA;QAAWyB,UAAAA,EAAW,UAAA;QAAWrB,SAAAA,EAAU,WAAA;AACzCoB,QAAAA,QAAAA,EAAAA;;AAIL,MAAME,oBAAAA,GAA8C;AAACC,IAAAA,2BAAAA;AAAelB,IAAAA,eAAAA;AAAiBnD,IAAAA;AAAa;;;;;;"}
@@ -10,7 +10,8 @@ var useDocument = require('../../../../hooks/useDocument.js');
10
10
  var documents = require('../../../../services/documents.js');
11
11
  var translations = require('../../../../utils/translations.js');
12
12
 
13
- function _interopNamespaceDefault(e) {
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
14
15
  var n = Object.create(null);
15
16
  if (e) {
16
17
  Object.keys(e).forEach(function (k) {
@@ -27,7 +28,7 @@ function _interopNamespaceDefault(e) {
27
28
  return Object.freeze(n);
28
29
  }
29
30
 
30
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
31
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
32
 
32
33
  const ConfirmBulkActionDialog = ({ onToggleDialog, isOpen = false, dialogBody, endAction })=>{
33
34
  const { formatMessage } = reactIntl.useIntl();
@@ -97,7 +98,7 @@ const ConfirmDialogPublishAll = ({ isOpen, onToggleDialog, isConfirmButtonLoadin
97
98
  documentIds: selectedEntries.map((entry)=>entry.documentId),
98
99
  locale: query?.plugins?.i18n?.locale
99
100
  }, {
100
- skip: true
101
+ skip: selectedEntries.length === 0
101
102
  });
102
103
  React__namespace.useEffect(()=>{
103
104
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmBulkActionDialog.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useTable,\n useNotification,\n useAPIErrorHandler,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Dialog, Typography } from '@strapi/design-system';\nimport { Check, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useGetManyDraftRelationCountQuery } from '../../../../services/documents';\nimport { getTranslation } from '../../../../utils/translations';\n\nimport { Emphasis } from './Actions';\n\ninterface ConfirmBulkActionDialogProps {\n endAction: React.ReactNode;\n onToggleDialog: () => void;\n isOpen?: boolean;\n dialogBody: React.ReactNode;\n}\n\nconst ConfirmBulkActionDialog = ({\n onToggleDialog,\n isOpen = false,\n dialogBody,\n endAction,\n}: ConfirmBulkActionDialogProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Dialog.Root open={isOpen}>\n <Dialog.Content>\n <Dialog.Header>\n {formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n })}\n </Dialog.Header>\n <Dialog.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n {dialogBody}\n </Flex>\n </Dialog.Body>\n <Dialog.Footer>\n <Dialog.Cancel>\n <Button width={'50%'} onClick={onToggleDialog} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Dialog.Cancel>\n {endAction}\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BoldChunk\n * -----------------------------------------------------------------------------------------------*/\n\nconst BoldChunk = (chunks: React.ReactNode) => <Typography fontWeight=\"bold\">{chunks}</Typography>;\n\n/* -------------------------------------------------------------------------------------------------\n * ConfirmDialogPublishAll\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConfirmDialogPublishAllProps\n extends Pick<ConfirmBulkActionDialogProps, 'isOpen' | 'onToggleDialog'> {\n isConfirmButtonLoading?: boolean;\n onConfirm: () => void;\n}\n\nconst ConfirmDialogPublishAll = ({\n isOpen,\n onToggleDialog,\n isConfirmButtonLoading = false,\n onConfirm,\n}: ConfirmDialogPublishAllProps) => {\n const { formatMessage } = useIntl();\n const selectedEntries = useTable('ConfirmDialogPublishAll', (state) => state.selectedRows);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const { model } = useDoc();\n const [{ query }] = useQueryParams<{\n plugins?: {\n i18n?: {\n locale?: string;\n };\n };\n }>();\n\n // TODO skipping this for now as there is a bug with the draft relation count that will be worked on separately\n // see RFC \"Count draft relations\" in Notion\n const enableDraftRelationsCount = false;\n\n const {\n data: countDraftRelations = 0,\n isLoading,\n error,\n } = useGetManyDraftRelationCountQuery(\n {\n model,\n documentIds: selectedEntries.map((entry) => entry.documentId),\n locale: query?.plugins?.i18n?.locale,\n },\n {\n skip: !enableDraftRelationsCount || selectedEntries.length === 0,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (error) {\n return null;\n }\n\n return (\n <ConfirmBulkActionDialog\n isOpen={isOpen && !isLoading}\n onToggleDialog={onToggleDialog}\n dialogBody={\n <>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {countDraftRelations > 0 &&\n formatMessage(\n {\n id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),\n defaultMessage:\n '<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. ',\n },\n {\n b: BoldChunk,\n count: countDraftRelations,\n entities: selectedEntries.length,\n }\n )}\n {formatMessage({\n id: getTranslation('popUpWarning.bodyMessage.contentType.publish.all'),\n defaultMessage: 'Are you sure you want to publish these entries?',\n })}\n </Typography>\n </>\n }\n endAction={\n <Button\n width={'50%'}\n onClick={onConfirm}\n variant=\"secondary\"\n startIcon={<Check />}\n loading={isConfirmButtonLoading}\n >\n {formatMessage({\n id: 'app.utils.publish',\n defaultMessage: 'Publish',\n })}\n </Button>\n }\n />\n );\n};\n\nexport { ConfirmDialogPublishAll, ConfirmBulkActionDialog };\nexport type { ConfirmDialogPublishAllProps, ConfirmBulkActionDialogProps };\n"],"names":["ConfirmBulkActionDialog","onToggleDialog","isOpen","dialogBody","endAction","formatMessage","useIntl","_jsx","Dialog","Root","open","_jsxs","Content","Header","id","defaultMessage","Body","Flex","direction","alignItems","gap","justifyContent","WarningCircle","width","height","fill","Footer","Cancel","Button","onClick","variant","BoldChunk","chunks","Typography","fontWeight","ConfirmDialogPublishAll","isConfirmButtonLoading","onConfirm","selectedEntries","useTable","state","selectedRows","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","model","useDoc","query","useQueryParams","data","countDraftRelations","isLoading","error","useGetManyDraftRelationCountQuery","documentIds","map","entry","documentId","locale","plugins","i18n","skip","React","useEffect","type","message","_Fragment","textAlign","b","count","entities","length","startIcon","Check","loading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAMA,uBAAAA,GAA0B,CAAC,EAC/BC,cAAc,EACdC,MAAAA,GAAS,KAAK,EACdC,UAAU,EACVC,SAAS,EACoB,GAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,qBACEC,cAAA,CAACC,oBAAOC,IAAI,EAAA;QAACC,IAAAA,EAAMR,MAAAA;gCACjBS,eAAA,CAACH,oBAAOI,OAAO,EAAA;;AACb,8BAAAL,cAAA,CAACC,oBAAOK,MAAM,EAAA;8BACXR,aAAAA,CAAc;wBACbS,EAAAA,EAAI,oCAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;AAEF,8BAAAR,cAAA,CAACC,oBAAOQ,IAAI,EAAA;AACV,oBAAA,QAAA,gBAAAL,eAAA,CAACM,iBAAAA,EAAAA;wBAAKC,SAAAA,EAAU,QAAA;wBAASC,UAAAA,EAAW,SAAA;wBAAUC,GAAAA,EAAK,CAAA;;0CACjDb,cAAA,CAACU,iBAAAA,EAAAA;gCAAKI,cAAAA,EAAe,QAAA;AACnB,gCAAA,QAAA,gBAAAd,cAAA,CAACe,mBAAAA,EAAAA;oCAAcC,KAAAA,EAAM,MAAA;oCAAOC,MAAAA,EAAO,MAAA;oCAAOC,IAAAA,EAAK;;;AAEhDtB,4BAAAA;;;;AAGL,8BAAAQ,eAAA,CAACH,oBAAOkB,MAAM,EAAA;;AACZ,sCAAAnB,cAAA,CAACC,oBAAOmB,MAAM,EAAA;AACZ,4BAAA,QAAA,gBAAApB,cAAA,CAACqB,mBAAAA,EAAAA;gCAAOL,KAAAA,EAAO,KAAA;gCAAOM,OAAAA,EAAS5B,cAAAA;gCAAgB6B,OAAAA,EAAQ,UAAA;0CACpDzB,aAAAA,CAAc;oCACbS,EAAAA,EAAI,8BAAA;oCACJC,cAAAA,EAAgB;AAClB,iCAAA;;;AAGHX,wBAAAA;;;;;;AAKX;AAEA;;AAEkG,qGAElG,MAAM2B,SAAAA,GAAY,CAACC,MAAAA,iBAA4BzB,cAAA,CAAC0B,uBAAAA,EAAAA;QAAWC,UAAAA,EAAW,MAAA;AAAQF,QAAAA,QAAAA,EAAAA;;AAY9E,MAAMG,uBAAAA,GAA0B,CAAC,EAC/BjC,MAAM,EACND,cAAc,EACdmC,sBAAAA,GAAyB,KAAK,EAC9BC,SAAS,EACoB,GAAA;IAC7B,MAAM,EAAEhC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMgC,kBAAkBC,oBAAAA,CAAS,yBAAA,EAA2B,CAACC,KAAAA,GAAUA,MAAMC,YAAY,CAAA;IACzF,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,8BAAAA,CAAmBC,2BAAAA,CAAAA;IACvE,MAAM,EAAEC,KAAK,EAAE,GAAGC,kBAAAA,EAAAA;AAClB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;IAYpB,MAAM,EACJC,IAAAA,EAAMC,mBAAAA,GAAsB,CAAC,EAC7BC,SAAS,EACTC,KAAK,EACN,GAAGC,2CAAAA,CACF;AACER,QAAAA,KAAAA;AACAS,QAAAA,WAAAA,EAAanB,gBAAgBoB,GAAG,CAAC,CAACC,KAAAA,GAAUA,MAAMC,UAAU,CAAA;QAC5DC,MAAAA,EAAQX,KAAAA,EAAOY,SAASC,IAAAA,EAAMF;KAChC,EACA;AACEG,QAAAA,IAAAA,EAAM;AACR,KAAA,CAAA;AAGFC,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIX,KAAAA,EAAO;YACTb,kBAAAA,CAAmB;gBAAEyB,IAAAA,EAAM,QAAA;AAAUC,gBAAAA,OAAAA,EAASvB,cAAAA,CAAeU,KAAAA;AAAO,aAAA,CAAA;AACtE,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA,KAAAA;AAAOV,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;AAE9C,IAAA,IAAIa,KAAAA,EAAO;QACT,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBACEhD,cAAA,CAACP,uBAAAA,EAAAA;AACCE,QAAAA,MAAAA,EAAQA,UAAU,CAACoD,SAAAA;QACnBrD,cAAAA,EAAgBA,cAAAA;QAChBE,UAAAA,gBACEI,cAAA,CAAA8D,mBAAA,EAAA;AACE,YAAA,QAAA,gBAAA1D,eAAA,CAACsB,uBAAAA,EAAAA;gBAAWnB,EAAAA,EAAG,qBAAA;gBAAsBwD,SAAAA,EAAU,QAAA;;AAC5CjB,oBAAAA,mBAAAA,GAAsB,KACrBhD,aAAAA,CACE;wBACES,EAAAA,EAAIiC,2BAAAA,CAAe,CAAC,qDAAqD,CAAC,CAAA;wBAC1EhC,cAAAA,EACE;qBACJ,EACA;wBACEwD,CAAAA,EAAGxC,SAAAA;wBACHyC,KAAAA,EAAOnB,mBAAAA;AACPoB,wBAAAA,QAAAA,EAAUnC,gBAAgBoC;AAC5B,qBAAA,CAAA;oBAEHrE,aAAAA,CAAc;AACbS,wBAAAA,EAAAA,EAAIiC,2BAAAA,CAAe,kDAAA,CAAA;wBACnBhC,cAAAA,EAAgB;AAClB,qBAAA;;;;AAINX,QAAAA,SAAAA,gBACEG,cAAA,CAACqB,mBAAAA,EAAAA;YACCL,KAAAA,EAAO,KAAA;YACPM,OAAAA,EAASQ,SAAAA;YACTP,OAAAA,EAAQ,WAAA;AACR6C,YAAAA,SAAAA,gBAAWpE,cAAA,CAACqE,WAAAA,EAAAA,EAAAA,CAAAA;YACZC,OAAAA,EAASzC,sBAAAA;sBAER/B,aAAAA,CAAc;gBACbS,EAAAA,EAAI,mBAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA;;;AAKV;;;;;"}
1
+ {"version":3,"file":"ConfirmBulkActionDialog.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useTable,\n useNotification,\n useAPIErrorHandler,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Dialog, Typography } from '@strapi/design-system';\nimport { Check, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useGetManyDraftRelationCountQuery } from '../../../../services/documents';\nimport { getTranslation } from '../../../../utils/translations';\n\nimport { Emphasis } from './Actions';\n\ninterface ConfirmBulkActionDialogProps {\n endAction: React.ReactNode;\n onToggleDialog: () => void;\n isOpen?: boolean;\n dialogBody: React.ReactNode;\n}\n\nconst ConfirmBulkActionDialog = ({\n onToggleDialog,\n isOpen = false,\n dialogBody,\n endAction,\n}: ConfirmBulkActionDialogProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Dialog.Root open={isOpen}>\n <Dialog.Content>\n <Dialog.Header>\n {formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n })}\n </Dialog.Header>\n <Dialog.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n {dialogBody}\n </Flex>\n </Dialog.Body>\n <Dialog.Footer>\n <Dialog.Cancel>\n <Button width={'50%'} onClick={onToggleDialog} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Dialog.Cancel>\n {endAction}\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BoldChunk\n * -----------------------------------------------------------------------------------------------*/\n\nconst BoldChunk = (chunks: React.ReactNode) => <Typography fontWeight=\"bold\">{chunks}</Typography>;\n\n/* -------------------------------------------------------------------------------------------------\n * ConfirmDialogPublishAll\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConfirmDialogPublishAllProps\n extends Pick<ConfirmBulkActionDialogProps, 'isOpen' | 'onToggleDialog'> {\n isConfirmButtonLoading?: boolean;\n onConfirm: () => void;\n}\n\nconst ConfirmDialogPublishAll = ({\n isOpen,\n onToggleDialog,\n isConfirmButtonLoading = false,\n onConfirm,\n}: ConfirmDialogPublishAllProps) => {\n const { formatMessage } = useIntl();\n const selectedEntries = useTable('ConfirmDialogPublishAll', (state) => state.selectedRows);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const { model } = useDoc();\n const [{ query }] = useQueryParams<{\n plugins?: {\n i18n?: {\n locale?: string;\n };\n };\n }>();\n\n const {\n data: countDraftRelations = 0,\n isLoading,\n error,\n } = useGetManyDraftRelationCountQuery(\n {\n model,\n documentIds: selectedEntries.map((entry) => entry.documentId),\n locale: query?.plugins?.i18n?.locale,\n },\n {\n skip: selectedEntries.length === 0,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (error) {\n return null;\n }\n\n return (\n <ConfirmBulkActionDialog\n isOpen={isOpen && !isLoading}\n onToggleDialog={onToggleDialog}\n dialogBody={\n <>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {countDraftRelations > 0 &&\n formatMessage(\n {\n id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),\n defaultMessage:\n '<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. ',\n },\n {\n b: BoldChunk,\n count: countDraftRelations,\n entities: selectedEntries.length,\n }\n )}\n {formatMessage({\n id: getTranslation('popUpWarning.bodyMessage.contentType.publish.all'),\n defaultMessage: 'Are you sure you want to publish these entries?',\n })}\n </Typography>\n </>\n }\n endAction={\n <Button\n width={'50%'}\n onClick={onConfirm}\n variant=\"secondary\"\n startIcon={<Check />}\n loading={isConfirmButtonLoading}\n >\n {formatMessage({\n id: 'app.utils.publish',\n defaultMessage: 'Publish',\n })}\n </Button>\n }\n />\n );\n};\n\nexport { ConfirmDialogPublishAll, ConfirmBulkActionDialog };\nexport type { ConfirmDialogPublishAllProps, ConfirmBulkActionDialogProps };\n"],"names":["ConfirmBulkActionDialog","onToggleDialog","isOpen","dialogBody","endAction","formatMessage","useIntl","_jsx","Dialog","Root","open","_jsxs","Content","Header","id","defaultMessage","Body","Flex","direction","alignItems","gap","justifyContent","WarningCircle","width","height","fill","Footer","Cancel","Button","onClick","variant","BoldChunk","chunks","Typography","fontWeight","ConfirmDialogPublishAll","isConfirmButtonLoading","onConfirm","selectedEntries","useTable","state","selectedRows","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","model","useDoc","query","useQueryParams","data","countDraftRelations","isLoading","error","useGetManyDraftRelationCountQuery","documentIds","map","entry","documentId","locale","plugins","i18n","skip","length","React","useEffect","type","message","_Fragment","textAlign","b","count","entities","startIcon","Check","loading"],"mappings":"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"}
@@ -76,7 +76,7 @@ const ConfirmDialogPublishAll = ({ isOpen, onToggleDialog, isConfirmButtonLoadin
76
76
  documentIds: selectedEntries.map((entry)=>entry.documentId),
77
77
  locale: query?.plugins?.i18n?.locale
78
78
  }, {
79
- skip: true
79
+ skip: selectedEntries.length === 0
80
80
  });
81
81
  React.useEffect(()=>{
82
82
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmBulkActionDialog.mjs","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useTable,\n useNotification,\n useAPIErrorHandler,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Dialog, Typography } from '@strapi/design-system';\nimport { Check, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useGetManyDraftRelationCountQuery } from '../../../../services/documents';\nimport { getTranslation } from '../../../../utils/translations';\n\nimport { Emphasis } from './Actions';\n\ninterface ConfirmBulkActionDialogProps {\n endAction: React.ReactNode;\n onToggleDialog: () => void;\n isOpen?: boolean;\n dialogBody: React.ReactNode;\n}\n\nconst ConfirmBulkActionDialog = ({\n onToggleDialog,\n isOpen = false,\n dialogBody,\n endAction,\n}: ConfirmBulkActionDialogProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Dialog.Root open={isOpen}>\n <Dialog.Content>\n <Dialog.Header>\n {formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n })}\n </Dialog.Header>\n <Dialog.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n {dialogBody}\n </Flex>\n </Dialog.Body>\n <Dialog.Footer>\n <Dialog.Cancel>\n <Button width={'50%'} onClick={onToggleDialog} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Dialog.Cancel>\n {endAction}\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BoldChunk\n * -----------------------------------------------------------------------------------------------*/\n\nconst BoldChunk = (chunks: React.ReactNode) => <Typography fontWeight=\"bold\">{chunks}</Typography>;\n\n/* -------------------------------------------------------------------------------------------------\n * ConfirmDialogPublishAll\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConfirmDialogPublishAllProps\n extends Pick<ConfirmBulkActionDialogProps, 'isOpen' | 'onToggleDialog'> {\n isConfirmButtonLoading?: boolean;\n onConfirm: () => void;\n}\n\nconst ConfirmDialogPublishAll = ({\n isOpen,\n onToggleDialog,\n isConfirmButtonLoading = false,\n onConfirm,\n}: ConfirmDialogPublishAllProps) => {\n const { formatMessage } = useIntl();\n const selectedEntries = useTable('ConfirmDialogPublishAll', (state) => state.selectedRows);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const { model } = useDoc();\n const [{ query }] = useQueryParams<{\n plugins?: {\n i18n?: {\n locale?: string;\n };\n };\n }>();\n\n // TODO skipping this for now as there is a bug with the draft relation count that will be worked on separately\n // see RFC \"Count draft relations\" in Notion\n const enableDraftRelationsCount = false;\n\n const {\n data: countDraftRelations = 0,\n isLoading,\n error,\n } = useGetManyDraftRelationCountQuery(\n {\n model,\n documentIds: selectedEntries.map((entry) => entry.documentId),\n locale: query?.plugins?.i18n?.locale,\n },\n {\n skip: !enableDraftRelationsCount || selectedEntries.length === 0,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (error) {\n return null;\n }\n\n return (\n <ConfirmBulkActionDialog\n isOpen={isOpen && !isLoading}\n onToggleDialog={onToggleDialog}\n dialogBody={\n <>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {countDraftRelations > 0 &&\n formatMessage(\n {\n id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),\n defaultMessage:\n '<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. ',\n },\n {\n b: BoldChunk,\n count: countDraftRelations,\n entities: selectedEntries.length,\n }\n )}\n {formatMessage({\n id: getTranslation('popUpWarning.bodyMessage.contentType.publish.all'),\n defaultMessage: 'Are you sure you want to publish these entries?',\n })}\n </Typography>\n </>\n }\n endAction={\n <Button\n width={'50%'}\n onClick={onConfirm}\n variant=\"secondary\"\n startIcon={<Check />}\n loading={isConfirmButtonLoading}\n >\n {formatMessage({\n id: 'app.utils.publish',\n defaultMessage: 'Publish',\n })}\n </Button>\n }\n />\n );\n};\n\nexport { ConfirmDialogPublishAll, ConfirmBulkActionDialog };\nexport type { ConfirmDialogPublishAllProps, ConfirmBulkActionDialogProps };\n"],"names":["ConfirmBulkActionDialog","onToggleDialog","isOpen","dialogBody","endAction","formatMessage","useIntl","_jsx","Dialog","Root","open","_jsxs","Content","Header","id","defaultMessage","Body","Flex","direction","alignItems","gap","justifyContent","WarningCircle","width","height","fill","Footer","Cancel","Button","onClick","variant","BoldChunk","chunks","Typography","fontWeight","ConfirmDialogPublishAll","isConfirmButtonLoading","onConfirm","selectedEntries","useTable","state","selectedRows","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","model","useDoc","query","useQueryParams","data","countDraftRelations","isLoading","error","useGetManyDraftRelationCountQuery","documentIds","map","entry","documentId","locale","plugins","i18n","skip","React","useEffect","type","message","_Fragment","textAlign","b","count","entities","length","startIcon","Check","loading"],"mappings":"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"}
1
+ {"version":3,"file":"ConfirmBulkActionDialog.mjs","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useTable,\n useNotification,\n useAPIErrorHandler,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Dialog, Typography } from '@strapi/design-system';\nimport { Check, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useGetManyDraftRelationCountQuery } from '../../../../services/documents';\nimport { getTranslation } from '../../../../utils/translations';\n\nimport { Emphasis } from './Actions';\n\ninterface ConfirmBulkActionDialogProps {\n endAction: React.ReactNode;\n onToggleDialog: () => void;\n isOpen?: boolean;\n dialogBody: React.ReactNode;\n}\n\nconst ConfirmBulkActionDialog = ({\n onToggleDialog,\n isOpen = false,\n dialogBody,\n endAction,\n}: ConfirmBulkActionDialogProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Dialog.Root open={isOpen}>\n <Dialog.Content>\n <Dialog.Header>\n {formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n })}\n </Dialog.Header>\n <Dialog.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex justifyContent=\"center\">\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n </Flex>\n {dialogBody}\n </Flex>\n </Dialog.Body>\n <Dialog.Footer>\n <Dialog.Cancel>\n <Button width={'50%'} onClick={onToggleDialog} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Dialog.Cancel>\n {endAction}\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BoldChunk\n * -----------------------------------------------------------------------------------------------*/\n\nconst BoldChunk = (chunks: React.ReactNode) => <Typography fontWeight=\"bold\">{chunks}</Typography>;\n\n/* -------------------------------------------------------------------------------------------------\n * ConfirmDialogPublishAll\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ConfirmDialogPublishAllProps\n extends Pick<ConfirmBulkActionDialogProps, 'isOpen' | 'onToggleDialog'> {\n isConfirmButtonLoading?: boolean;\n onConfirm: () => void;\n}\n\nconst ConfirmDialogPublishAll = ({\n isOpen,\n onToggleDialog,\n isConfirmButtonLoading = false,\n onConfirm,\n}: ConfirmDialogPublishAllProps) => {\n const { formatMessage } = useIntl();\n const selectedEntries = useTable('ConfirmDialogPublishAll', (state) => state.selectedRows);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const { model } = useDoc();\n const [{ query }] = useQueryParams<{\n plugins?: {\n i18n?: {\n locale?: string;\n };\n };\n }>();\n\n const {\n data: countDraftRelations = 0,\n isLoading,\n error,\n } = useGetManyDraftRelationCountQuery(\n {\n model,\n documentIds: selectedEntries.map((entry) => entry.documentId),\n locale: query?.plugins?.i18n?.locale,\n },\n {\n skip: selectedEntries.length === 0,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (error) {\n return null;\n }\n\n return (\n <ConfirmBulkActionDialog\n isOpen={isOpen && !isLoading}\n onToggleDialog={onToggleDialog}\n dialogBody={\n <>\n <Typography id=\"confirm-description\" textAlign=\"center\">\n {countDraftRelations > 0 &&\n formatMessage(\n {\n id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),\n defaultMessage:\n '<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. ',\n },\n {\n b: BoldChunk,\n count: countDraftRelations,\n entities: selectedEntries.length,\n }\n )}\n {formatMessage({\n id: getTranslation('popUpWarning.bodyMessage.contentType.publish.all'),\n defaultMessage: 'Are you sure you want to publish these entries?',\n })}\n </Typography>\n </>\n }\n endAction={\n <Button\n width={'50%'}\n onClick={onConfirm}\n variant=\"secondary\"\n startIcon={<Check />}\n loading={isConfirmButtonLoading}\n >\n {formatMessage({\n id: 'app.utils.publish',\n defaultMessage: 'Publish',\n })}\n </Button>\n }\n />\n );\n};\n\nexport { ConfirmDialogPublishAll, ConfirmBulkActionDialog };\nexport type { ConfirmDialogPublishAllProps, ConfirmBulkActionDialogProps };\n"],"names":["ConfirmBulkActionDialog","onToggleDialog","isOpen","dialogBody","endAction","formatMessage","useIntl","_jsx","Dialog","Root","open","_jsxs","Content","Header","id","defaultMessage","Body","Flex","direction","alignItems","gap","justifyContent","WarningCircle","width","height","fill","Footer","Cancel","Button","onClick","variant","BoldChunk","chunks","Typography","fontWeight","ConfirmDialogPublishAll","isConfirmButtonLoading","onConfirm","selectedEntries","useTable","state","selectedRows","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","model","useDoc","query","useQueryParams","data","countDraftRelations","isLoading","error","useGetManyDraftRelationCountQuery","documentIds","map","entry","documentId","locale","plugins","i18n","skip","length","React","useEffect","type","message","_Fragment","textAlign","b","count","entities","startIcon","Check","loading"],"mappings":"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"}
@@ -22,7 +22,8 @@ var DocumentStatus = require('../../../EditView/components/DocumentStatus.js');
22
22
  var data = require('../../../EditView/utils/data.js');
23
23
  var ConfirmBulkActionDialog = require('./ConfirmBulkActionDialog.js');
24
24
 
25
- function _interopNamespaceDefault(e) {
25
+ function _interopNamespace(e) {
26
+ if (e && e.__esModule) return e;
26
27
  var n = Object.create(null);
27
28
  if (e) {
28
29
  Object.keys(e).forEach(function (k) {
@@ -39,7 +40,7 @@ function _interopNamespaceDefault(e) {
39
40
  return Object.freeze(n);
40
41
  }
41
42
 
42
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
43
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
43
44
 
44
45
  const TypographyMaxWidth = styledComponents.styled(designSystem.Typography)`
45
46
  max-width: 300px;
@@ -1 +1 @@
1
- {"version":3,"file":"PublishAction.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/PublishAction.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n FormErrors,\n getYupValidationErrors,\n Table,\n useQueryParams,\n useTable,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Flex,\n IconButton,\n Loader,\n Modal,\n Tooltip,\n Typography,\n TypographyComponent,\n RawTable,\n Tr,\n Td,\n Tbody,\n} from '@strapi/design-system';\nimport { ArrowsCounterClockwise, CheckCircle, CrossCircle, Pencil } from '@strapi/icons';\nimport { useIntl, type IntlShape } from 'react-intl';\nimport { Link, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport { ValidationError } from 'yup';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useContentTypeSchema } from '../../../../hooks/useContentTypeSchema';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { useDocLayout } from '../../../../hooks/useDocumentLayout';\nimport { contentManagerApi } from '../../../../services/api';\nimport {\n useGetDocumentsForValidationQuery,\n usePublishManyDocumentsMutation,\n} from '../../../../services/documents';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport { createYupSchema } from '../../../../utils/validation';\nimport { DocumentStatus } from '../../../EditView/components/DocumentStatus';\nimport { transformDocument } from '../../../EditView/utils/data';\n\nimport { ConfirmDialogPublishAll, ConfirmDialogPublishAllProps } from './ConfirmBulkActionDialog';\n\nimport type { BulkActionComponent } from '../../../../content-manager';\nimport type { Document } from '../../../../hooks/useDocument';\n\nconst TypographyMaxWidth = styled<TypographyComponent>(Typography)`\n max-width: 300px;\n`;\n\nconst TableComponent = styled(RawTable)`\n width: 100%;\n table-layout: fixed;\n td:first-child {\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n td:first-of-type {\n padding: ${({ theme }) => theme.spaces[4]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EntryValidationText\n * -----------------------------------------------------------------------------------------------*/\n\nexport const formatErrorMessages = (\n errors: FormErrors,\n parentKey: string,\n formatMessage: IntlShape['formatMessage']\n) => {\n if (!errors) return [];\n\n const messages: string[] = [];\n\n Object.entries(errors).forEach(([key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n if (!value) return;\n const isErrorMessageDescriptor =\n typeof value === 'object' && 'id' in value && 'defaultMessage' in value;\n if (isErrorMessageDescriptor || typeof value === 'string') {\n const id = isErrorMessageDescriptor ? value.id : value;\n const defaultMessage = isErrorMessageDescriptor\n ? (value.defaultMessage as string)\n : (value as string);\n messages.push(\n formatMessage(\n {\n id: `${id}.withField`,\n defaultMessage,\n },\n { field: currentKey }\n )\n );\n } else {\n messages.push(\n ...formatErrorMessages(value as unknown as FormErrors, currentKey, formatMessage)\n );\n }\n });\n\n return messages;\n};\n\ninterface EntryValidationTextProps {\n validationErrors?: FormErrors;\n status: string;\n}\n\nconst EntryValidationText = ({ validationErrors, status }: EntryValidationTextProps) => {\n const { formatMessage } = useIntl();\n\n if (validationErrors) {\n const validationErrorsMessages = formatErrorMessages(validationErrors, '', formatMessage).join(\n ' '\n );\n\n return (\n <Flex gap={2}>\n <CrossCircle fill=\"danger600\" />\n <Tooltip label={validationErrorsMessages}>\n <TypographyMaxWidth textColor=\"danger600\" variant=\"omega\" fontWeight=\"bold\" ellipsis>\n {validationErrorsMessages}\n </TypographyMaxWidth>\n </Tooltip>\n </Flex>\n );\n }\n\n if (status === 'published') {\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'content-manager.bulk-publish.already-published',\n defaultMessage: 'Already Published',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (status === 'modified') {\n return (\n <Flex gap={2}>\n <ArrowsCounterClockwise fill=\"alternative600\" />\n <Typography textColor=\"alternative600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n </Typography>\n </Flex>\n );\n }\n\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesTableContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SelectedEntriesTableContentProps {\n isPublishing?: boolean;\n rowsToDisplay?: TableRow[];\n entriesToPublish?: TableRow['documentId'][];\n validationErrors: Record<string, EntryValidationTextProps['validationErrors']>;\n}\n\nconst TABLE_HEADERS = [\n { name: 'documentId', label: 'documentId' },\n { name: 'name', label: 'name' },\n { name: 'status', label: 'status' },\n { name: 'publicationStatus', label: 'Publication status' },\n];\n\nconst SelectedEntriesTableContent = ({\n isPublishing,\n rowsToDisplay = [],\n entriesToPublish = [],\n validationErrors = {},\n}: SelectedEntriesTableContentProps) => {\n const { pathname } = useLocation();\n const { formatMessage } = useIntl();\n\n const {\n list: {\n settings: { mainField },\n },\n } = useDocLayout();\n\n const shouldDisplayMainField =\n mainField != null && mainField !== 'id' && mainField !== 'documentId';\n\n return (\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {TABLE_HEADERS.filter((head) => head.name !== 'name' || shouldDisplayMainField).map(\n (head) => (\n <Table.HeaderCell key={head.name} {...head} />\n )\n )}\n </Table.Head>\n <Table.Loading />\n <Table.Body>\n {rowsToDisplay.map((row) => (\n <Table.Row key={row.id}>\n <Table.CheckboxCell id={row.id} />\n <Table.Cell>\n <Typography>{row.documentId}</Typography>\n </Table.Cell>\n {shouldDisplayMainField && (\n <Table.Cell>\n <Typography>{row[mainField as keyof TableRow]}</Typography>\n </Table.Cell>\n )}\n <Table.Cell>\n <DocumentStatus status={row.status} maxWidth={'min-content'} />\n </Table.Cell>\n <Table.Cell>\n {isPublishing && entriesToPublish.includes(row.documentId) ? (\n <Flex gap={2}>\n <Typography>\n {formatMessage({\n id: 'content-manager.success.record.publishing',\n defaultMessage: 'Publishing...',\n })}\n </Typography>\n <Loader small />\n </Flex>\n ) : (\n <EntryValidationText\n validationErrors={validationErrors[row.documentId]}\n status={row.status}\n />\n )}\n </Table.Cell>\n <Table.Cell>\n <Flex>\n <IconButton\n tag={Link}\n to={{\n pathname: `${pathname}/${row.documentId}`,\n search: row.locale && `?plugins[i18n][locale]=${row.locale}`,\n }}\n state={{ from: pathname }}\n label={formatMessage({\n id: 'content-manager.bulk-publish.edit',\n defaultMessage: 'Edit',\n })}\n target=\"_blank\"\n marginLeft=\"auto\"\n variant=\"ghost\"\n >\n <Pencil width={'1.6rem'} height={'1.6rem'} />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusSummary\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusSummaryProps {\n count: number;\n icon: React.ReactNode;\n message: string;\n textColor: string;\n}\n\nconst PublicationStatusSummary = ({\n count,\n icon,\n message,\n textColor,\n}: PublicationStatusSummaryProps) => {\n return (\n <Flex justifyContent=\"space-between\" flex={1} gap={3}>\n <Flex gap={2}>\n {icon}\n <Typography textColor={textColor} fontWeight=\"bold\">\n {message}\n </Typography>\n </Flex>\n <Typography fontWeight=\"bold\">{count}</Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusGrid\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusGridProps {\n entriesReadyToPublishCount: number;\n entriesModifiedCount: number;\n entriesPublishedCount: number;\n entriesWithErrorsCount: number;\n}\n\nconst PublicationStatusGrid = ({\n entriesReadyToPublishCount,\n entriesPublishedCount,\n entriesModifiedCount,\n entriesWithErrorsCount,\n}: PublicationStatusGridProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box hasRadius borderColor=\"neutral150\">\n <TableComponent colCount={2} rowCount={2}>\n <Tbody>\n <Tr>\n <Td>\n <PublicationStatusSummary\n textColor=\"success600\"\n count={entriesReadyToPublishCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n textColor=\"success600\"\n count={entriesPublishedCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.already-published',\n defaultMessage: 'Already published',\n })}\n />\n </Td>\n </Tr>\n <Tr>\n <Td>\n <PublicationStatusSummary\n textColor=\"alternative600\"\n count={entriesModifiedCount}\n icon={<ArrowsCounterClockwise fill=\"alternative600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n textColor=\"danger600\"\n count={entriesWithErrorsCount}\n icon={<CrossCircle fill=\"danger600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.waiting-for-action',\n defaultMessage: 'Waiting for action',\n })}\n />\n </Td>\n </Tr>\n </Tbody>\n </TableComponent>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesModalContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableRow extends Document {}\n\ninterface SelectedEntriesModalContentProps {\n listViewSelectedEntries: TableRow[];\n toggleModal: ConfirmDialogPublishAllProps['onToggleDialog'];\n setListViewSelectedDocuments: (documents: TableRow[]) => void;\n model: string;\n}\n\nconst SelectedEntriesModalContent = ({\n listViewSelectedEntries,\n toggleModal,\n setListViewSelectedDocuments,\n model,\n}: SelectedEntriesModalContentProps) => {\n const { formatMessage } = useIntl();\n const { schema, components } = useContentTypeSchema(model);\n const documentIds = listViewSelectedEntries.map(({ documentId }) => documentId);\n\n // We want to keep the selected entries order same as the list view\n const [{ query }] = useQueryParams<{ sort?: string; plugins?: Record<string, any> }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n // Fetch via findOne (same as edit view) so we get the exact same data structure.\n // The list API returns a different structure that causes false validation errors.\n const {\n data: documents = [],\n isLoading,\n isFetching,\n refetch,\n } = useGetDocumentsForValidationQuery(\n {\n model,\n documentIds,\n locale: query.plugins?.i18n?.locale,\n sort: query.sort,\n },\n { skip: documentIds.length === 0 }\n );\n\n // Transform and validate like the edit view - transformDocument prepares data\n // for validation (relations, temp keys, etc.)\n const { rows, validationErrors } = React.useMemo(() => {\n if (documents.length > 0 && schema) {\n const validate = createYupSchema(schema.attributes, components, { status: 'published' });\n const transform = transformDocument(schema, components);\n const validationErrors: Record<TableRow['documentId'], FormErrors> = {};\n // Re-order documents to match the list view selection order, and restore the\n // correct status (draft fetch returns 'draft' even for 'modified' documents)\n const documentsMap = new Map(documents.map((doc: Document) => [doc.documentId, doc]));\n const listViewStatusMap = new Map(\n listViewSelectedEntries.map(({ documentId, status }) => [documentId, status])\n );\n const orderedDocuments = documentIds\n .map((id) => {\n const doc = documentsMap.get(id);\n if (!doc) return undefined;\n return { ...doc, status: listViewStatusMap.get(id) ?? doc.status } as Document;\n })\n .filter((doc): doc is Document => doc !== undefined);\n const rows = orderedDocuments.map((entry: Document) => {\n const transformed = transform(entry);\n try {\n validate.validateSync(transformed, { abortEarly: false });\n return entry;\n } catch (e) {\n if (e instanceof ValidationError) {\n validationErrors[entry.documentId] = getYupValidationErrors(e);\n }\n return entry;\n }\n });\n return { rows, validationErrors };\n }\n return { rows: [], validationErrors: {} };\n }, [components, documents, documentIds, listViewSelectedEntries, schema]);\n\n const [isDialogOpen, setIsDialogOpen] = React.useState(false);\n\n const { publishMany: bulkPublishAction, isLoading: isPublishing } = useDocumentActions();\n const [, { isLoading: isSubmittingForm }] = usePublishManyDocumentsMutation();\n\n const selectedRows = useTable('publishAction', (state) => state.selectedRows);\n\n // Filter selected entries from the updated modal table rows\n const selectedEntries = rows.filter((entry) =>\n selectedRows.some((selectedEntry) => selectedEntry.documentId === entry.documentId)\n );\n\n const entriesToPublish = selectedEntries\n .filter((entry) => !validationErrors[entry.documentId])\n .map((entry) => entry.documentId);\n\n const selectedEntriesWithErrorsCount = selectedEntries.filter(\n ({ documentId }) => validationErrors[documentId]\n ).length;\n const selectedEntriesPublishedCount = selectedEntries.filter(\n ({ status }) => status === 'published'\n ).length;\n const selectedEntriesModifiedCount = selectedEntries.filter(\n ({ status, documentId }) => status === 'modified' && !validationErrors[documentId]\n ).length;\n const selectedEntriesWithNoErrorsCount =\n selectedEntries.length - selectedEntriesWithErrorsCount - selectedEntriesPublishedCount;\n\n const toggleDialog = () => setIsDialogOpen((prev) => !prev);\n\n const handleConfirmBulkPublish = async () => {\n toggleDialog();\n\n const res = await bulkPublishAction({ model: model, documentIds: entriesToPublish, params });\n if (!('error' in res)) {\n const unpublishedEntries = rows.filter((row) => {\n return !entriesToPublish.includes(row.documentId);\n });\n // Keep selection of the entries in list view that were not published\n setListViewSelectedDocuments(unpublishedEntries);\n }\n };\n\n return (\n <>\n <Modal.Body>\n <PublicationStatusGrid\n entriesReadyToPublishCount={\n selectedEntriesWithNoErrorsCount - selectedEntriesModifiedCount\n }\n entriesPublishedCount={selectedEntriesPublishedCount}\n entriesModifiedCount={selectedEntriesModifiedCount}\n entriesWithErrorsCount={selectedEntriesWithErrorsCount}\n />\n <Box marginTop={7}>\n <SelectedEntriesTableContent\n isPublishing={isSubmittingForm}\n rowsToDisplay={rows}\n entriesToPublish={entriesToPublish}\n validationErrors={validationErrors}\n />\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={toggleModal} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <Flex gap={2}>\n <Button onClick={refetch} variant=\"tertiary\" loading={isFetching}>\n {formatMessage({ id: 'app.utils.refresh', defaultMessage: 'Refresh' })}\n </Button>\n <Button\n onClick={toggleDialog}\n disabled={\n selectedEntries.length === 0 ||\n selectedEntries.length === selectedEntriesWithErrorsCount ||\n selectedEntriesPublishedCount === selectedEntries.length ||\n isLoading\n }\n loading={isPublishing || isSubmittingForm}\n >\n {formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n <ConfirmDialogPublishAll\n isOpen={isDialogOpen}\n onToggleDialog={toggleDialog}\n isConfirmButtonLoading={isPublishing || isSubmittingForm}\n onConfirm={handleConfirmBulkPublish}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublishAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst PublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n // Publish button visibility\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const showPublishButton =\n hasPublishPermission && documents.some(({ status }) => status !== 'published');\n\n const setListViewSelectedDocuments = useTable('publishAction', (state) => state.selectRow);\n\n const refetchList = () => {\n contentManagerApi.util.invalidateTags([{ type: 'Document', id: `${model}_LIST` }]);\n };\n\n if (!showPublishButton) return null;\n\n return {\n actionType: 'publish',\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' }),\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: getTranslation('containers.ListPage.selectedEntriesModal.title'),\n defaultMessage: 'Publish entries',\n }),\n content: ({ onClose }) => {\n return (\n <Table.Root rows={documents} defaultSelectedRows={documents} headers={TABLE_HEADERS}>\n <SelectedEntriesModalContent\n listViewSelectedEntries={documents}\n toggleModal={() => {\n onClose();\n refetchList();\n }}\n setListViewSelectedDocuments={setListViewSelectedDocuments}\n model={model}\n />\n </Table.Root>\n );\n },\n onClose: () => {\n refetchList();\n },\n },\n };\n};\n\nexport { PublishAction, SelectedEntriesModalContent };\n"],"names":["TypographyMaxWidth","styled","Typography","TableComponent","RawTable","theme","colors","neutral150","spaces","formatErrorMessages","errors","parentKey","formatMessage","messages","Object","entries","forEach","key","value","currentKey","isErrorMessageDescriptor","id","defaultMessage","push","field","EntryValidationText","validationErrors","status","useIntl","validationErrorsMessages","join","_jsxs","Flex","gap","_jsx","CrossCircle","fill","Tooltip","label","textColor","variant","fontWeight","ellipsis","CheckCircle","ArrowsCounterClockwise","TABLE_HEADERS","name","SelectedEntriesTableContent","isPublishing","rowsToDisplay","entriesToPublish","pathname","useLocation","list","settings","mainField","useDocLayout","shouldDisplayMainField","Table","Content","Head","HeaderCheckboxCell","filter","head","map","HeaderCell","Loading","Body","row","Row","CheckboxCell","Cell","documentId","DocumentStatus","maxWidth","includes","Loader","small","IconButton","tag","Link","to","search","locale","state","from","target","marginLeft","Pencil","width","height","PublicationStatusSummary","count","icon","message","justifyContent","flex","PublicationStatusGrid","entriesReadyToPublishCount","entriesPublishedCount","entriesModifiedCount","entriesWithErrorsCount","Box","hasRadius","borderColor","colCount","rowCount","Tbody","Tr","Td","SelectedEntriesModalContent","listViewSelectedEntries","toggleModal","setListViewSelectedDocuments","model","schema","components","useContentTypeSchema","documentIds","query","useQueryParams","params","React","useMemo","buildValidParams","data","documents","isLoading","isFetching","refetch","useGetDocumentsForValidationQuery","plugins","i18n","sort","skip","length","rows","validate","createYupSchema","attributes","transform","transformDocument","documentsMap","Map","doc","listViewStatusMap","orderedDocuments","get","undefined","entry","transformed","validateSync","abortEarly","e","ValidationError","getYupValidationErrors","isDialogOpen","setIsDialogOpen","useState","publishMany","bulkPublishAction","useDocumentActions","isSubmittingForm","usePublishManyDocumentsMutation","selectedRows","useTable","selectedEntries","some","selectedEntry","selectedEntriesWithErrorsCount","selectedEntriesPublishedCount","selectedEntriesModifiedCount","selectedEntriesWithNoErrorsCount","toggleDialog","prev","handleConfirmBulkPublish","res","unpublishedEntries","_Fragment","Modal","marginTop","Footer","Button","onClick","loading","disabled","ConfirmDialogPublishAll","isOpen","onToggleDialog","isConfirmButtonLoading","onConfirm","PublishAction","hasPublishPermission","useDocumentRBAC","canPublish","showPublishButton","selectRow","refetchList","contentManagerApi","util","invalidateTags","type","actionType","dialog","title","getTranslation","content","onClose","Root","defaultSelectedRows","headers"],"mappings":"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"}
1
+ {"version":3,"file":"PublishAction.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/PublishAction.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n FormErrors,\n getYupValidationErrors,\n Table,\n useQueryParams,\n useTable,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Flex,\n IconButton,\n Loader,\n Modal,\n Tooltip,\n Typography,\n TypographyComponent,\n RawTable,\n Tr,\n Td,\n Tbody,\n} from '@strapi/design-system';\nimport { ArrowsCounterClockwise, CheckCircle, CrossCircle, Pencil } from '@strapi/icons';\nimport { useIntl, type IntlShape } from 'react-intl';\nimport { Link, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport { ValidationError } from 'yup';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useContentTypeSchema } from '../../../../hooks/useContentTypeSchema';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { useDocLayout } from '../../../../hooks/useDocumentLayout';\nimport { contentManagerApi } from '../../../../services/api';\nimport {\n useGetDocumentsForValidationQuery,\n usePublishManyDocumentsMutation,\n} from '../../../../services/documents';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport { createYupSchema } from '../../../../utils/validation';\nimport { DocumentStatus } from '../../../EditView/components/DocumentStatus';\nimport { transformDocument } from '../../../EditView/utils/data';\n\nimport { ConfirmDialogPublishAll, ConfirmDialogPublishAllProps } from './ConfirmBulkActionDialog';\n\nimport type { BulkActionComponent } from '../../../../content-manager';\nimport type { Document } from '../../../../hooks/useDocument';\n\nconst TypographyMaxWidth = styled<TypographyComponent>(Typography)`\n max-width: 300px;\n`;\n\nconst TableComponent = styled(RawTable)`\n width: 100%;\n table-layout: fixed;\n td:first-child {\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n td:first-of-type {\n padding: ${({ theme }) => theme.spaces[4]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EntryValidationText\n * -----------------------------------------------------------------------------------------------*/\n\nexport const formatErrorMessages = (\n errors: FormErrors,\n parentKey: string,\n formatMessage: IntlShape['formatMessage']\n): string[] => {\n if (!errors) return [];\n\n const messages: string[] = [];\n\n Object.entries(errors).forEach(([key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n if (!value) return;\n const isErrorMessageDescriptor =\n typeof value === 'object' && 'id' in value && 'defaultMessage' in value;\n if (isErrorMessageDescriptor || typeof value === 'string') {\n const id = isErrorMessageDescriptor ? value.id : value;\n const defaultMessage = isErrorMessageDescriptor\n ? (value.defaultMessage as string)\n : (value as string);\n messages.push(\n formatMessage(\n {\n id: `${id}.withField`,\n defaultMessage,\n },\n { field: currentKey }\n )\n );\n } else {\n messages.push(\n ...formatErrorMessages(value as unknown as FormErrors, currentKey, formatMessage)\n );\n }\n });\n\n return messages;\n};\n\ninterface EntryValidationTextProps {\n validationErrors?: FormErrors;\n status: string;\n}\n\nconst EntryValidationText = ({ validationErrors, status }: EntryValidationTextProps) => {\n const { formatMessage } = useIntl();\n\n if (validationErrors) {\n const validationErrorsMessages = formatErrorMessages(validationErrors, '', formatMessage).join(\n ' '\n );\n\n return (\n <Flex gap={2}>\n <CrossCircle fill=\"danger600\" />\n <Tooltip label={validationErrorsMessages}>\n <TypographyMaxWidth textColor=\"danger600\" variant=\"omega\" fontWeight=\"bold\" ellipsis>\n {validationErrorsMessages}\n </TypographyMaxWidth>\n </Tooltip>\n </Flex>\n );\n }\n\n if (status === 'published') {\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'content-manager.bulk-publish.already-published',\n defaultMessage: 'Already Published',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (status === 'modified') {\n return (\n <Flex gap={2}>\n <ArrowsCounterClockwise fill=\"alternative600\" />\n <Typography textColor=\"alternative600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n </Typography>\n </Flex>\n );\n }\n\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesTableContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SelectedEntriesTableContentProps {\n isPublishing?: boolean;\n rowsToDisplay?: TableRow[];\n entriesToPublish?: TableRow['documentId'][];\n validationErrors: Record<string, EntryValidationTextProps['validationErrors']>;\n}\n\nconst TABLE_HEADERS = [\n { name: 'documentId', label: 'documentId' },\n { name: 'name', label: 'name' },\n { name: 'status', label: 'status' },\n { name: 'publicationStatus', label: 'Publication status' },\n];\n\nconst SelectedEntriesTableContent = ({\n isPublishing,\n rowsToDisplay = [],\n entriesToPublish = [],\n validationErrors = {},\n}: SelectedEntriesTableContentProps) => {\n const { pathname } = useLocation();\n const { formatMessage } = useIntl();\n\n const {\n list: {\n settings: { mainField },\n },\n } = useDocLayout();\n\n const shouldDisplayMainField =\n mainField != null && mainField !== 'id' && mainField !== 'documentId';\n\n return (\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {TABLE_HEADERS.filter((head) => head.name !== 'name' || shouldDisplayMainField).map(\n (head) => (\n <Table.HeaderCell key={head.name} {...head} />\n )\n )}\n </Table.Head>\n <Table.Loading />\n <Table.Body>\n {rowsToDisplay.map((row) => (\n <Table.Row key={row.id}>\n <Table.CheckboxCell id={row.id} />\n <Table.Cell>\n <Typography>{row.documentId}</Typography>\n </Table.Cell>\n {shouldDisplayMainField && (\n <Table.Cell>\n <Typography>{row[mainField as keyof TableRow]}</Typography>\n </Table.Cell>\n )}\n <Table.Cell>\n <DocumentStatus status={row.status} maxWidth={'min-content'} />\n </Table.Cell>\n <Table.Cell>\n {isPublishing && entriesToPublish.includes(row.documentId) ? (\n <Flex gap={2}>\n <Typography>\n {formatMessage({\n id: 'content-manager.success.record.publishing',\n defaultMessage: 'Publishing...',\n })}\n </Typography>\n <Loader small />\n </Flex>\n ) : (\n <EntryValidationText\n validationErrors={validationErrors[row.documentId]}\n status={row.status}\n />\n )}\n </Table.Cell>\n <Table.Cell>\n <Flex>\n <IconButton\n tag={Link}\n to={{\n pathname: `${pathname}/${row.documentId}`,\n search: row.locale && `?plugins[i18n][locale]=${row.locale}`,\n }}\n state={{ from: pathname }}\n label={formatMessage({\n id: 'content-manager.bulk-publish.edit',\n defaultMessage: 'Edit',\n })}\n target=\"_blank\"\n marginLeft=\"auto\"\n variant=\"ghost\"\n >\n <Pencil width={'1.6rem'} height={'1.6rem'} />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusSummary\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusSummaryProps {\n count: number;\n icon: React.ReactNode;\n message: string;\n textColor: string;\n}\n\nconst PublicationStatusSummary = ({\n count,\n icon,\n message,\n textColor,\n}: PublicationStatusSummaryProps) => {\n return (\n <Flex justifyContent=\"space-between\" flex={1} gap={3}>\n <Flex gap={2}>\n {icon}\n <Typography textColor={textColor} fontWeight=\"bold\">\n {message}\n </Typography>\n </Flex>\n <Typography fontWeight=\"bold\">{count}</Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusGrid\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusGridProps {\n entriesReadyToPublishCount: number;\n entriesModifiedCount: number;\n entriesPublishedCount: number;\n entriesWithErrorsCount: number;\n}\n\nconst PublicationStatusGrid = ({\n entriesReadyToPublishCount,\n entriesPublishedCount,\n entriesModifiedCount,\n entriesWithErrorsCount,\n}: PublicationStatusGridProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box hasRadius borderColor=\"neutral150\">\n <TableComponent colCount={2} rowCount={2}>\n <Tbody>\n <Tr>\n <Td>\n <PublicationStatusSummary\n textColor=\"success600\"\n count={entriesReadyToPublishCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n textColor=\"success600\"\n count={entriesPublishedCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.already-published',\n defaultMessage: 'Already published',\n })}\n />\n </Td>\n </Tr>\n <Tr>\n <Td>\n <PublicationStatusSummary\n textColor=\"alternative600\"\n count={entriesModifiedCount}\n icon={<ArrowsCounterClockwise fill=\"alternative600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n textColor=\"danger600\"\n count={entriesWithErrorsCount}\n icon={<CrossCircle fill=\"danger600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.waiting-for-action',\n defaultMessage: 'Waiting for action',\n })}\n />\n </Td>\n </Tr>\n </Tbody>\n </TableComponent>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesModalContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableRow extends Document {}\n\ninterface SelectedEntriesModalContentProps {\n listViewSelectedEntries: TableRow[];\n toggleModal: ConfirmDialogPublishAllProps['onToggleDialog'];\n setListViewSelectedDocuments: (documents: TableRow[]) => void;\n model: string;\n}\n\nconst SelectedEntriesModalContent = ({\n listViewSelectedEntries,\n toggleModal,\n setListViewSelectedDocuments,\n model,\n}: SelectedEntriesModalContentProps) => {\n const { formatMessage } = useIntl();\n const { schema, components } = useContentTypeSchema(model);\n const documentIds = listViewSelectedEntries.map(({ documentId }) => documentId);\n\n // We want to keep the selected entries order same as the list view\n const [{ query }] = useQueryParams<{ sort?: string; plugins?: Record<string, any> }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n // Fetch via findOne (same as edit view) so we get the exact same data structure.\n // The list API returns a different structure that causes false validation errors.\n const {\n data: documents = [],\n isLoading,\n isFetching,\n refetch,\n } = useGetDocumentsForValidationQuery(\n {\n model,\n documentIds,\n locale: query.plugins?.i18n?.locale,\n sort: query.sort,\n },\n { skip: documentIds.length === 0 }\n );\n\n // Transform and validate like the edit view - transformDocument prepares data\n // for validation (relations, temp keys, etc.)\n const { rows, validationErrors } = React.useMemo(() => {\n if (documents.length > 0 && schema) {\n const validate = createYupSchema(schema.attributes, components, { status: 'published' });\n const transform = transformDocument(schema, components);\n const validationErrors: Record<TableRow['documentId'], FormErrors> = {};\n // Re-order documents to match the list view selection order, and restore the\n // correct status (draft fetch returns 'draft' even for 'modified' documents)\n const documentsMap = new Map(documents.map((doc: Document) => [doc.documentId, doc]));\n const listViewStatusMap = new Map(\n listViewSelectedEntries.map(({ documentId, status }) => [documentId, status])\n );\n const orderedDocuments = documentIds\n .map((id) => {\n const doc = documentsMap.get(id);\n if (!doc) return undefined;\n return { ...doc, status: listViewStatusMap.get(id) ?? doc.status } as Document;\n })\n .filter((doc): doc is Document => doc !== undefined);\n const rows = orderedDocuments.map((entry: Document) => {\n const transformed = transform(entry);\n try {\n validate.validateSync(transformed, { abortEarly: false });\n return entry;\n } catch (e) {\n if (e instanceof ValidationError) {\n validationErrors[entry.documentId] = getYupValidationErrors(e);\n }\n return entry;\n }\n });\n return { rows, validationErrors };\n }\n return { rows: [], validationErrors: {} };\n }, [components, documents, documentIds, listViewSelectedEntries, schema]);\n\n const [isDialogOpen, setIsDialogOpen] = React.useState(false);\n\n const { publishMany: bulkPublishAction, isLoading: isPublishing } = useDocumentActions();\n const [, { isLoading: isSubmittingForm }] = usePublishManyDocumentsMutation();\n\n const selectedRows = useTable('publishAction', (state) => state.selectedRows);\n\n // Filter selected entries from the updated modal table rows\n const selectedEntries = rows.filter((entry) =>\n selectedRows.some((selectedEntry) => selectedEntry.documentId === entry.documentId)\n );\n\n const entriesToPublish = selectedEntries\n .filter((entry) => !validationErrors[entry.documentId])\n .map((entry) => entry.documentId);\n\n const selectedEntriesWithErrorsCount = selectedEntries.filter(\n ({ documentId }) => validationErrors[documentId]\n ).length;\n const selectedEntriesPublishedCount = selectedEntries.filter(\n ({ status }) => status === 'published'\n ).length;\n const selectedEntriesModifiedCount = selectedEntries.filter(\n ({ status, documentId }) => status === 'modified' && !validationErrors[documentId]\n ).length;\n const selectedEntriesWithNoErrorsCount =\n selectedEntries.length - selectedEntriesWithErrorsCount - selectedEntriesPublishedCount;\n\n const toggleDialog = () => setIsDialogOpen((prev) => !prev);\n\n const handleConfirmBulkPublish = async () => {\n toggleDialog();\n\n const res = await bulkPublishAction({ model: model, documentIds: entriesToPublish, params });\n if (!('error' in res)) {\n const unpublishedEntries = rows.filter((row) => {\n return !entriesToPublish.includes(row.documentId);\n });\n // Keep selection of the entries in list view that were not published\n setListViewSelectedDocuments(unpublishedEntries);\n }\n };\n\n return (\n <>\n <Modal.Body>\n <PublicationStatusGrid\n entriesReadyToPublishCount={\n selectedEntriesWithNoErrorsCount - selectedEntriesModifiedCount\n }\n entriesPublishedCount={selectedEntriesPublishedCount}\n entriesModifiedCount={selectedEntriesModifiedCount}\n entriesWithErrorsCount={selectedEntriesWithErrorsCount}\n />\n <Box marginTop={7}>\n <SelectedEntriesTableContent\n isPublishing={isSubmittingForm}\n rowsToDisplay={rows}\n entriesToPublish={entriesToPublish}\n validationErrors={validationErrors}\n />\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={toggleModal} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <Flex gap={2}>\n <Button onClick={refetch} variant=\"tertiary\" loading={isFetching}>\n {formatMessage({ id: 'app.utils.refresh', defaultMessage: 'Refresh' })}\n </Button>\n <Button\n onClick={toggleDialog}\n disabled={\n selectedEntries.length === 0 ||\n selectedEntries.length === selectedEntriesWithErrorsCount ||\n selectedEntriesPublishedCount === selectedEntries.length ||\n isLoading\n }\n loading={isPublishing || isSubmittingForm}\n >\n {formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n <ConfirmDialogPublishAll\n isOpen={isDialogOpen}\n onToggleDialog={toggleDialog}\n isConfirmButtonLoading={isPublishing || isSubmittingForm}\n onConfirm={handleConfirmBulkPublish}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublishAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst PublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n // Publish button visibility\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const showPublishButton =\n hasPublishPermission && documents.some(({ status }) => status !== 'published');\n\n const setListViewSelectedDocuments = useTable('publishAction', (state) => state.selectRow);\n\n const refetchList = () => {\n contentManagerApi.util.invalidateTags([{ type: 'Document', id: `${model}_LIST` }]);\n };\n\n if (!showPublishButton) return null;\n\n return {\n actionType: 'publish',\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' }),\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: getTranslation('containers.ListPage.selectedEntriesModal.title'),\n defaultMessage: 'Publish entries',\n }),\n content: ({ onClose }) => {\n return (\n <Table.Root rows={documents} defaultSelectedRows={documents} headers={TABLE_HEADERS}>\n <SelectedEntriesModalContent\n listViewSelectedEntries={documents}\n toggleModal={() => {\n onClose();\n refetchList();\n }}\n setListViewSelectedDocuments={setListViewSelectedDocuments}\n model={model}\n />\n </Table.Root>\n );\n },\n onClose: () => {\n refetchList();\n },\n },\n };\n};\n\nexport { PublishAction, SelectedEntriesModalContent };\n"],"names":["TypographyMaxWidth","styled","Typography","TableComponent","RawTable","theme","colors","neutral150","spaces","formatErrorMessages","errors","parentKey","formatMessage","messages","Object","entries","forEach","key","value","currentKey","isErrorMessageDescriptor","id","defaultMessage","push","field","EntryValidationText","validationErrors","status","useIntl","validationErrorsMessages","join","_jsxs","Flex","gap","_jsx","CrossCircle","fill","Tooltip","label","textColor","variant","fontWeight","ellipsis","CheckCircle","ArrowsCounterClockwise","TABLE_HEADERS","name","SelectedEntriesTableContent","isPublishing","rowsToDisplay","entriesToPublish","pathname","useLocation","list","settings","mainField","useDocLayout","shouldDisplayMainField","Table","Content","Head","HeaderCheckboxCell","filter","head","map","HeaderCell","Loading","Body","row","Row","CheckboxCell","Cell","documentId","DocumentStatus","maxWidth","includes","Loader","small","IconButton","tag","Link","to","search","locale","state","from","target","marginLeft","Pencil","width","height","PublicationStatusSummary","count","icon","message","justifyContent","flex","PublicationStatusGrid","entriesReadyToPublishCount","entriesPublishedCount","entriesModifiedCount","entriesWithErrorsCount","Box","hasRadius","borderColor","colCount","rowCount","Tbody","Tr","Td","SelectedEntriesModalContent","listViewSelectedEntries","toggleModal","setListViewSelectedDocuments","model","schema","components","useContentTypeSchema","documentIds","query","useQueryParams","params","React","useMemo","buildValidParams","data","documents","isLoading","isFetching","refetch","useGetDocumentsForValidationQuery","plugins","i18n","sort","skip","length","rows","validate","createYupSchema","attributes","transform","transformDocument","documentsMap","Map","doc","listViewStatusMap","orderedDocuments","get","undefined","entry","transformed","validateSync","abortEarly","e","ValidationError","getYupValidationErrors","isDialogOpen","setIsDialogOpen","useState","publishMany","bulkPublishAction","useDocumentActions","isSubmittingForm","usePublishManyDocumentsMutation","selectedRows","useTable","selectedEntries","some","selectedEntry","selectedEntriesWithErrorsCount","selectedEntriesPublishedCount","selectedEntriesModifiedCount","selectedEntriesWithNoErrorsCount","toggleDialog","prev","handleConfirmBulkPublish","res","unpublishedEntries","_Fragment","Modal","marginTop","Footer","Button","onClick","loading","disabled","ConfirmDialogPublishAll","isOpen","onToggleDialog","isConfirmButtonLoading","onConfirm","PublishAction","hasPublishPermission","useDocumentRBAC","canPublish","showPublishButton","selectRow","refetchList","contentManagerApi","util","invalidateTags","type","actionType","dialog","title","getTranslation","content","onClose","Root","defaultSelectedRows","headers"],"mappings":"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"}