@strapi/content-manager 5.59.0 → 5.61.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 (300) hide show
  1. package/dist/admin/constants/customOrder.js +14 -0
  2. package/dist/admin/constants/customOrder.js.map +1 -0
  3. package/dist/admin/constants/customOrder.mjs +10 -0
  4. package/dist/admin/constants/customOrder.mjs.map +1 -0
  5. package/dist/admin/history/components/VersionInputRenderer.js +2 -1
  6. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  7. package/dist/admin/history/components/VersionInputRenderer.mjs +2 -1
  8. package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
  9. package/dist/admin/hooks/useDocument.js +22 -11
  10. package/dist/admin/hooks/useDocument.js.map +1 -1
  11. package/dist/admin/hooks/useDocument.mjs +22 -11
  12. package/dist/admin/hooks/useDocument.mjs.map +1 -1
  13. package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
  14. package/dist/admin/hooks/useDocumentLayout.mjs.map +1 -1
  15. package/dist/admin/hooks/useHasBeenNearViewport.js +70 -0
  16. package/dist/admin/hooks/useHasBeenNearViewport.js.map +1 -0
  17. package/dist/admin/hooks/useHasBeenNearViewport.mjs +46 -0
  18. package/dist/admin/hooks/useHasBeenNearViewport.mjs.map +1 -0
  19. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +102 -32
  20. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
  21. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs +104 -35
  22. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js +20 -17
  24. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs +20 -17
  26. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +15 -1
  28. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +17 -3
  30. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js +21 -0
  32. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs +22 -1
  34. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +1 -0
  36. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +1 -0
  38. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +1 -0
  40. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +1 -0
  42. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +2 -0
  44. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +2 -0
  46. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +4 -7
  48. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +4 -7
  50. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +46 -10
  52. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +47 -11
  54. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormLayout.js +201 -50
  56. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormLayout.mjs +202 -52
  58. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -1
  60. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -1
  62. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  63. package/dist/admin/pages/ListConfiguration/components/Settings.js +31 -2
  64. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  65. package/dist/admin/pages/ListConfiguration/components/Settings.mjs +31 -2
  66. package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -1
  67. package/dist/admin/pages/ListView/ListViewPage.js +196 -132
  68. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  69. package/dist/admin/pages/ListView/ListViewPage.mjs +196 -132
  70. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  71. package/dist/admin/pages/ListView/components/CustomOrder.js +571 -0
  72. package/dist/admin/pages/ListView/components/CustomOrder.js.map +1 -0
  73. package/dist/admin/pages/ListView/components/CustomOrder.mjs +546 -0
  74. package/dist/admin/pages/ListView/components/CustomOrder.mjs.map +1 -0
  75. package/dist/admin/pages/ListView/components/TableActions.js +4 -1
  76. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  77. package/dist/admin/pages/ListView/components/TableActions.mjs +4 -1
  78. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  79. package/dist/admin/preview/components/PreviewSidePanel.js +2 -1
  80. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  81. package/dist/admin/preview/components/PreviewSidePanel.mjs +2 -1
  82. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  83. package/dist/admin/preview/utils/getPreviewUrlStatus.js +17 -0
  84. package/dist/admin/preview/utils/getPreviewUrlStatus.js.map +1 -0
  85. package/dist/admin/preview/utils/getPreviewUrlStatus.mjs +15 -0
  86. package/dist/admin/preview/utils/getPreviewUrlStatus.mjs.map +1 -0
  87. package/dist/admin/services/documents.js +22 -1
  88. package/dist/admin/services/documents.js.map +1 -1
  89. package/dist/admin/services/documents.mjs +21 -2
  90. package/dist/admin/services/documents.mjs.map +1 -1
  91. package/dist/admin/src/constants/customOrder.d.ts +8 -0
  92. package/dist/admin/src/exports.d.ts +1 -1
  93. package/dist/admin/src/history/components/VersionInputRenderer.d.ts +3 -1
  94. package/dist/admin/src/hooks/useDocument.d.ts +4 -0
  95. package/dist/admin/src/hooks/useDocumentLayout.d.ts +6 -2
  96. package/dist/admin/src/hooks/useHasBeenNearViewport.d.ts +13 -0
  97. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.d.ts +13 -1
  98. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +11 -1
  99. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -0
  100. package/dist/admin/src/pages/ListView/components/CustomOrder.d.ts +72 -0
  101. package/dist/admin/src/preview/utils/getPreviewUrlStatus.d.ts +6 -0
  102. package/dist/admin/src/services/documents.d.ts +10 -2
  103. package/dist/admin/translations/en.json.js +9 -0
  104. package/dist/admin/translations/en.json.js.map +1 -1
  105. package/dist/admin/translations/en.json.mjs +9 -0
  106. package/dist/admin/translations/en.json.mjs.map +1 -1
  107. package/dist/server/audit-logs.js +36 -0
  108. package/dist/server/audit-logs.js.map +1 -0
  109. package/dist/server/audit-logs.mjs +33 -0
  110. package/dist/server/audit-logs.mjs.map +1 -0
  111. package/dist/server/bootstrap.js +8 -0
  112. package/dist/server/bootstrap.js.map +1 -1
  113. package/dist/server/bootstrap.mjs +8 -0
  114. package/dist/server/bootstrap.mjs.map +1 -1
  115. package/dist/server/controllers/collection-types.js +8 -0
  116. package/dist/server/controllers/collection-types.js.map +1 -1
  117. package/dist/server/controllers/collection-types.mjs +8 -0
  118. package/dist/server/controllers/collection-types.mjs.map +1 -1
  119. package/dist/server/controllers/content-types.js +15 -0
  120. package/dist/server/controllers/content-types.js.map +1 -1
  121. package/dist/server/controllers/content-types.mjs +16 -1
  122. package/dist/server/controllers/content-types.mjs.map +1 -1
  123. package/dist/server/controllers/index.js +3 -1
  124. package/dist/server/controllers/index.js.map +1 -1
  125. package/dist/server/controllers/index.mjs +2 -0
  126. package/dist/server/controllers/index.mjs.map +1 -1
  127. package/dist/server/controllers/relations.js +53 -17
  128. package/dist/server/controllers/relations.js.map +1 -1
  129. package/dist/server/controllers/relations.mjs +54 -18
  130. package/dist/server/controllers/relations.mjs.map +1 -1
  131. package/dist/server/controllers/single-types.js +10 -1
  132. package/dist/server/controllers/single-types.js.map +1 -1
  133. package/dist/server/controllers/single-types.mjs +10 -1
  134. package/dist/server/controllers/single-types.mjs.map +1 -1
  135. package/dist/server/controllers/validation/model-configuration.js +2 -1
  136. package/dist/server/controllers/validation/model-configuration.js.map +1 -1
  137. package/dist/server/controllers/validation/model-configuration.mjs +2 -1
  138. package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
  139. package/dist/server/custom-order/constants.js +21 -0
  140. package/dist/server/custom-order/constants.js.map +1 -0
  141. package/dist/server/custom-order/constants.mjs +17 -0
  142. package/dist/server/custom-order/constants.mjs.map +1 -0
  143. package/dist/server/custom-order/controllers/custom-order.js +77 -0
  144. package/dist/server/custom-order/controllers/custom-order.js.map +1 -0
  145. package/dist/server/custom-order/controllers/custom-order.mjs +75 -0
  146. package/dist/server/custom-order/controllers/custom-order.mjs.map +1 -0
  147. package/dist/server/custom-order/controllers/index.js +10 -0
  148. package/dist/server/custom-order/controllers/index.js.map +1 -0
  149. package/dist/server/custom-order/controllers/index.mjs +8 -0
  150. package/dist/server/custom-order/controllers/index.mjs.map +1 -0
  151. package/dist/server/custom-order/index.js +71 -0
  152. package/dist/server/custom-order/index.js.map +1 -0
  153. package/dist/server/custom-order/index.mjs +69 -0
  154. package/dist/server/custom-order/index.mjs.map +1 -0
  155. package/dist/server/custom-order/routes/custom-order.js +38 -0
  156. package/dist/server/custom-order/routes/custom-order.js.map +1 -0
  157. package/dist/server/custom-order/routes/custom-order.mjs +36 -0
  158. package/dist/server/custom-order/routes/custom-order.mjs.map +1 -0
  159. package/dist/server/custom-order/routes/index.js +13 -0
  160. package/dist/server/custom-order/routes/index.js.map +1 -0
  161. package/dist/server/custom-order/routes/index.mjs +11 -0
  162. package/dist/server/custom-order/routes/index.mjs.map +1 -0
  163. package/dist/server/custom-order/services/custom-order.js +286 -0
  164. package/dist/server/custom-order/services/custom-order.js.map +1 -0
  165. package/dist/server/custom-order/services/custom-order.mjs +284 -0
  166. package/dist/server/custom-order/services/custom-order.mjs.map +1 -0
  167. package/dist/server/custom-order/services/document-middleware.js +83 -0
  168. package/dist/server/custom-order/services/document-middleware.js.map +1 -0
  169. package/dist/server/custom-order/services/document-middleware.mjs +81 -0
  170. package/dist/server/custom-order/services/document-middleware.mjs.map +1 -0
  171. package/dist/server/custom-order/services/index.js +10 -0
  172. package/dist/server/custom-order/services/index.js.map +1 -0
  173. package/dist/server/custom-order/services/index.mjs +8 -0
  174. package/dist/server/custom-order/services/index.mjs.map +1 -0
  175. package/dist/server/custom-order/services/utils.js +152 -0
  176. package/dist/server/custom-order/services/utils.js.map +1 -0
  177. package/dist/server/custom-order/services/utils.mjs +148 -0
  178. package/dist/server/custom-order/services/utils.mjs.map +1 -0
  179. package/dist/server/custom-order/utils.js +13 -0
  180. package/dist/server/custom-order/utils.js.map +1 -0
  181. package/dist/server/custom-order/utils.mjs +10 -0
  182. package/dist/server/custom-order/utils.mjs.map +1 -0
  183. package/dist/server/history/constants.js +2 -1
  184. package/dist/server/history/constants.js.map +1 -1
  185. package/dist/server/history/constants.mjs +2 -1
  186. package/dist/server/history/constants.mjs.map +1 -1
  187. package/dist/server/history/controllers/history-version.js +6 -2
  188. package/dist/server/history/controllers/history-version.js.map +1 -1
  189. package/dist/server/history/controllers/history-version.mjs +6 -2
  190. package/dist/server/history/controllers/history-version.mjs.map +1 -1
  191. package/dist/server/history/services/history.js +24 -7
  192. package/dist/server/history/services/history.js.map +1 -1
  193. package/dist/server/history/services/history.mjs +25 -8
  194. package/dist/server/history/services/history.mjs.map +1 -1
  195. package/dist/server/history/services/lifecycles.js +2 -16
  196. package/dist/server/history/services/lifecycles.js.map +1 -1
  197. package/dist/server/history/services/lifecycles.mjs +2 -16
  198. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  199. package/dist/server/mcp/schemas/filters-schema.js +10 -2
  200. package/dist/server/mcp/schemas/filters-schema.js.map +1 -1
  201. package/dist/server/mcp/schemas/filters-schema.mjs +10 -2
  202. package/dist/server/mcp/schemas/filters-schema.mjs.map +1 -1
  203. package/dist/server/preview/controllers/validation/preview.js +1 -1
  204. package/dist/server/preview/controllers/validation/preview.js.map +1 -1
  205. package/dist/server/preview/controllers/validation/preview.mjs +2 -2
  206. package/dist/server/preview/controllers/validation/preview.mjs.map +1 -1
  207. package/dist/server/register.js +4 -0
  208. package/dist/server/register.js.map +1 -1
  209. package/dist/server/register.mjs +4 -0
  210. package/dist/server/register.mjs.map +1 -1
  211. package/dist/server/routes/index.js +3 -1
  212. package/dist/server/routes/index.js.map +1 -1
  213. package/dist/server/routes/index.mjs +2 -0
  214. package/dist/server/routes/index.mjs.map +1 -1
  215. package/dist/server/services/content-types.js +2 -2
  216. package/dist/server/services/content-types.js.map +1 -1
  217. package/dist/server/services/content-types.mjs +2 -2
  218. package/dist/server/services/content-types.mjs.map +1 -1
  219. package/dist/server/services/document-manager.js +13 -0
  220. package/dist/server/services/document-manager.js.map +1 -1
  221. package/dist/server/services/document-manager.mjs +14 -1
  222. package/dist/server/services/document-manager.mjs.map +1 -1
  223. package/dist/server/services/document-metadata.js +1 -1
  224. package/dist/server/services/document-metadata.js.map +1 -1
  225. package/dist/server/services/document-metadata.mjs +1 -1
  226. package/dist/server/services/document-metadata.mjs.map +1 -1
  227. package/dist/server/services/index.js +3 -1
  228. package/dist/server/services/index.js.map +1 -1
  229. package/dist/server/services/index.mjs +2 -0
  230. package/dist/server/services/index.mjs.map +1 -1
  231. package/dist/server/services/utils/configuration/settings.js +2 -1
  232. package/dist/server/services/utils/configuration/settings.js.map +1 -1
  233. package/dist/server/services/utils/configuration/settings.mjs +2 -1
  234. package/dist/server/services/utils/configuration/settings.mjs.map +1 -1
  235. package/dist/server/src/audit-logs.d.ts +40 -0
  236. package/dist/server/src/audit-logs.d.ts.map +1 -0
  237. package/dist/server/src/bootstrap.d.ts.map +1 -1
  238. package/dist/server/src/controllers/collection-types.d.ts +1 -1
  239. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  240. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  241. package/dist/server/src/controllers/index.d.ts +21 -3
  242. package/dist/server/src/controllers/index.d.ts.map +1 -1
  243. package/dist/server/src/controllers/relations.d.ts +19 -1
  244. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  245. package/dist/server/src/controllers/single-types.d.ts +1 -1
  246. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  247. package/dist/server/src/custom-order/constants.d.ts +18 -0
  248. package/dist/server/src/custom-order/constants.d.ts.map +1 -0
  249. package/dist/server/src/custom-order/controllers/custom-order.d.ts +8 -0
  250. package/dist/server/src/custom-order/controllers/custom-order.d.ts.map +1 -0
  251. package/dist/server/src/custom-order/controllers/index.d.ts +3 -0
  252. package/dist/server/src/custom-order/controllers/index.d.ts.map +1 -0
  253. package/dist/server/src/custom-order/index.d.ts +8 -0
  254. package/dist/server/src/custom-order/index.d.ts.map +1 -0
  255. package/dist/server/src/custom-order/routes/custom-order.d.ts +4 -0
  256. package/dist/server/src/custom-order/routes/custom-order.d.ts.map +1 -0
  257. package/dist/server/src/custom-order/routes/index.d.ts +10 -0
  258. package/dist/server/src/custom-order/routes/index.d.ts.map +1 -0
  259. package/dist/server/src/custom-order/services/custom-order.d.ts +43 -0
  260. package/dist/server/src/custom-order/services/custom-order.d.ts.map +1 -0
  261. package/dist/server/src/custom-order/services/document-middleware.d.ts +16 -0
  262. package/dist/server/src/custom-order/services/document-middleware.d.ts.map +1 -0
  263. package/dist/server/src/custom-order/services/index.d.ts +24 -0
  264. package/dist/server/src/custom-order/services/index.d.ts.map +1 -0
  265. package/dist/server/src/custom-order/services/utils.d.ts +34 -0
  266. package/dist/server/src/custom-order/services/utils.d.ts.map +1 -0
  267. package/dist/server/src/custom-order/utils.d.ts +6 -0
  268. package/dist/server/src/custom-order/utils.d.ts.map +1 -0
  269. package/dist/server/src/history/constants.d.ts.map +1 -1
  270. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  271. package/dist/server/src/history/services/history.d.ts.map +1 -1
  272. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  273. package/dist/server/src/index.d.ts +22 -6
  274. package/dist/server/src/index.d.ts.map +1 -1
  275. package/dist/server/src/mcp/schemas/filters-schema.d.ts.map +1 -1
  276. package/dist/server/src/register.d.ts.map +1 -1
  277. package/dist/server/src/routes/index.d.ts.map +1 -1
  278. package/dist/server/src/services/content-types.d.ts +1 -3
  279. package/dist/server/src/services/content-types.d.ts.map +1 -1
  280. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  281. package/dist/server/src/services/index.d.ts +1 -3
  282. package/dist/server/src/services/index.d.ts.map +1 -1
  283. package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -1
  284. package/dist/shared/contracts/content-types.d.ts +5 -0
  285. package/dist/shared/contracts/content-types.d.ts.map +1 -1
  286. package/dist/shared/contracts/custom-order.d.ts +33 -0
  287. package/dist/shared/contracts/custom-order.d.ts.map +1 -0
  288. package/dist/shared/contracts/custom-order.js +3 -0
  289. package/dist/shared/contracts/custom-order.js.map +1 -0
  290. package/dist/shared/contracts/custom-order.mjs +2 -0
  291. package/dist/shared/contracts/custom-order.mjs.map +1 -0
  292. package/dist/shared/contracts/history-versions.d.ts +0 -1
  293. package/dist/shared/contracts/history-versions.d.ts.map +1 -1
  294. package/dist/shared/contracts/index.d.ts +1 -0
  295. package/dist/shared/contracts/index.d.ts.map +1 -1
  296. package/dist/shared/contracts/index.js +2 -0
  297. package/dist/shared/contracts/index.js.map +1 -1
  298. package/dist/shared/contracts/index.mjs +2 -0
  299. package/dist/shared/contracts/index.mjs.map +1 -1
  300. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sources":["../../../admin/src/services/documents.ts"],"sourcesContent":["/**\n * Related to fetching the actual content of a collection type or single type.\n */\nimport { stringify } from 'qs';\n\nimport { SINGLE_TYPES } from '../constants/collections';\n\nimport { contentManagerApi } from './api';\n\nimport type {\n Clone,\n Create,\n Delete,\n Find,\n FindOne,\n BulkDelete,\n BulkPublish,\n BulkUnpublish,\n Discard,\n CountDraftRelations,\n CountManyEntriesDraftRelations,\n Publish,\n Unpublish,\n Update,\n} from '../../../shared/contracts/collection-types';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
