@strapi/content-manager 0.0.0-next.e3eb36dde0d936dc941df54e440e2c50a0582eeb → 0.0.0-next.e50ef5e2ea57ecf3da5bcf308508b51ee3c0deca

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 (208) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/LeftMenu.js +34 -30
  6. package/dist/admin/components/LeftMenu.js.map +1 -1
  7. package/dist/admin/components/LeftMenu.mjs +36 -32
  8. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  9. package/dist/admin/history/components/VersionContent.js +24 -3
  10. package/dist/admin/history/components/VersionContent.js.map +1 -1
  11. package/dist/admin/history/components/VersionContent.mjs +25 -4
  12. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  13. package/dist/admin/history/components/VersionHeader.js +6 -0
  14. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  15. package/dist/admin/history/components/VersionHeader.mjs +7 -1
  16. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  17. package/dist/admin/hooks/useDocumentActions.js +7 -3
  18. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  19. package/dist/admin/hooks/useDocumentActions.mjs +7 -3
  20. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  21. package/dist/admin/index.js +2 -0
  22. package/dist/admin/index.js.map +1 -1
  23. package/dist/admin/index.mjs +1 -0
  24. package/dist/admin/index.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/EditViewPage.js +94 -75
  26. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  27. package/dist/admin/pages/EditView/EditViewPage.mjs +95 -76
  28. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  29. package/dist/admin/pages/EditView/components/DocumentActions.js +83 -70
  30. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  31. package/dist/admin/pages/EditView/components/DocumentActions.mjs +85 -72
  32. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  34. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  36. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
  38. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
  40. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  42. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  44. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  46. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  48. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +13 -2
  50. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +14 -3
  52. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
  54. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
  56. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +1 -0
  58. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +1 -0
  60. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +155 -106
  62. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +158 -109
  64. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
  66. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
  68. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  70. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  72. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  74. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  76. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormLayout.js +46 -26
  78. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormLayout.mjs +46 -26
  80. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  81. package/dist/admin/pages/EditView/utils/data.js +103 -0
  82. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  83. package/dist/admin/pages/EditView/utils/data.mjs +103 -1
  84. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  85. package/dist/admin/pages/ListView/ListViewPage.js +86 -0
  86. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  87. package/dist/admin/pages/ListView/ListViewPage.mjs +88 -2
  88. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  89. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  90. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  91. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  92. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  93. package/dist/admin/pages/ListView/components/Filters.js +1 -0
  94. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  95. package/dist/admin/pages/ListView/components/Filters.mjs +1 -0
  96. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  97. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  98. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  99. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  100. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  101. package/dist/admin/services/api.js +2 -1
  102. package/dist/admin/services/api.js.map +1 -1
  103. package/dist/admin/services/api.mjs +2 -1
  104. package/dist/admin/services/api.mjs.map +1 -1
  105. package/dist/admin/services/documents.js +4 -4
  106. package/dist/admin/services/documents.js.map +1 -1
  107. package/dist/admin/services/documents.mjs +4 -4
  108. package/dist/admin/services/documents.mjs.map +1 -1
  109. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  110. package/dist/admin/src/exports.d.ts +1 -0
  111. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  112. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  113. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  114. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -7
  115. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  116. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  117. package/dist/admin/src/services/api.d.ts +1 -1
  118. package/dist/admin/src/services/components.d.ts +2 -2
  119. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  120. package/dist/admin/src/services/documents.d.ts +23 -17
  121. package/dist/admin/src/services/homepage.d.ts +1 -1
  122. package/dist/admin/src/services/init.d.ts +1 -1
  123. package/dist/admin/src/services/relations.d.ts +2 -2
  124. package/dist/admin/src/services/uid.d.ts +3 -3
  125. package/dist/admin/src/utils/validation.d.ts +1 -0
  126. package/dist/admin/translations/en.json.js +1 -0
  127. package/dist/admin/translations/en.json.js.map +1 -1
  128. package/dist/admin/translations/en.json.mjs +1 -0
  129. package/dist/admin/translations/en.json.mjs.map +1 -1
  130. package/dist/admin/translations/fr.json.js +6 -1
  131. package/dist/admin/translations/fr.json.js.map +1 -1
  132. package/dist/admin/translations/fr.json.mjs +6 -1
  133. package/dist/admin/translations/fr.json.mjs.map +1 -1
  134. package/dist/admin/utils/validation.js +17 -6
  135. package/dist/admin/utils/validation.js.map +1 -1
  136. package/dist/admin/utils/validation.mjs +17 -6
  137. package/dist/admin/utils/validation.mjs.map +1 -1
  138. package/dist/server/controllers/content-types.js +11 -1
  139. package/dist/server/controllers/content-types.js.map +1 -1
  140. package/dist/server/controllers/content-types.mjs +11 -1
  141. package/dist/server/controllers/content-types.mjs.map +1 -1
  142. package/dist/server/controllers/relations.js +2 -2
  143. package/dist/server/controllers/relations.js.map +1 -1
  144. package/dist/server/controllers/relations.mjs +2 -2
  145. package/dist/server/controllers/relations.mjs.map +1 -1
  146. package/dist/server/controllers/validation/index.js +14 -2
  147. package/dist/server/controllers/validation/index.js.map +1 -1
  148. package/dist/server/controllers/validation/index.mjs +14 -2
  149. package/dist/server/controllers/validation/index.mjs.map +1 -1
  150. package/dist/server/history/services/lifecycles.js +3 -0
  151. package/dist/server/history/services/lifecycles.js.map +1 -1
  152. package/dist/server/history/services/lifecycles.mjs +3 -0
  153. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  154. package/dist/server/homepage/services/homepage.js +58 -49
  155. package/dist/server/homepage/services/homepage.js.map +1 -1
  156. package/dist/server/homepage/services/homepage.mjs +58 -49
  157. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  158. package/dist/server/services/data-mapper.js +4 -1
  159. package/dist/server/services/data-mapper.js.map +1 -1
  160. package/dist/server/services/data-mapper.mjs +4 -1
  161. package/dist/server/services/data-mapper.mjs.map +1 -1
  162. package/dist/server/services/document-manager.js +8 -1
  163. package/dist/server/services/document-manager.js.map +1 -1
  164. package/dist/server/services/document-manager.mjs +8 -1
  165. package/dist/server/services/document-manager.mjs.map +1 -1
  166. package/dist/server/services/document-metadata.js +3 -1
  167. package/dist/server/services/document-metadata.js.map +1 -1
  168. package/dist/server/services/document-metadata.mjs +3 -1
  169. package/dist/server/services/document-metadata.mjs.map +1 -1
  170. package/dist/server/services/utils/configuration/attributes.js +1 -1
  171. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  172. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  173. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  174. package/dist/server/services/utils/configuration/layouts.js +1 -1
  175. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  176. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  177. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  178. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  179. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  180. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  181. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  182. package/dist/server/services/utils/populate.js +11 -0
  183. package/dist/server/services/utils/populate.js.map +1 -1
  184. package/dist/server/services/utils/populate.mjs +11 -0
  185. package/dist/server/services/utils/populate.mjs.map +1 -1
  186. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  187. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  188. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  189. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  190. package/dist/server/src/homepage/index.d.ts +2 -0
  191. package/dist/server/src/homepage/index.d.ts.map +1 -1
  192. package/dist/server/src/homepage/services/homepage.d.ts +3 -1
  193. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  194. package/dist/server/src/homepage/services/index.d.ts +2 -0
  195. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  196. package/dist/server/src/index.d.ts +3 -0
  197. package/dist/server/src/index.d.ts.map +1 -1
  198. package/dist/server/src/services/data-mapper.d.ts +1 -0
  199. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  200. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  201. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  202. package/dist/server/src/services/index.d.ts +3 -0
  203. package/dist/server/src/services/index.d.ts.map +1 -1
  204. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  205. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  206. package/dist/shared/contracts/collection-types.d.ts +0 -1
  207. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  208. package/package.json +11 -8