1
+ {"version":3,"file":"documents.js","sources":["../../../admin/src/services/documents.ts"],"sourcesContent":["/**\n * Related to fetching the actual content of a collection type or single type.\n */\nimport { stringify } from 'qs';\n\nimport { SINGLE_TYPES } from '../constants/collections';\n\nimport { contentManagerApi } from './api';\n\nimport type {\n Clone,\n Create,\n Delete,\n Find,\n FindOne,\n BulkDelete,\n BulkPublish,\n BulkUnpublish,\n Discard,\n CountDraftRelations,\n CountManyEntriesDraftRelations,\n Publish,\n Unpublish,\n Update,\n} from '../../../shared/contracts/collection-types';\nimport type { MoveDocument } from '../../../shared/contracts/custom-order';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n /**\n * Places a document right before or after another one in the custom order\n * of its collection type.\n */\n moveDocument: builder.mutation<\n MoveDocument.Response,\n MoveDocument.Params & {\n body: MoveDocument.Request['body'];\n params?: MoveDocument.Request['query'];\n }\n >({\n query: ({ model, id, body, params }) => ({\n url: `/content-manager/collection-types/${model}/${id}/actions/move`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) =>\n error ? [] : [{ type: 'Document', id: `${model}_LIST` }],\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","moveDocument","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","useMoveDocumentMutation","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
@@ -198,6 +198,25 @@ const documentApi = contentManagerApi.injectEndpoints({
198
198
  ];
199
199
  }
200
200
  }),
201
+ /**
202
+ * Places a document right before or after another one in the custom order
203
+ * of its collection type.
204
+ */ moveDocument: builder.mutation({
205
+ query: ({ model, id, body, params })=>({
206
+ url: `/content-manager/collection-types/${model}/${id}/actions/move`,
207
+ method: 'POST',
208
+ data: body,
209
+ config: {
210
+ params
211
+ }
212
+ }),
213
+ invalidatesTags: (_result, error, { model })=>error ? [] : [
214
+ {
215
+ type: 'Document',
216
+ id: `${model}_LIST`
217
+ }
218
+ ]
219
+ }),
201
220
  getDraftRelationCount: builder.query({
202
221
  query: ({ collectionType, model, documentId, params })=>({
203
222
  url: documentId && collectionType !== SINGLE_TYPES ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations` : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,
@@ -433,7 +452,7 @@ const documentApi = contentManagerApi.injectEndpoints({
433
452
  })
434
453
  })
435
454
  });
436
- const { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation } = documentApi;
455
+ const { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useLazyGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation } = documentApi;
437
456
 
438
- export { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useGetDocumentQuery, useGetDocumentsForValidationQuery, useGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useLazyGetDocumentQuery, useLazyGetDraftRelationCountQuery, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation, useUpdateDocumentMutation };
457
+ export { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useGetDocumentQuery, useGetDocumentsForValidationQuery, useGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useLazyGetAllDocumentsQuery, useLazyGetDocumentQuery, useLazyGetDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation, useUpdateDocumentMutation };
439
458
  //# sourceMappingURL=documents.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"documents.mjs","sources":["../../../admin/src/services/documents.ts"],"sourcesContent":["/**\n * Related to fetching the actual content of a collection type or single type.\n */\nimport { stringify } from 'qs';\n\nimport { SINGLE_TYPES } from '../constants/collections';\n\nimport { contentManagerApi } from './api';\n\nimport type {\n Clone,\n Create,\n Delete,\n Find,\n FindOne,\n BulkDelete,\n BulkPublish,\n BulkUnpublish,\n Discard,\n CountDraftRelations,\n CountManyEntriesDraftRelations,\n Publish,\n Unpublish,\n Update,\n} from '../../../shared/contracts/collection-types';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
1
+ {"version":3,"file":"documents.mjs","sources":["../../../admin/src/services/documents.ts"],"sourcesContent":["/**\n * Related to fetching the actual content of a collection type or single type.\n */\nimport { stringify } from 'qs';\n\nimport { SINGLE_TYPES } from '../constants/collections';\n\nimport { contentManagerApi } from './api';\n\nimport type {\n Clone,\n Create,\n Delete,\n Find,\n FindOne,\n BulkDelete,\n BulkPublish,\n BulkUnpublish,\n Discard,\n CountDraftRelations,\n CountManyEntriesDraftRelations,\n Publish,\n Unpublish,\n Update,\n} from '../../../shared/contracts/collection-types';\nimport type { MoveDocument } from '../../../shared/contracts/custom-order';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n /**\n * Places a document right before or after another one in the custom order\n * of its collection type.\n */\n moveDocument: builder.mutation<\n MoveDocument.Response,\n MoveDocument.Params & {\n body: MoveDocument.Request['body'];\n params?: MoveDocument.Request['query'];\n }\n >({\n query: ({ model, id, body, params }) => ({\n url: `/content-manager/collection-types/${model}/${id}/actions/move`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) =>\n error ? [] : [{ type: 'Document', id: `${model}_LIST` }],\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","moveDocument","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","useMoveDocumentMutation","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Hidden field holding the position of an entry in the custom order of its collection type.
3
+ * It is never part of the content type schema sent to the admin, it can only be sorted on.
4
+ */
5
+ declare const CUSTOM_ORDER_FIELD = "strapi_position";
6
+ declare const CUSTOM_ORDER_SORT = "strapi_position:ASC";
7
+ declare const isCustomOrderFeatureEnabled: () => boolean;
8
+ export { CUSTOM_ORDER_FIELD, CUSTOM_ORDER_SORT, isCustomOrderFeatureEnabled };
@@ -9,7 +9,7 @@ export { DocumentStatus } from './pages/EditView/components/DocumentStatus';
9
9
  export { useDocument as unstable_useDocument, useContentManagerContext as unstable_useContentManagerContext, } from './hooks/useDocument';
10
10
  export { useDocumentActions as unstable_useDocumentActions } from './hooks/useDocumentActions';
11
11
  export { useDocumentLayout as unstable_useDocumentLayout } from './hooks/useDocumentLayout';
12
- export type { EditFieldLayout, EditLayout, ListFieldLayout, ListLayout, } from './hooks/useDocumentLayout';
12
+ export type { EditFieldLayout, EditLayout, ListCellMeta, ListFieldLayout, ListLayout, } from './hooks/useDocumentLayout';
13
13
  export type { InjectableListViewFilter } from './constants/hooks';
14
14
  export * from './features/DocumentRBAC';
15
15
  export type { EditViewContext, ListViewContext, BulkActionComponent, BulkActionComponentProps, BulkActionDescription, ContentManagerPlugin, DescriptionComponent, DescriptionReducer, PanelComponentProps, PanelComponent, PanelDescription, DocumentActionComponent, DocumentActionDescription, DocumentActionProps, HeaderActionComponent, HeaderActionDescription, HeaderActionProps, } from './content-manager';
@@ -8,6 +8,8 @@ type VersionInputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {
8
8
  * @default false
9
9
  */
10
10
  shouldIgnoreRBAC?: boolean;
11
+ /** Passed down by component and dynamic zone layouts; not used here. */
12
+ size?: number;
11
13
  };
12
14
  /**
13
15
  * Resolve the layout, configuration metadata and schema attributes needed to
@@ -40,6 +42,6 @@ declare const resolveComponentRenderResources: (componentUID: string, components
40
42
  * to be used on the History page in the content-manager. It understands how to render specific
41
43
  * inputs within the context of a history version (i.e. relations, media, ignored RBAC, etc...)
42
44
  */
43
- declare const VersionInputRenderer: ({ visible, hint: providedHint, shouldIgnoreRBAC, labelAction, ...props }: VersionInputRendererProps) => import("react/jsx-runtime").JSX.Element | null;
45
+ declare const VersionInputRenderer: ({ visible, hint: providedHint, shouldIgnoreRBAC, labelAction, size: _size, ...props }: VersionInputRendererProps) => import("react/jsx-runtime").JSX.Element | null;
44
46
  export type { VersionInputRendererProps };
45
47
  export { VersionInputRenderer, CustomRelationInput, resolveComponentRenderResources };
@@ -2,6 +2,10 @@
2
2
  * This hook doesn't use a context provider because we fetch directly from the server,
3
3
  * this sounds expensive but actually, it's really not. Because we have redux-toolkit-query
4
4
  * being a cache layer so if nothing invalidates the cache, we don't fetch again.
5
+ *
6
+ * The network is deduplicated, but the work done inside the hook is not: it can be mounted
7
+ * by hundreds of fields at once, so anything expensive it derives must be cached outside of
8
+ * the hook instance (see `getValidationSchema`).
5
9
  */
6
10
  import { FormErrors } from '@strapi/admin/strapi-admin';
7
11
  import { type AnyData } from '../pages/EditView/utils/data';
@@ -10,7 +10,11 @@ interface LayoutSettings extends Settings {
10
10
  displayName?: string;
11
11
  icon?: never;
12
12
  }
13
- interface ListFieldLayout extends Table.Header<Document, ListFieldLayout>, Pick<Filters.Filter, 'mainField'> {
13
+ interface ListCellMeta {
14
+ collectionType: string;
15
+ model: string;
16
+ }
17
+ interface ListFieldLayout extends Table.Header<Document, ListFieldLayout, ListCellMeta>, Pick<Filters.Filter, 'mainField'> {
14
18
  attribute: SchemaUtils.Attribute.AnyAttribute | {
15
19
  type: 'custom';
16
20
  };
@@ -154,4 +158,4 @@ declare const convertListLayoutToFieldLayouts: (columns: LayoutData["contentType
154
158
  schemas: ComponentsDictionary;
155
159
  }, schemas?: Schema[]) => ListFieldLayout[];
156
160
  export { useDocLayout, useDocumentLayout, convertListLayoutToFieldLayouts, convertEditLayoutToFieldLayouts, DEFAULT_SETTINGS, };
157
- export type { EditLayout, EditFieldLayout, ListLayout, ListFieldLayout, UseDocumentLayout };
161
+ export type { EditLayout, EditFieldLayout, ListCellMeta, ListLayout, ListFieldLayout, UseDocumentLayout, };
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * How far outside of the scroll container an element counts as near the viewport, so scrolling
4
+ * doesn't reveal content that is still being mounted or loaded.
5
+ */
6
+ declare const NEAR_VIEWPORT_MARGIN = "1200px 0px";
7
+ declare const getScrollParent: (element: HTMLElement | null) => HTMLElement | null;
8
+ /**
9
+ * Returns `true` once the element has come close to the viewport of its scroll container, then
10
+ * keeps returning `true`. Without `IntersectionObserver` (e.g. JSDOM), it always returns `true`.
11
+ */
12
+ declare const useHasBeenNearViewport: <TElement extends HTMLElement>(ref: React.RefObject<TElement>) => boolean;
13
+ export { useHasBeenNearViewport, getScrollParent, NEAR_VIEWPORT_MARGIN };
@@ -1,3 +1,15 @@
1
+ import * as React from 'react';
2
+ import { Editor } from 'slate';
1
3
  import { type BlocksStore } from '../BlocksEditor';
4
+ import type { Schema } from '@strapi/types';
5
+ type MediaAsset = Schema.Attribute.MediaValue<true>[number];
6
+ /**
7
+ * For files dropped onto the editor: returns what inserts each of them, once
8
+ * uploaded, as an image block below the block they were dropped on (or at the
9
+ * end, below the last block). An empty paragraph there is replaced instead.
10
+ * Each image goes below the previous one from the same drop, and a path ref
11
+ * keeps that position right while the content is edited during the upload.
12
+ */
13
+ declare const createDroppedImagesInserter: (editor: Editor, event: React.DragEvent) => (asset: MediaAsset) => void;
2
14
  declare const imageBlocks: Pick<BlocksStore, 'image'>;
3
- export { imageBlocks };
15
+ export { imageBlocks, createDroppedImagesInserter };
@@ -2,6 +2,16 @@ import * as React from 'react';
2
2
  import { Grid } from '@strapi/design-system';
3
3
  import { EditLayout } from '../../../hooks/useDocumentLayout';
4
4
  import type { UseDocument } from '../../../hooks/useDocument';
5
+ type LayoutField = EditLayout['layout'][number][number][number];
6
+ type Components = ReturnType<UseDocument>['components'];
7
+ type Attribute = LayoutField['attribute'];
8
+ /**
9
+ * Some inputs set a value when they mount: a required UID fetches its default value, and custom
10
+ * fields may set a default. Their rows are mounted with the page, as they always were, so that
11
+ * saving right after the page loads doesn't miss those values. Non-repeatable components are
12
+ * expanded by default, so the inputs they contain count too.
13
+ */
14
+ declare const hasMountSideEffects: (attribute: Attribute, components: Components, depth?: number) => boolean;
5
15
  export declare const ResponsiveGridRoot: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("@strapi/design-system").TransientBoxProps & {
6
16
  children?: React.ReactNode;
7
17
  } & import("@strapi/design-system/dist/types.js").AsProp<React.ElementType<any, keyof React.JSX.IntrinsicElements>> & Omit<Omit<any, "ref">, "children" | keyof import("@strapi/design-system/dist/types.js").AsProp<C> | keyof import("@strapi/design-system").TransientBoxProps> & {
@@ -53,4 +63,4 @@ interface FormLayoutProps extends Pick<EditLayout, 'layout'> {
53
63
  document: ReturnType<UseDocument>;
54
64
  }
55
65
  declare const FormLayout: React.MemoExoticComponent<({ layout, document, hasBackground }: FormLayoutProps) => import("react/jsx-runtime").JSX.Element>;
56
- export { FormLayout, FormLayoutProps };
66
+ export { FormLayout, FormLayoutProps, hasMountSideEffects };
@@ -5,6 +5,8 @@ import type { Schema } from '@strapi/types';
5
5
  import type { DistributiveOmit } from 'react-redux';
6
6
  type InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {
7
7
  document?: ReturnType<UseDocument>;
8
+ /** The field's width in the edit layout, out of 12. */
9
+ size?: number;
8
10
  };
9
11
  declare const useFieldHint: (hint: React.ReactNode, attribute: Schema.Attribute.AnyAttribute) => string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | (string | import("react/jsx-runtime").JSX.Element | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal)[] | null | undefined;
10
12
  /**
@@ -0,0 +1,72 @@
1
+ import * as React from 'react';
2
+ import { Table } from '@strapi/admin/strapi-admin';
3
+ import { Td } from '@strapi/design-system';
4
+ import type { DocumentActionComponent } from '../../../content-manager';
5
+ import type { Document } from '../../../hooks/useDocument';
6
+ interface CustomOrderState {
7
+ /** Custom order is turned on for the content type. */
8
+ isAvailable: boolean;
9
+ /** The list is sorted by its custom order, so the position of an entry means something. */
10
+ isActive: boolean;
11
+ /** The user is allowed to move entries, and the list is in a state where they can be moved. */
12
+ canReorder: boolean;
13
+ /**
14
+ * A move is in progress: from the moment it is asked until the list shows its result.
15
+ * No other move can start in the meantime.
16
+ */
17
+ isMoving: boolean;
18
+ /** The entries of the page, in the order they should be displayed. */
19
+ rows: Document[];
20
+ /** Number of entries in the current view, all pages included. */
21
+ total: number;
22
+ /** 1-based position of an entry of the page in the current view. */
23
+ getPosition: (documentId: string) => number | undefined;
24
+ /** Moves an entry of the page to the place of another entry of the page. */
25
+ moveToIndex: (from: number, to: number) => Promise<void>;
26
+ /** Moves an entry of the page to a position of the current view, on this page or another. */
27
+ moveToPosition: (documentId: string, position: number) => Promise<void>;
28
+ }
29
+ interface UseCustomOrderOptions {
30
+ model: string;
31
+ isAvailable: boolean;
32
+ canUpdate: boolean;
33
+ sort?: string;
34
+ /**
35
+ * Params of the list request. Reused to find which entry sits at a given position
36
+ * of the same view when it is not on the current page.
37
+ */
38
+ params: Record<string, unknown>;
39
+ results: Document[];
40
+ pagination?: {
41
+ page: number;
42
+ pageSize: number;
43
+ total: number;
44
+ };
45
+ /**
46
+ * Not needed anymore: the hook fetches the list again itself after a move and knows when
47
+ * that answer lands. Still accepted so that existing callers keep compiling.
48
+ */
49
+ fulfilledTimeStamp?: number;
50
+ }
51
+ declare const useCustomOrder: ({ model, isAvailable, canUpdate, sort, params, results, pagination, }: UseCustomOrderOptions) => CustomOrderState;
52
+ interface RootProps {
53
+ children: React.ReactNode;
54
+ state: CustomOrderState;
55
+ }
56
+ type RowProps = React.ComponentProps<typeof Table.Row> & {
57
+ documentId: string;
58
+ };
59
+ type PositionCellProps = React.ComponentProps<typeof Td> & {
60
+ documentId: string;
61
+ position: number;
62
+ total: number;
63
+ };
64
+ declare const MoveToTopAction: DocumentActionComponent;
65
+ declare const MoveToBottomAction: DocumentActionComponent;
66
+ declare const CustomOrder: {
67
+ Root: ({ children, state }: RootProps) => string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | null | undefined;
68
+ Row: ({ documentId, ...props }: RowProps) => import("react/jsx-runtime").JSX.Element;
69
+ PositionCell: ({ documentId, position, total, ...props }: PositionCellProps) => import("react/jsx-runtime").JSX.Element;
70
+ };
71
+ export { CustomOrder, useCustomOrder, MoveToTopAction, MoveToBottomAction };
72
+ export type { CustomOrderState };