@@ -1 +1 @@
1
- {"version":3,"file":"TableActions.js","sources":["../../../../../admin/src/pages/ListView/components/TableActions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useNotification,\n useStrapiApp,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, LinkButton, Modal } from '@strapi/design-system';\nimport { Duplicate, Pencil } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { Document, useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { isBaseQueryError } from '../../../utils/api';\nimport { DocumentActionsMenu } from '../../EditView/components/DocumentActions';\n\nimport { AutoCloneFailureModalBody } from './AutoCloneFailureModal';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n DocumentActionProps,\n} from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * TableActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableActionsProps {\n document: Document;\n}\n\nconst TableActions = ({ document }: TableActionsProps) => {\n const { formatMessage } = useIntl();\n const { model, collectionType } = useDoc();\n const plugins = useStrapiApp('TableActions', (state) => state.plugins);\n\n const props: DocumentActionProps = {\n activeTab: null,\n model,\n documentId: document.documentId,\n collectionType,\n document,\n };\n\n return (\n <DescriptionComponentRenderer\n props={props}\n descriptions={(plugins['content-manager'].apis as ContentManagerPlugin['config']['apis'])\n .getDocumentActions('table-row')\n // We explicitly remove the PublishAction from description so we never render it and we don't make unnecessary requests.\n .filter((action) => action.name !== 'PublishAction')}\n >\n {(actions) => {\n const tableRowActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('table-row');\n });\n\n return (\n <DocumentActionsMenu\n actions={tableRowActions}\n label={formatMessage({\n id: 'content-manager.containers.list.table.row-actions',\n defaultMessage: 'Row actions',\n })}\n variant=\"ghost\"\n />\n );\n }}\n </DescriptionComponentRenderer>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditAction: DocumentActionComponent = ({ documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canRead } = useDocumentRBAC('EditAction', ({ canRead }) => ({ canRead }));\n const { toggleNotification } = useNotification();\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n\n return {\n disabled: !canRead,\n icon: <StyledPencil />,\n label: formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to edit a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.edit.error',\n defaultMessage: 'An error occurred while trying to edit the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n navigate({\n pathname: documentId,\n search: stringify({\n plugins: query.plugins,\n }),\n });\n },\n };\n};\n\nEditAction.type = 'edit';\nEditAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledPencil = styled(Pencil)`\n path {\n fill: currentColor;\n }\n`;\n\nconst CloneAction: DocumentActionComponent = ({ model, documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canCreate } = useDocumentRBAC('CloneAction', ({ canCreate }) => ({ canCreate }));\n const { toggleNotification } = useNotification();\n const { autoClone } = useDocumentActions();\n const [prohibitedFields, setProhibitedFields] = React.useState<ProhibitedCloningField[]>([]);\n\n return {\n disabled: !canCreate,\n icon: <StyledDuplicate />,\n label: formatMessage({\n id: 'content-manager.actions.clone.label',\n defaultMessage: 'Duplicate',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to clone a document in the table without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.clone.error',\n defaultMessage: 'An error occurred while trying to clone the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await autoClone({ model, sourceId: documentId });\n\n if ('data' in res) {\n navigate(res.data.documentId);\n\n /**\n * We return true because we don't need to show a modal anymore.\n */\n return true;\n }\n\n if (\n isBaseQueryError(res.error) &&\n res.error.details &&\n typeof res.error.details === 'object' &&\n 'prohibitedFields' in res.error.details &&\n Array.isArray(res.error.details.prohibitedFields)\n ) {\n const prohibitedFields = res.error.details.prohibitedFields as ProhibitedCloningField[];\n\n setProhibitedFields(prohibitedFields);\n }\n },\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.header',\n defaultMessage: 'Duplicate',\n }),\n content: <AutoCloneFailureModalBody prohibitedFields={prohibitedFields} />,\n footer: ({ onClose }) => {\n return (\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <LinkButton\n tag={NavLink}\n to={{\n pathname: `clone/${documentId}`,\n }}\n >\n {formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.create',\n defaultMessage: 'Create',\n })}\n </LinkButton>\n </Modal.Footer>\n );\n },\n },\n };\n};\n\nCloneAction.type = 'clone';\nCloneAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledDuplicate = styled(Duplicate)`\n path {\n fill: currentColor;\n }\n`;\n\nconst DEFAULT_TABLE_ROW_ACTIONS = [EditAction, CloneAction];\n\nexport { TableActions, DEFAULT_TABLE_ROW_ACTIONS };\n"],"names":["TableActions","document","formatMessage","useIntl","model","collectionType","useDoc","plugins","useStrapiApp","state","props","activeTab","documentId","_jsx","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","filter","action","name","actions","tableRowActions","positions","Array","isArray","position","includes","DocumentActionsMenu","label","id","defaultMessage","variant","EditAction","navigate","useNavigate","canRead","useDocumentRBAC","toggleNotification","useNotification","query","useQueryParams","disabled","icon","StyledPencil","onClick","console","error","message","type","pathname","search","stringify","styled","Pencil","CloneAction","canCreate","autoClone","useDocumentActions","prohibitedFields","setProhibitedFields","React","useState","StyledDuplicate","res","sourceId","data","isBaseQueryError","details","dialog","title","content","AutoCloneFailureModalBody","footer","onClose","_jsxs","Modal","Footer","Button","LinkButton","tag","NavLink","to","Duplicate","DEFAULT_TABLE_ROW_ACTIONS"],"mappings":"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"}
1
+ {"version":3,"file":"TableActions.js","sources":["../../../../../admin/src/pages/ListView/components/TableActions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useNotification,\n useStrapiApp,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, LinkButton, Modal } from '@strapi/design-system';\nimport { Duplicate, Pencil } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { Document, useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { isBaseQueryError } from '../../../utils/api';\nimport { DocumentActionsMenu } from '../../EditView/components/DocumentActions';\n\nimport { AutoCloneFailureModalBody } from './AutoCloneFailureModal';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n DocumentActionProps,\n} from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * TableActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableActionsProps {\n document: Document;\n}\n\nconst TableActions = ({ document }: TableActionsProps) => {\n const { formatMessage } = useIntl();\n const { model, collectionType } = useDoc();\n const plugins = useStrapiApp('TableActions', (state) => state.plugins);\n\n const props: DocumentActionProps = {\n activeTab: null,\n model,\n documentId: document.documentId,\n collectionType,\n document,\n };\n\n return (\n <DescriptionComponentRenderer\n props={props}\n descriptions={(plugins['content-manager'].apis as ContentManagerPlugin['config']['apis'])\n .getDocumentActions('table-row')\n // We explicitly remove the PublishAction from description so we never render it and we don't make unnecessary requests.\n .filter((action) => action.name !== 'PublishAction')}\n >\n {(actions) => {\n const tableRowActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('table-row');\n });\n\n return (\n <DocumentActionsMenu\n actions={tableRowActions}\n label={formatMessage({\n id: 'content-manager.containers.list.table.row-actions',\n defaultMessage: 'Row actions',\n })}\n variant=\"ghost\"\n />\n );\n }}\n </DescriptionComponentRenderer>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditAction: DocumentActionComponent = ({ documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canRead } = useDocumentRBAC('EditAction', ({ canRead }) => ({ canRead }));\n const { toggleNotification } = useNotification();\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n\n return {\n disabled: !canRead,\n icon: <StyledPencil />,\n label: formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to edit a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.edit.error',\n defaultMessage: 'An error occurred while trying to edit the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n navigate({\n pathname: documentId,\n search: stringify({\n plugins: query.plugins,\n }),\n });\n },\n };\n};\n\nEditAction.type = 'edit';\nEditAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledPencil = styled(Pencil)`\n path {\n fill: currentColor;\n }\n`;\n\nconst CloneAction: DocumentActionComponent = ({ model, documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canCreate } = useDocumentRBAC('CloneAction', ({ canCreate }) => ({ canCreate }));\n const { toggleNotification } = useNotification();\n const { autoClone } = useDocumentActions();\n const [prohibitedFields, setProhibitedFields] = React.useState<ProhibitedCloningField[]>([]);\n const [{ query }] = useQueryParams<{ plugins?: Record<string, any> }>();\n\n return {\n disabled: !canCreate,\n icon: <StyledDuplicate />,\n label: formatMessage({\n id: 'content-manager.actions.clone.label',\n defaultMessage: 'Duplicate',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to clone a document in the table without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.clone.error',\n defaultMessage: 'An error occurred while trying to clone the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await autoClone({\n model,\n sourceId: documentId,\n locale: query.plugins?.i18n?.locale,\n });\n\n if ('data' in res) {\n navigate({\n pathname: res.data.documentId,\n search: stringify({\n plugins: query.plugins,\n }),\n });\n\n /**\n * We return true because we don't need to show a modal anymore.\n */\n return true;\n }\n\n if (\n isBaseQueryError(res.error) &&\n res.error.details &&\n typeof res.error.details === 'object' &&\n 'prohibitedFields' in res.error.details &&\n Array.isArray(res.error.details.prohibitedFields)\n ) {\n const prohibitedFields = res.error.details.prohibitedFields as ProhibitedCloningField[];\n\n setProhibitedFields(prohibitedFields);\n }\n },\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.header',\n defaultMessage: 'Duplicate',\n }),\n content: <AutoCloneFailureModalBody prohibitedFields={prohibitedFields} />,\n footer: ({ onClose }) => {\n return (\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <LinkButton\n tag={NavLink}\n to={{\n pathname: `clone/${documentId}`,\n search: stringify({\n plugins: query.plugins,\n }),\n }}\n >\n {formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.create',\n defaultMessage: 'Create',\n })}\n </LinkButton>\n </Modal.Footer>\n );\n },\n },\n };\n};\n\nCloneAction.type = 'clone';\nCloneAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledDuplicate = styled(Duplicate)`\n path {\n fill: currentColor;\n }\n`;\n\nconst DEFAULT_TABLE_ROW_ACTIONS = [EditAction, CloneAction];\n\nexport { TableActions, DEFAULT_TABLE_ROW_ACTIONS };\n"],"names":["TableActions","document","formatMessage","useIntl","model","collectionType","useDoc","plugins","useStrapiApp","state","props","activeTab","documentId","_jsx","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","filter","action","name","actions","tableRowActions","positions","Array","isArray","position","includes","DocumentActionsMenu","label","id","defaultMessage","variant","EditAction","navigate","useNavigate","canRead","useDocumentRBAC","toggleNotification","useNotification","query","useQueryParams","disabled","icon","StyledPencil","onClick","console","error","message","type","pathname","search","stringify","styled","Pencil","CloneAction","canCreate","autoClone","useDocumentActions","prohibitedFields","setProhibitedFields","React","useState","StyledDuplicate","res","sourceId","locale","i18n","data","isBaseQueryError","details","dialog","title","content","AutoCloneFailureModalBody","footer","onClose","_jsxs","Modal","Footer","Button","LinkButton","tag","NavLink","to","Duplicate","DEFAULT_TABLE_ROW_ACTIONS"],"mappings":"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"}
@@ -105,6 +105,7 @@ const CloneAction = ({ model, documentId })=>{
105
105
  const { toggleNotification } = useNotification();
106
106
  const { autoClone } = useDocumentActions();
107
107
  const [prohibitedFields, setProhibitedFields] = React.useState([]);
108
+ const [{ query }] = useQueryParams();
108
109
  return {
109
110
  disabled: !canCreate,
110
111
  icon: /*#__PURE__*/ jsx(StyledDuplicate, {}),
@@ -127,10 +128,16 @@ const CloneAction = ({ model, documentId })=>{
127
128
  }
128
129
  const res = await autoClone({
129
130
  model,
130
- sourceId: documentId
131
+ sourceId: documentId,
132
+ locale: query.plugins?.i18n?.locale
131
133
  });
132
134
  if ('data' in res) {
133
- navigate(res.data.documentId);
135
+ navigate({
136
+ pathname: res.data.documentId,
137
+ search: stringify({
138
+ plugins: query.plugins
139
+ })
140
+ });
134
141
  /**
135
142
  * We return true because we don't need to show a modal anymore.
136
143
  */ return true;
@@ -163,7 +170,10 @@ const CloneAction = ({ model, documentId })=>{
163
170
  /*#__PURE__*/ jsx(LinkButton, {
164
171
  tag: NavLink,
165
172
  to: {
166
- pathname: `clone/${documentId}`
173
+ pathname: `clone/${documentId}`,
174
+ search: stringify({
175
+ plugins: query.plugins
176
+ })
167
177
  },
168
178
  children: formatMessage({
169
179
  id: 'content-manager.containers.list.autoCloneModal.create',
@@ -1 +1 @@
1
- {"version":3,"file":"TableActions.mjs","sources":["../../../../../admin/src/pages/ListView/components/TableActions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useNotification,\n useStrapiApp,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, LinkButton, Modal } from '@strapi/design-system';\nimport { Duplicate, Pencil } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { Document, useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { isBaseQueryError } from '../../../utils/api';\nimport { DocumentActionsMenu } from '../../EditView/components/DocumentActions';\n\nimport { AutoCloneFailureModalBody } from './AutoCloneFailureModal';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n DocumentActionProps,\n} from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * TableActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableActionsProps {\n document: Document;\n}\n\nconst TableActions = ({ document }: TableActionsProps) => {\n const { formatMessage } = useIntl();\n const { model, collectionType } = useDoc();\n const plugins = useStrapiApp('TableActions', (state) => state.plugins);\n\n const props: DocumentActionProps = {\n activeTab: null,\n model,\n documentId: document.documentId,\n collectionType,\n document,\n };\n\n return (\n <DescriptionComponentRenderer\n props={props}\n descriptions={(plugins['content-manager'].apis as ContentManagerPlugin['config']['apis'])\n .getDocumentActions('table-row')\n // We explicitly remove the PublishAction from description so we never render it and we don't make unnecessary requests.\n .filter((action) => action.name !== 'PublishAction')}\n >\n {(actions) => {\n const tableRowActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('table-row');\n });\n\n return (\n <DocumentActionsMenu\n actions={tableRowActions}\n label={formatMessage({\n id: 'content-manager.containers.list.table.row-actions',\n defaultMessage: 'Row actions',\n })}\n variant=\"ghost\"\n />\n );\n }}\n </DescriptionComponentRenderer>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditAction: DocumentActionComponent = ({ documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canRead } = useDocumentRBAC('EditAction', ({ canRead }) => ({ canRead }));\n const { toggleNotification } = useNotification();\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n\n return {\n disabled: !canRead,\n icon: <StyledPencil />,\n label: formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to edit a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.edit.error',\n defaultMessage: 'An error occurred while trying to edit the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n navigate({\n pathname: documentId,\n search: stringify({\n plugins: query.plugins,\n }),\n });\n },\n };\n};\n\nEditAction.type = 'edit';\nEditAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledPencil = styled(Pencil)`\n path {\n fill: currentColor;\n }\n`;\n\nconst CloneAction: DocumentActionComponent = ({ model, documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canCreate } = useDocumentRBAC('CloneAction', ({ canCreate }) => ({ canCreate }));\n const { toggleNotification } = useNotification();\n const { autoClone } = useDocumentActions();\n const [prohibitedFields, setProhibitedFields] = React.useState<ProhibitedCloningField[]>([]);\n\n return {\n disabled: !canCreate,\n icon: <StyledDuplicate />,\n label: formatMessage({\n id: 'content-manager.actions.clone.label',\n defaultMessage: 'Duplicate',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to clone a document in the table without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.clone.error',\n defaultMessage: 'An error occurred while trying to clone the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await autoClone({ model, sourceId: documentId });\n\n if ('data' in res) {\n navigate(res.data.documentId);\n\n /**\n * We return true because we don't need to show a modal anymore.\n */\n return true;\n }\n\n if (\n isBaseQueryError(res.error) &&\n res.error.details &&\n typeof res.error.details === 'object' &&\n 'prohibitedFields' in res.error.details &&\n Array.isArray(res.error.details.prohibitedFields)\n ) {\n const prohibitedFields = res.error.details.prohibitedFields as ProhibitedCloningField[];\n\n setProhibitedFields(prohibitedFields);\n }\n },\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.header',\n defaultMessage: 'Duplicate',\n }),\n content: <AutoCloneFailureModalBody prohibitedFields={prohibitedFields} />,\n footer: ({ onClose }) => {\n return (\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <LinkButton\n tag={NavLink}\n to={{\n pathname: `clone/${documentId}`,\n }}\n >\n {formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.create',\n defaultMessage: 'Create',\n })}\n </LinkButton>\n </Modal.Footer>\n );\n },\n },\n };\n};\n\nCloneAction.type = 'clone';\nCloneAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledDuplicate = styled(Duplicate)`\n path {\n fill: currentColor;\n }\n`;\n\nconst DEFAULT_TABLE_ROW_ACTIONS = [EditAction, CloneAction];\n\nexport { TableActions, DEFAULT_TABLE_ROW_ACTIONS };\n"],"names":["TableActions","document","formatMessage","useIntl","model","collectionType","useDoc","plugins","useStrapiApp","state","props","activeTab","documentId","_jsx","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","filter","action","name","actions","tableRowActions","positions","Array","isArray","position","includes","DocumentActionsMenu","label","id","defaultMessage","variant","EditAction","navigate","useNavigate","canRead","useDocumentRBAC","toggleNotification","useNotification","query","useQueryParams","disabled","icon","StyledPencil","onClick","console","error","message","type","pathname","search","stringify","styled","Pencil","CloneAction","canCreate","autoClone","useDocumentActions","prohibitedFields","setProhibitedFields","React","useState","StyledDuplicate","res","sourceId","data","isBaseQueryError","details","dialog","title","content","AutoCloneFailureModalBody","footer","onClose","_jsxs","Modal","Footer","Button","LinkButton","tag","NavLink","to","Duplicate","DEFAULT_TABLE_ROW_ACTIONS"],"mappings":"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"}
1
+ {"version":3,"file":"TableActions.mjs","sources":["../../../../../admin/src/pages/ListView/components/TableActions.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useNotification,\n useStrapiApp,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Button, LinkButton, Modal } from '@strapi/design-system';\nimport { Duplicate, Pencil } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { Document, useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { isBaseQueryError } from '../../../utils/api';\nimport { DocumentActionsMenu } from '../../EditView/components/DocumentActions';\n\nimport { AutoCloneFailureModalBody } from './AutoCloneFailureModal';\n\nimport type { ProhibitedCloningField } from '../../../../../shared/contracts/collection-types';\nimport type {\n ContentManagerPlugin,\n DocumentActionComponent,\n DocumentActionProps,\n} from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * TableActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableActionsProps {\n document: Document;\n}\n\nconst TableActions = ({ document }: TableActionsProps) => {\n const { formatMessage } = useIntl();\n const { model, collectionType } = useDoc();\n const plugins = useStrapiApp('TableActions', (state) => state.plugins);\n\n const props: DocumentActionProps = {\n activeTab: null,\n model,\n documentId: document.documentId,\n collectionType,\n document,\n };\n\n return (\n <DescriptionComponentRenderer\n props={props}\n descriptions={(plugins['content-manager'].apis as ContentManagerPlugin['config']['apis'])\n .getDocumentActions('table-row')\n // We explicitly remove the PublishAction from description so we never render it and we don't make unnecessary requests.\n .filter((action) => action.name !== 'PublishAction')}\n >\n {(actions) => {\n const tableRowActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('table-row');\n });\n\n return (\n <DocumentActionsMenu\n actions={tableRowActions}\n label={formatMessage({\n id: 'content-manager.containers.list.table.row-actions',\n defaultMessage: 'Row actions',\n })}\n variant=\"ghost\"\n />\n );\n }}\n </DescriptionComponentRenderer>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditAction: DocumentActionComponent = ({ documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canRead } = useDocumentRBAC('EditAction', ({ canRead }) => ({ canRead }));\n const { toggleNotification } = useNotification();\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n\n return {\n disabled: !canRead,\n icon: <StyledPencil />,\n label: formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to edit a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.edit.error',\n defaultMessage: 'An error occurred while trying to edit the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n navigate({\n pathname: documentId,\n search: stringify({\n plugins: query.plugins,\n }),\n });\n },\n };\n};\n\nEditAction.type = 'edit';\nEditAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledPencil = styled(Pencil)`\n path {\n fill: currentColor;\n }\n`;\n\nconst CloneAction: DocumentActionComponent = ({ model, documentId }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { canCreate } = useDocumentRBAC('CloneAction', ({ canCreate }) => ({ canCreate }));\n const { toggleNotification } = useNotification();\n const { autoClone } = useDocumentActions();\n const [prohibitedFields, setProhibitedFields] = React.useState<ProhibitedCloningField[]>([]);\n const [{ query }] = useQueryParams<{ plugins?: Record<string, any> }>();\n\n return {\n disabled: !canCreate,\n icon: <StyledDuplicate />,\n label: formatMessage({\n id: 'content-manager.actions.clone.label',\n defaultMessage: 'Duplicate',\n }),\n position: 'table-row',\n onClick: async () => {\n if (!documentId) {\n console.error(\n \"You're trying to clone a document in the table without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.clone.error',\n defaultMessage: 'An error occurred while trying to clone the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await autoClone({\n model,\n sourceId: documentId,\n locale: query.plugins?.i18n?.locale,\n });\n\n if ('data' in res) {\n navigate({\n pathname: res.data.documentId,\n search: stringify({\n plugins: query.plugins,\n }),\n });\n\n /**\n * We return true because we don't need to show a modal anymore.\n */\n return true;\n }\n\n if (\n isBaseQueryError(res.error) &&\n res.error.details &&\n typeof res.error.details === 'object' &&\n 'prohibitedFields' in res.error.details &&\n Array.isArray(res.error.details.prohibitedFields)\n ) {\n const prohibitedFields = res.error.details.prohibitedFields as ProhibitedCloningField[];\n\n setProhibitedFields(prohibitedFields);\n }\n },\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.header',\n defaultMessage: 'Duplicate',\n }),\n content: <AutoCloneFailureModalBody prohibitedFields={prohibitedFields} />,\n footer: ({ onClose }) => {\n return (\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <LinkButton\n tag={NavLink}\n to={{\n pathname: `clone/${documentId}`,\n search: stringify({\n plugins: query.plugins,\n }),\n }}\n >\n {formatMessage({\n id: 'content-manager.containers.list.autoCloneModal.create',\n defaultMessage: 'Create',\n })}\n </LinkButton>\n </Modal.Footer>\n );\n },\n },\n };\n};\n\nCloneAction.type = 'clone';\nCloneAction.position = 'table-row';\n\n/**\n * Because the icon system is completely broken, we have to do\n * this to remove the fill from the cog.\n */\nconst StyledDuplicate = styled(Duplicate)`\n path {\n fill: currentColor;\n }\n`;\n\nconst DEFAULT_TABLE_ROW_ACTIONS = [EditAction, CloneAction];\n\nexport { TableActions, DEFAULT_TABLE_ROW_ACTIONS };\n"],"names":["TableActions","document","formatMessage","useIntl","model","collectionType","useDoc","plugins","useStrapiApp","state","props","activeTab","documentId","_jsx","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","filter","action","name","actions","tableRowActions","positions","Array","isArray","position","includes","DocumentActionsMenu","label","id","defaultMessage","variant","EditAction","navigate","useNavigate","canRead","useDocumentRBAC","toggleNotification","useNotification","query","useQueryParams","disabled","icon","StyledPencil","onClick","console","error","message","type","pathname","search","stringify","styled","Pencil","CloneAction","canCreate","autoClone","useDocumentActions","prohibitedFields","setProhibitedFields","React","useState","StyledDuplicate","res","sourceId","locale","i18n","data","isBaseQueryError","details","dialog","title","content","AutoCloneFailureModalBody","footer","onClose","_jsxs","Modal","Footer","Button","LinkButton","tag","NavLink","to","Duplicate","DEFAULT_TABLE_ROW_ACTIONS"],"mappings":";;;;;;;;;;;;;;;;AAsCA,MAAMA,YAAe,GAAA,CAAC,EAAEC,QAAQ,EAAqB,GAAA;IACnD,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAE,GAAGC,MAAAA,EAAAA;AAClC,IAAA,MAAMC,UAAUC,YAAa,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMF,OAAO,CAAA;AAErE,IAAA,MAAMG,KAA6B,GAAA;QACjCC,SAAW,EAAA,IAAA;AACXP,QAAAA,KAAAA;AACAQ,QAAAA,UAAAA,EAAYX,SAASW,UAAU;AAC/BP,QAAAA,cAAAA;AACAJ,QAAAA;AACF,KAAA;AAEA,IAAA,qBACEY,GAACC,CAAAA,4BAAAA,EAAAA;QACCJ,KAAOA,EAAAA,KAAAA;QACPK,YAAc,EAACR,OAAO,CAAC,iBAAkB,CAAA,CAACS,IAAI,CAC3CC,kBAAkB,CAAC,WAAA,CACpB;AACCC,SAAAA,MAAM,CAAC,CAACC,MAAWA,GAAAA,MAAAA,CAAOC,IAAI,KAAK,eAAA,CAAA;kBAErC,CAACC,OAAAA,GAAAA;AACA,YAAA,MAAMC,eAAkBD,GAAAA,OAAAA,CAAQH,MAAM,CAAC,CAACC,MAAAA,GAAAA;gBACtC,MAAMI,SAAAA,GAAYC,MAAMC,OAAO,CAACN,OAAOO,QAAQ,CAAA,GAAIP,MAAOO,CAAAA,QAAQ,GAAG;AAACP,oBAAAA,MAAAA,CAAOO;AAAS,iBAAA;gBACtF,OAAOH,SAAAA,CAAUI,QAAQ,CAAC,WAAA,CAAA;AAC5B,aAAA,CAAA;AAEA,YAAA,qBACEd,GAACe,CAAAA,mBAAAA,EAAAA;gBACCP,OAASC,EAAAA,eAAAA;AACTO,gBAAAA,KAAAA,EAAO3B,aAAc,CAAA;oBACnB4B,EAAI,EAAA,mDAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAC,OAAQ,EAAA;;AAGd;;AAGN;AAEA;;AAEkG,qGAElG,MAAMC,UAAAA,GAAsC,CAAC,EAAErB,UAAU,EAAE,GAAA;AACzD,IAAA,MAAMsB,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,EAAEjC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEiC,OAAO,EAAE,GAAGC,eAAAA,CAAgB,YAAc,EAAA,CAAC,EAAED,OAAO,EAAE,IAAM;AAAEA,YAAAA;SAAQ,CAAA,CAAA;IAC9E,MAAM,EAAEE,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IAEpB,OAAO;AACLC,QAAAA,QAAAA,EAAU,CAACN,OAAAA;AACXO,QAAAA,IAAAA,gBAAM9B,GAAC+B,CAAAA,YAAAA,EAAAA,EAAAA,CAAAA;AACPf,QAAAA,KAAAA,EAAO3B,aAAc,CAAA;YACnB4B,EAAI,EAAA,oCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAL,QAAU,EAAA,WAAA;QACVmB,OAAS,EAAA,UAAA;AACP,YAAA,IAAI,CAACjC,UAAY,EAAA;AACfkC,gBAAAA,OAAAA,CAAQC,KAAK,CACX,yGAAA,CAAA;gBAGFT,kBAAmB,CAAA;AACjBU,oBAAAA,OAAAA,EAAS9C,aAAc,CAAA;wBACrB4B,EAAI,EAAA,oCAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAkB,IAAM,EAAA;AACR,iBAAA,CAAA;AAEA,gBAAA;AACF;YAEAf,QAAS,CAAA;gBACPgB,QAAUtC,EAAAA,UAAAA;AACVuC,gBAAAA,MAAAA,EAAQC,SAAU,CAAA;AAChB7C,oBAAAA,OAAAA,EAASiC,MAAMjC;AACjB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAA;AAEA0B,UAAAA,CAAWgB,IAAI,GAAG,MAAA;AAClBhB,UAAAA,CAAWP,QAAQ,GAAG,WAAA;AAEtB;;;AAGC,IACD,MAAMkB,YAAAA,GAAeS,MAAOC,CAAAA,MAAAA,CAAO;;;;AAInC,CAAC;AAED,MAAMC,cAAuC,CAAC,EAAEnD,KAAK,EAAEQ,UAAU,EAAE,GAAA;AACjE,IAAA,MAAMsB,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,EAAEjC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEqD,SAAS,EAAE,GAAGnB,eAAAA,CAAgB,aAAe,EAAA,CAAC,EAAEmB,SAAS,EAAE,IAAM;AAAEA,YAAAA;SAAU,CAAA,CAAA;IACrF,MAAM,EAAElB,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEkB,SAAS,EAAE,GAAGC,kBAAAA,EAAAA;AACtB,IAAA,MAAM,CAACC,gBAAkBC,EAAAA,mBAAAA,CAAoB,GAAGC,KAAMC,CAAAA,QAAQ,CAA2B,EAAE,CAAA;AAC3F,IAAA,MAAM,CAAC,EAAEtB,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IAEpB,OAAO;AACLC,QAAAA,QAAAA,EAAU,CAACc,SAAAA;AACXb,QAAAA,IAAAA,gBAAM9B,GAACkD,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;AACPlC,QAAAA,KAAAA,EAAO3B,aAAc,CAAA;YACnB4B,EAAI,EAAA,qCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAL,QAAU,EAAA,WAAA;QACVmB,OAAS,EAAA,UAAA;AACP,YAAA,IAAI,CAACjC,UAAY,EAAA;AACfkC,gBAAAA,OAAAA,CAAQC,KAAK,CACX,uHAAA,CAAA;gBAGFT,kBAAmB,CAAA;AACjBU,oBAAAA,OAAAA,EAAS9C,aAAc,CAAA;wBACrB4B,EAAI,EAAA,qCAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAkB,IAAM,EAAA;AACR,iBAAA,CAAA;AAEA,gBAAA;AACF;YAEA,MAAMe,GAAAA,GAAM,MAAMP,SAAU,CAAA;AAC1BrD,gBAAAA,KAAAA;gBACA6D,QAAUrD,EAAAA,UAAAA;gBACVsD,MAAQ1B,EAAAA,KAAAA,CAAMjC,OAAO,EAAE4D,IAAMD,EAAAA;AAC/B,aAAA,CAAA;AAEA,YAAA,IAAI,UAAUF,GAAK,EAAA;gBACjB9B,QAAS,CAAA;oBACPgB,QAAUc,EAAAA,GAAAA,CAAII,IAAI,CAACxD,UAAU;AAC7BuC,oBAAAA,MAAAA,EAAQC,SAAU,CAAA;AAChB7C,wBAAAA,OAAAA,EAASiC,MAAMjC;AACjB,qBAAA;AACF,iBAAA,CAAA;AAEA;;AAEC,YACD,OAAO,IAAA;AACT;AAEA,YAAA,IACE8D,gBAAiBL,CAAAA,GAAAA,CAAIjB,KAAK,CAAA,IAC1BiB,GAAIjB,CAAAA,KAAK,CAACuB,OAAO,IACjB,OAAON,GAAIjB,CAAAA,KAAK,CAACuB,OAAO,KAAK,QAC7B,IAAA,kBAAA,IAAsBN,GAAIjB,CAAAA,KAAK,CAACuB,OAAO,IACvC9C,KAAMC,CAAAA,OAAO,CAACuC,GAAAA,CAAIjB,KAAK,CAACuB,OAAO,CAACX,gBAAgB,CAChD,EAAA;AACA,gBAAA,MAAMA,mBAAmBK,GAAIjB,CAAAA,KAAK,CAACuB,OAAO,CAACX,gBAAgB;gBAE3DC,mBAAoBD,CAAAA,gBAAAA,CAAAA;AACtB;AACF,SAAA;QACAY,MAAQ,EAAA;YACNtB,IAAM,EAAA,OAAA;AACNuB,YAAAA,KAAAA,EAAOtE,aAAc,CAAA;gBACnB4B,EAAI,EAAA,uDAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA;AACA0C,YAAAA,OAAAA,gBAAS5D,GAAC6D,CAAAA,yBAAAA,EAAAA;gBAA0Bf,gBAAkBA,EAAAA;;YACtDgB,MAAQ,EAAA,CAAC,EAAEC,OAAO,EAAE,GAAA;gBAClB,qBACEC,IAAA,CAACC,MAAMC,MAAM,EAAA;;sCACXlE,GAACmE,CAAAA,MAAAA,EAAAA;4BAAOnC,OAAS+B,EAAAA,OAAAA;4BAAS5C,OAAQ,EAAA,UAAA;sCAC/B9B,aAAc,CAAA;gCACb4B,EAAI,EAAA,QAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA;;sCAEFlB,GAACoE,CAAAA,UAAAA,EAAAA;4BACCC,GAAKC,EAAAA,OAAAA;4BACLC,EAAI,EAAA;AACFlC,gCAAAA,QAAAA,EAAU,CAAC,MAAM,EAAEtC,UAAAA,CAAW,CAAC;AAC/BuC,gCAAAA,MAAAA,EAAQC,SAAU,CAAA;AAChB7C,oCAAAA,OAAAA,EAASiC,MAAMjC;AACjB,iCAAA;AACF,6BAAA;sCAECL,aAAc,CAAA;gCACb4B,EAAI,EAAA,uDAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA;;;;AAIR;AACF;AACF,KAAA;AACF,CAAA;AAEAwB,WAAAA,CAAYN,IAAI,GAAG,OAAA;AACnBM,WAAAA,CAAY7B,QAAQ,GAAG,WAAA;AAEvB;;;AAGC,IACD,MAAMqC,eAAAA,GAAkBV,MAAOgC,CAAAA,SAAAA,CAAU;;;;AAIzC,CAAC;AAED,MAAMC,yBAA4B,GAAA;AAACrD,IAAAA,UAAAA;AAAYsB,IAAAA;AAAY;;;;"}
@@ -12,7 +12,8 @@ const contentManagerApi = strapiAdmin.adminApi.enhanceEndpoints({
12
12
  'HistoryVersion',
13
13
  'Relations',
14
14
  'UidAvailability',
15
- 'RecentDocumentList'
15
+ 'RecentDocumentList',
16
+ 'GuidedTourMeta'
16
17
  ]
17
18
  });
18
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;;;AAEMA,MAAAA,iBAAAA,GAAoBC,oBAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"api.js","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n 'GuidedTourMeta',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;;;AAEMA,MAAAA,iBAAAA,GAAoBC,oBAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA,oBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
@@ -10,7 +10,8 @@ const contentManagerApi = adminApi.enhanceEndpoints({
10
10
  'HistoryVersion',
11
11
  'Relations',
12
12
  'UidAvailability',
13
- 'RecentDocumentList'
13
+ 'RecentDocumentList',
14
+ 'GuidedTourMeta'
14
15
  ]
15
16
  });
16
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;AAEMA,MAAAA,iBAAAA,GAAoBC,QAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"api.mjs","sources":["../../../admin/src/services/api.ts"],"sourcesContent":["import { adminApi } from '@strapi/admin/strapi-admin';\n\nconst contentManagerApi = adminApi.enhanceEndpoints({\n addTagTypes: [\n 'ComponentConfiguration',\n 'ContentTypesConfiguration',\n 'ContentTypeSettings',\n 'Document',\n 'InitialData',\n 'HistoryVersion',\n 'Relations',\n 'UidAvailability',\n 'RecentDocumentList',\n 'GuidedTourMeta',\n ],\n});\n\nexport { contentManagerApi };\n"],"names":["contentManagerApi","adminApi","enhanceEndpoints","addTagTypes"],"mappings":";;AAEMA,MAAAA,iBAAAA,GAAoBC,QAASC,CAAAA,gBAAgB,CAAC;IAClDC,WAAa,EAAA;AACX,QAAA,wBAAA;AACA,QAAA,2BAAA;AACA,QAAA,qBAAA;AACA,QAAA,UAAA;AACA,QAAA,aAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA;AACA,QAAA,iBAAA;AACA,QAAA,oBAAA;AACA,QAAA;AACD;AACH,CAAA;;;;"}
@@ -8,11 +8,11 @@ const documentApi = api.contentManagerApi.injectEndpoints({
8
8
  overrideExisting: true,
9
9
  endpoints: (builder)=>({
10
10
  autoCloneDocument: builder.mutation({
11
- query: ({ model, sourceId, query })=>({
11
+ query: ({ model, sourceId, params })=>({
12
12
  url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,
13
13
  method: 'POST',
14
14
  config: {
15
- params: query
15
+ params
16
16
  }
17
17
  }),
18
18
  invalidatesTags: (_result, error, { model })=>{
@@ -260,7 +260,8 @@ const documentApi = api.contentManagerApi.injectEndpoints({
260
260
  id: `${model}_LIST`
261
261
  },
262
262
  'Relations',
263
- 'RecentDocumentList'
263
+ 'RecentDocumentList',
264
+ 'GuidedTourMeta'
264
265
  ];
265
266
  }
266
267
  }),
@@ -298,7 +299,6 @@ const documentApi = api.contentManagerApi.injectEndpoints({
298
299
  type: 'UidAvailability',
299
300
  id: model
300
301
  },
301
- 'RecentDocumentList',
302
302
  'RecentDocumentList'
303
303
  ];
304
304
  },
@@ -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<Clone.Response, Clone.Params & { query?: string }>({\n query: ({ model, sourceId, query }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params: query,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [{ type: 'Document', id: `${model}_LIST` }, 'RecentDocumentList'];\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 ],\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 ],\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 }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n 'RecentDocumentList',\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 ],\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]: any;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: documentId\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 ];\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]: any;\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: documentId\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 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}${documentId ? `/${documentId}` : ''}`,\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: documentId\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 ];\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 documentIds.map((id) => ({ type: 'Document', id: `${model}_${id}` })),\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}${documentId ? `/${documentId}` : ''}`,\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 'RecentDocumentList',\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: documentId\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 ];\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 ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\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 useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useLazyGetDraftRelationCountQuery as useGetDraftRelationCountQuery,\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","url","method","config","params","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","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","documentIds","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetDocumentQuery","useGetDocumentQuery","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';\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 [{ type: 'Document', id: `${model}_LIST` }, 'RecentDocumentList'];\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 ],\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 ],\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 }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n 'RecentDocumentList',\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 ],\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]: any;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: documentId\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 ];\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]: any;\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: documentId\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 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}${documentId ? `/${documentId}` : ''}`,\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: documentId\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 'GuidedTourMeta',\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 documentIds.map((id) => ({ type: 'Document', id: `${model}_${id}` })),\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}${documentId ? `/${documentId}` : ''}`,\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 ];\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: documentId\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 ];\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 ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\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 useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useLazyGetDraftRelationCountQuery as useGetDraftRelationCountQuery,\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","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","documentIds","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
@@ -6,11 +6,11 @@ const documentApi = contentManagerApi.injectEndpoints({
6
6
  overrideExisting: true,
7
7
  endpoints: (builder)=>({
8
8
  autoCloneDocument: builder.mutation({
9
- query: ({ model, sourceId, query })=>({
9
+ query: ({ model, sourceId, params })=>({
10
10
  url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,
11
11
  method: 'POST',
12
12
  config: {
13
- params: query
13
+ params
14
14
  }
15
15
  }),
16
16
  invalidatesTags: (_result, error, { model })=>{
@@ -258,7 +258,8 @@ const documentApi = contentManagerApi.injectEndpoints({
258
258
  id: `${model}_LIST`
259
259
  },
260
260
  'Relations',
261
- 'RecentDocumentList'
261
+ 'RecentDocumentList',
262
+ 'GuidedTourMeta'
262
263
  ];
263
264
  }
264
265
  }),
@@ -296,7 +297,6 @@ const documentApi = contentManagerApi.injectEndpoints({
296
297
  type: 'UidAvailability',
297
298
  id: model
298
299
  },
299
- 'RecentDocumentList',
300
300
  'RecentDocumentList'
301
301
  ];
302
302
  },
@@ -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<Clone.Response, Clone.Params & { query?: string }>({\n query: ({ model, sourceId, query }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params: query,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [{ type: 'Document', id: `${model}_LIST` }, 'RecentDocumentList'];\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 ],\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 ],\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 }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n 'RecentDocumentList',\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 ],\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]: any;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: documentId\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 ];\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]: any;\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: documentId\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 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}${documentId ? `/${documentId}` : ''}`,\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: documentId\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 ];\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 documentIds.map((id) => ({ type: 'Document', id: `${model}_${id}` })),\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}${documentId ? `/${documentId}` : ''}`,\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 'RecentDocumentList',\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: documentId\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 ];\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 ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\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 useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useLazyGetDraftRelationCountQuery as useGetDraftRelationCountQuery,\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","url","method","config","params","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","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","documentIds","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetDocumentQuery","useGetDocumentQuery","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';\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 [{ type: 'Document', id: `${model}_LIST` }, 'RecentDocumentList'];\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 ],\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 ],\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 }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n 'RecentDocumentList',\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 ],\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]: any;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: documentId\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 ];\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]: any;\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: documentId\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 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}${documentId ? `/${documentId}` : ''}`,\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: documentId\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 'GuidedTourMeta',\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 documentIds.map((id) => ({ type: 'Document', id: `${model}_${id}` })),\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}${documentId ? `/${documentId}` : ''}`,\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 ];\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: documentId\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 ];\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 ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\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 useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useLazyGetDraftRelationCountQuery as useGetDraftRelationCountQuery,\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","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","documentIds","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}