@strapi/content-manager 5.61.0 → 5.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ConfigurationForm/Fields.js +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
- package/dist/admin/components/ConfigurationForm/Fields.mjs +3 -3
- package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
- package/dist/admin/features/I18nSharedFieldsLock.js +54 -0
- package/dist/admin/features/I18nSharedFieldsLock.js.map +1 -0
- package/dist/admin/features/I18nSharedFieldsLock.mjs +31 -0
- package/dist/admin/features/I18nSharedFieldsLock.mjs.map +1 -0
- package/dist/admin/history/components/VersionInputRenderer.js +7 -2
- package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
- package/dist/admin/history/components/VersionInputRenderer.mjs +7 -3
- package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.js +27 -8
- package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.mjs +29 -10
- package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
- package/dist/admin/hooks/useDocument.js +11 -13
- package/dist/admin/hooks/useDocument.js.map +1 -1
- package/dist/admin/hooks/useDocument.mjs +11 -13
- package/dist/admin/hooks/useDocument.mjs.map +1 -1
- package/dist/admin/hooks/useI18nFieldLock.js +169 -0
- package/dist/admin/hooks/useI18nFieldLock.js.map +1 -0
- package/dist/admin/hooks/useI18nFieldLock.mjs +140 -0
- package/dist/admin/hooks/useI18nFieldLock.mjs.map +1 -0
- package/dist/admin/hooks/usePersistentQueryParams.js +16 -3
- package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
- package/dist/admin/hooks/usePersistentQueryParams.mjs +16 -3
- package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -1
- package/dist/admin/index.js +5 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/modules/app.js +8 -1
- package/dist/admin/modules/app.js.map +1 -1
- package/dist/admin/modules/app.mjs +8 -2
- package/dist/admin/modules/app.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +129 -127
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +129 -127
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +11 -4
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +12 -5
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +31 -21
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +32 -22
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.js +98 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.mjs +96 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/AddComponentMenu.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.js +1103 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.mjs +1077 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/ComponentCopyModal.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.js +211 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.mjs +183 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/CopiedComponents.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js +84 -41
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs +86 -43
- package/dist/admin/pages/EditView/components/FormInputs/Component/Initializer.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +86 -20
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +89 -23
- package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +5 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +5 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +142 -22
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +143 -23
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.js +402 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.js.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.mjs +389 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/utils/componentCopy.mjs.map +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +84 -33
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +85 -34
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs +5 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +17 -4
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +18 -5
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +54 -6
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +54 -6
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +11 -9
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +12 -10
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +9 -4
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +9 -4
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +66 -63
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +66 -63
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +7 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +7 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/data.js +14 -9
- package/dist/admin/pages/EditView/utils/data.js.map +1 -1
- package/dist/admin/pages/EditView/utils/data.mjs +14 -9
- package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
- package/dist/admin/pages/EditView/utils/forms.js +34 -0
- package/dist/admin/pages/EditView/utils/forms.js.map +1 -1
- package/dist/admin/pages/EditView/utils/forms.mjs +34 -1
- package/dist/admin/pages/EditView/utils/forms.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +2 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs +2 -1
- package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +7 -6
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs +7 -6
- package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +11 -2
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +13 -4
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.js +15 -5
- package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
- package/dist/admin/pages/ListView/components/Filters.mjs +16 -7
- package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
- package/dist/admin/preview/components/InputPopover.js +18 -8
- package/dist/admin/preview/components/InputPopover.js.map +1 -1
- package/dist/admin/preview/components/InputPopover.mjs +19 -9
- package/dist/admin/preview/components/InputPopover.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +5 -16
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +5 -16
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/preview/utils/fieldUtils.js +2 -0
- package/dist/admin/preview/utils/fieldUtils.js.map +1 -1
- package/dist/admin/preview/utils/fieldUtils.mjs +2 -1
- package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -1
- package/dist/admin/services/api.js +2 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs +2 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/services/documents.js +21 -1
- package/dist/admin/services/documents.js.map +1 -1
- package/dist/admin/services/documents.mjs +21 -2
- package/dist/admin/services/documents.mjs.map +1 -1
- package/dist/admin/services/relations.js +47 -1
- package/dist/admin/services/relations.js.map +1 -1
- package/dist/admin/services/relations.mjs +47 -2
- package/dist/admin/services/relations.mjs.map +1 -1
- package/dist/admin/src/exports.d.ts +2 -0
- package/dist/admin/src/features/I18nSharedFieldsLock.d.ts +22 -0
- package/dist/admin/src/history/components/VersionInputRenderer.d.ts +7 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useI18nFieldLock.d.ts +61 -0
- package/dist/admin/src/modules/app.d.ts +4 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/AddComponentMenu.d.ts +15 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/ComponentCopyModal.d.ts +58 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/CopiedComponents.d.ts +41 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Initializer.d.ts +7 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/Repeatable.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Component/utils/componentCopy.d.ts +115 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +6 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.d.ts +2 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +5 -1
- package/dist/admin/src/pages/EditView/utils/forms.d.ts +13 -2
- package/dist/admin/src/pages/ListView/components/Filters.d.ts +12 -3
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/preview/utils/fieldUtils.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +25 -21
- package/dist/admin/src/services/homepage.d.ts +1 -1
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +5 -3
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/translations/en.json.js +41 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +41 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/server/controllers/relations.js +4 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +4 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/utils/metadata.js +3 -1
- package/dist/server/controllers/utils/metadata.js.map +1 -1
- package/dist/server/controllers/utils/metadata.mjs +3 -1
- package/dist/server/controllers/utils/metadata.mjs.map +1 -1
- package/dist/server/history/services/utils.js +3 -1
- package/dist/server/history/services/utils.js.map +1 -1
- package/dist/server/history/services/utils.mjs +3 -1
- package/dist/server/history/services/utils.mjs.map +1 -1
- package/dist/server/homepage/services/homepage-query-utils.js +14 -0
- package/dist/server/homepage/services/homepage-query-utils.js.map +1 -1
- package/dist/server/homepage/services/homepage-query-utils.mjs +14 -1
- package/dist/server/homepage/services/homepage-query-utils.mjs.map +1 -1
- package/dist/server/homepage/services/homepage.js +1 -1
- package/dist/server/homepage/services/homepage.js.map +1 -1
- package/dist/server/homepage/services/homepage.mjs +2 -2
- package/dist/server/homepage/services/homepage.mjs.map +1 -1
- package/dist/server/mcp/sanitizers/shape-relations.js +1 -3
- package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -1
- package/dist/server/mcp/sanitizers/shape-relations.mjs +1 -3
- package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.js +2 -1
- package/dist/server/mcp/schemas/output-schemas.js.map +1 -1
- package/dist/server/mcp/schemas/output-schemas.mjs +2 -1
- package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -1
- package/dist/server/services/document-manager.js +3 -2
- package/dist/server/services/document-manager.js.map +1 -1
- package/dist/server/services/document-manager.mjs +3 -2
- package/dist/server/services/document-manager.mjs.map +1 -1
- package/dist/server/services/document-metadata.js +92 -4
- package/dist/server/services/document-metadata.js.map +1 -1
- package/dist/server/services/document-metadata.mjs +92 -4
- package/dist/server/services/document-metadata.mjs.map +1 -1
- package/dist/server/services/permission-checker.js +20 -8
- package/dist/server/services/permission-checker.js.map +1 -1
- package/dist/server/services/permission-checker.mjs +20 -8
- package/dist/server/services/permission-checker.mjs.map +1 -1
- package/dist/server/services/uid.js +2 -1
- package/dist/server/services/uid.js.map +1 -1
- package/dist/server/services/uid.mjs +2 -1
- package/dist/server/services/uid.mjs.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts +6 -0
- package/dist/server/src/homepage/services/homepage-query-utils.d.ts.map +1 -1
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +21 -7
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -1
- package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts +5 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +21 -7
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts +6 -5
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/dist/server/src/services/uid.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +7 -0
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/dist/shared/contracts/single-types.d.ts +4 -0
- package/dist/shared/contracts/single-types.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -451,10 +451,29 @@ const documentApi = api.contentManagerApi.injectEndpoints({
|
|
|
451
451
|
'CountDocuments',
|
|
452
452
|
'UpcomingReleasesList'
|
|
453
453
|
]
|
|
454
|
+
}),
|
|
455
|
+
/**
|
|
456
|
+
* Used by field-lock on the create view, where document metadata (and
|
|
457
|
+
* `meta.defaultLocale`) is not fetched. Same payload as the i18n plugin's
|
|
458
|
+
* locales list — a separate slice so content-manager does not import `@strapi/i18n`.
|
|
459
|
+
*/ getI18nLocales: builder.query({
|
|
460
|
+
query: ()=>'/i18n/locales',
|
|
461
|
+
// Match the i18n locales query. Settings invalidates each locale id when the
|
|
462
|
+
// default locale changes, not only the LIST tag, so create-view lock stays in sync.
|
|
463
|
+
providesTags: (res)=>[
|
|
464
|
+
{
|
|
465
|
+
type: 'Locale',
|
|
466
|
+
id: 'LIST'
|
|
467
|
+
},
|
|
468
|
+
...Array.isArray(res) ? res.map((locale)=>({
|
|
469
|
+
type: 'Locale',
|
|
470
|
+
id: locale.id
|
|
471
|
+
})) : []
|
|
472
|
+
]
|
|
454
473
|
})
|
|
455
474
|
})
|
|
456
475
|
});
|
|
457
|
-
const { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useLazyGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation } = documentApi;
|
|
476
|
+
const { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useLazyGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useGetI18nLocalesQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation } = documentApi;
|
|
458
477
|
|
|
459
478
|
exports.useAutoCloneDocumentMutation = useAutoCloneDocumentMutation;
|
|
460
479
|
exports.useCloneDocumentMutation = useCloneDocumentMutation;
|
|
@@ -466,6 +485,7 @@ exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
|
|
|
466
485
|
exports.useGetDocumentQuery = useGetDocumentQuery;
|
|
467
486
|
exports.useGetDocumentsForValidationQuery = useGetDocumentsForValidationQuery;
|
|
468
487
|
exports.useGetDraftRelationCountQuery = useGetDraftRelationCountQuery;
|
|
488
|
+
exports.useGetI18nLocalesQuery = useGetI18nLocalesQuery;
|
|
469
489
|
exports.useGetManyDraftRelationCountQuery = useGetManyDraftRelationCountQuery;
|
|
470
490
|
exports.useLazyGetAllDocumentsQuery = useLazyGetAllDocumentsQuery;
|
|
471
491
|
exports.useLazyGetDocumentQuery = useLazyGetDocumentQuery;
|
|
@@ -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';\nimport type { MoveDocument } from '../../../shared/contracts/custom-order';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n /**\n * Places a document right before or after another one in the custom order\n * of its collection type.\n */\n moveDocument: builder.mutation<\n MoveDocument.Response,\n MoveDocument.Params & {\n body: MoveDocument.Request['body'];\n params?: MoveDocument.Request['query'];\n }\n >({\n query: ({ model, id, body, params }) => ({\n url: `/content-manager/collection-types/${model}/${id}/actions/move`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) =>\n error ? [] : [{ type: 'Document', id: `${model}_LIST` }],\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","moveDocument","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","useMoveDocumentMutation","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"documents.js","sources":["../../../admin/src/services/documents.ts"],"sourcesContent":["/**\n * Related to fetching the actual content of a collection type or single type.\n */\nimport { stringify } from 'qs';\n\nimport { SINGLE_TYPES } from '../constants/collections';\n\nimport { contentManagerApi } from './api';\n\nimport type {\n Clone,\n Create,\n Delete,\n Find,\n FindOne,\n BulkDelete,\n BulkPublish,\n BulkUnpublish,\n Discard,\n CountDraftRelations,\n CountManyEntriesDraftRelations,\n Publish,\n Unpublish,\n Update,\n} from '../../../shared/contracts/collection-types';\nimport type { MoveDocument } from '../../../shared/contracts/custom-order';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n /**\n * Places a document right before or after another one in the custom order\n * of its collection type.\n */\n moveDocument: builder.mutation<\n MoveDocument.Response,\n MoveDocument.Params & {\n body: MoveDocument.Request['body'];\n params?: MoveDocument.Request['query'];\n }\n >({\n query: ({ model, id, body, params }) => ({\n url: `/content-manager/collection-types/${model}/${id}/actions/move`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) =>\n error ? [] : [{ type: 'Document', id: `${model}_LIST` }],\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Used by field-lock on the create view, where document metadata (and\n * `meta.defaultLocale`) is not fetched. Same payload as the i18n plugin's\n * locales list — a separate slice so content-manager does not import `@strapi/i18n`.\n */\n getI18nLocales: builder.query<\n Array<{ id: number | string; code: string; isDefault: boolean }>,\n void\n >({\n query: () => '/i18n/locales',\n // Match the i18n locales query. Settings invalidates each locale id when the\n // default locale changes, not only the LIST tag, so create-view lock stays in sync.\n providesTags: (res) => [\n { type: 'Locale', id: 'LIST' },\n ...(Array.isArray(res)\n ? res.map((locale) => ({\n type: 'Locale' as const,\n id: locale.id,\n }))\n : []),\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useGetI18nLocalesQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useGetI18nLocalesQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","moveDocument","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","getI18nLocales","Array","isArray","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useGetI18nLocalesQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","useMoveDocumentMutation","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
|
|
@@ -449,10 +449,29 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
|
449
449
|
'CountDocuments',
|
|
450
450
|
'UpcomingReleasesList'
|
|
451
451
|
]
|
|
452
|
+
}),
|
|
453
|
+
/**
|
|
454
|
+
* Used by field-lock on the create view, where document metadata (and
|
|
455
|
+
* `meta.defaultLocale`) is not fetched. Same payload as the i18n plugin's
|
|
456
|
+
* locales list — a separate slice so content-manager does not import `@strapi/i18n`.
|
|
457
|
+
*/ getI18nLocales: builder.query({
|
|
458
|
+
query: ()=>'/i18n/locales',
|
|
459
|
+
// Match the i18n locales query. Settings invalidates each locale id when the
|
|
460
|
+
// default locale changes, not only the LIST tag, so create-view lock stays in sync.
|
|
461
|
+
providesTags: (res)=>[
|
|
462
|
+
{
|
|
463
|
+
type: 'Locale',
|
|
464
|
+
id: 'LIST'
|
|
465
|
+
},
|
|
466
|
+
...Array.isArray(res) ? res.map((locale)=>({
|
|
467
|
+
type: 'Locale',
|
|
468
|
+
id: locale.id
|
|
469
|
+
})) : []
|
|
470
|
+
]
|
|
452
471
|
})
|
|
453
472
|
})
|
|
454
473
|
});
|
|
455
|
-
const { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useLazyGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation } = documentApi;
|
|
474
|
+
const { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useLazyGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useGetI18nLocalesQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation } = documentApi;
|
|
456
475
|
|
|
457
|
-
export { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useGetDocumentQuery, useGetDocumentsForValidationQuery, useGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useLazyGetAllDocumentsQuery, useLazyGetDocumentQuery, useLazyGetDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation, useUpdateDocumentMutation };
|
|
476
|
+
export { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useGetDocumentQuery, useGetDocumentsForValidationQuery, useGetDraftRelationCountQuery, useGetI18nLocalesQuery, useGetManyDraftRelationCountQuery, useLazyGetAllDocumentsQuery, useLazyGetDocumentQuery, useLazyGetDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation, useUpdateDocumentMutation };
|
|
458
477
|
//# sourceMappingURL=documents.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.mjs","sources":["../../../admin/src/services/documents.ts"],"sourcesContent":["/**\n * Related to fetching the actual content of a collection type or single type.\n */\nimport { stringify } from 'qs';\n\nimport { SINGLE_TYPES } from '../constants/collections';\n\nimport { contentManagerApi } from './api';\n\nimport type {\n Clone,\n Create,\n Delete,\n Find,\n FindOne,\n BulkDelete,\n BulkPublish,\n BulkUnpublish,\n Discard,\n CountDraftRelations,\n CountManyEntriesDraftRelations,\n Publish,\n Unpublish,\n Update,\n} from '../../../shared/contracts/collection-types';\nimport type { MoveDocument } from '../../../shared/contracts/custom-order';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n /**\n * Places a document right before or after another one in the custom order\n * of its collection type.\n */\n moveDocument: builder.mutation<\n MoveDocument.Response,\n MoveDocument.Params & {\n body: MoveDocument.Request['body'];\n params?: MoveDocument.Request['query'];\n }\n >({\n query: ({ model, id, body, params }) => ({\n url: `/content-manager/collection-types/${model}/${id}/actions/move`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) =>\n error ? [] : [{ type: 'Document', id: `${model}_LIST` }],\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","moveDocument","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","useMoveDocumentMutation","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"documents.mjs","sources":["../../../admin/src/services/documents.ts"],"sourcesContent":["/**\n * Related to fetching the actual content of a collection type or single type.\n */\nimport { stringify } from 'qs';\n\nimport { SINGLE_TYPES } from '../constants/collections';\n\nimport { contentManagerApi } from './api';\n\nimport type {\n Clone,\n Create,\n Delete,\n Find,\n FindOne,\n BulkDelete,\n BulkPublish,\n BulkUnpublish,\n Discard,\n CountDraftRelations,\n CountManyEntriesDraftRelations,\n Publish,\n Unpublish,\n Update,\n} from '../../../shared/contracts/collection-types';\nimport type { MoveDocument } from '../../../shared/contracts/custom-order';\n\nconst documentApi = contentManagerApi.injectEndpoints({\n overrideExisting: true,\n endpoints: (builder) => ({\n autoCloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n params?: Find.Request['query'] & Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, params }) => ({\n url: `/content-manager/collection-types/${model}/auto-clone/${sourceId}`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) => {\n if (error) {\n return [];\n }\n\n return [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n cloneDocument: builder.mutation<\n Clone.Response,\n Clone.Params & {\n data: Clone.Request['body'];\n params?: Clone.Request['query'];\n }\n >({\n query: ({ model, sourceId, data, params }) => ({\n url: `/content-manager/collection-types/${model}/clone/${sourceId}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Creates a new collection-type document. This should ONLY be used for collection-types.\n * single-types should always be using `updateDocument` since they always exist.\n */\n createDocument: builder.mutation<\n Create.Response,\n Create.Params & {\n data: Create.Request['body'];\n params?: Create.Request['query'];\n }\n >({\n query: ({ model, data, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (result, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n transformResponse: (response: Create.Response, meta, arg): Create.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n deleteDocument: builder.mutation<\n Delete.Response,\n Pick<Delete.Params, 'model'> &\n Pick<Partial<Delete.Params>, 'documentId'> & {\n collectionType: string;\n params?: Find.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n collectionType !== SINGLE_TYPES && documentId ? `/${documentId}` : ''\n }`,\n method: 'DELETE',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => [\n { type: 'Document', id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_ALL_ITEMS` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n deleteManyDocuments: builder.mutation<\n BulkDelete.Response,\n BulkDelete.Params & BulkDelete.Request['body'] & { params?: Find.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkDelete`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model }) => [\n { type: 'Document', id: `${model}_LIST` },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n discardDocument: builder.mutation<\n Discard.Response,\n Pick<Discard.Params, 'model'> &\n Partial<Pick<Discard.Params, 'documentId'>> & {\n collectionType: string;\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/discard`\n : `/content-manager/${collectionType}/${model}/actions/discard`,\n method: 'POST',\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n /**\n * Gets all documents of a collection type or single type.\n * By passing different params you can get different results e.g. only published documents or 'es' documents.\n */\n getAllDocuments: builder.query<\n Find.Response,\n Find.Params & {\n params?: Find.Request['query'] & {\n [key: string]: unknown;\n };\n }\n >({\n query: ({ model, params }) => ({\n url: `/content-manager/collection-types/${model}`,\n method: 'GET',\n config: {\n params: stringify(params, { encode: true }),\n },\n }),\n providesTags: (result, _error, arg) => {\n return [\n { type: 'Document', id: `ALL_LIST` },\n { type: 'Document', id: `${arg.model}_LIST` },\n ...(result?.results.map(({ documentId }) => ({\n type: 'Document' as const,\n id: `${arg.model}_${documentId}`,\n })) ?? []),\n ];\n },\n }),\n /**\n * Places a document right before or after another one in the custom order\n * of its collection type.\n */\n moveDocument: builder.mutation<\n MoveDocument.Response,\n MoveDocument.Params & {\n body: MoveDocument.Request['body'];\n params?: MoveDocument.Request['query'];\n }\n >({\n query: ({ model, id, body, params }) => ({\n url: `/content-manager/collection-types/${model}/${id}/actions/move`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, error, { model }) =>\n error ? [] : [{ type: 'Document', id: `${model}_LIST` }],\n }),\n getDraftRelationCount: builder.query<\n CountDraftRelations.Response,\n {\n collectionType: string;\n model: string;\n /**\n * You don't pass the documentId if the document is a single-type\n */\n documentId?: string;\n params?: CountDraftRelations.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/countDraftRelations`\n : `/content-manager/${collectionType}/${model}/actions/countDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n }),\n /**\n * Fetches multiple documents with deep populate in a single request for bulk publish validation.\n */\n getDocumentsForValidation: builder.query<\n Find.Response['results'],\n {\n model: string;\n documentIds: string[];\n locale?: string;\n sort?: string;\n }\n >({\n query: ({ model, documentIds, locale, sort }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkFindForValidation`,\n method: 'POST',\n data: { documentIds, locale, sort },\n }),\n transformResponse: (response: { results: Find.Response['results'] }) =>\n response?.results ?? [],\n providesTags: (result, _error, { model }) =>\n result\n ? [\n ...result.map((doc) => ({\n type: 'Document' as const,\n id: `${model}_${doc.documentId}`,\n })),\n { type: 'Document', id: `${model}_LIST` },\n ]\n : [],\n }),\n getDocument: builder.query<\n FindOne.Response,\n Pick<FindOne.Params, 'model'> &\n Partial<Pick<FindOne.Params, 'documentId'>> & {\n collectionType: string;\n params?: FindOne.Request['query'];\n }\n >({\n // @ts-expect-error – TODO: fix ts error where data unknown doesn't work with response via an assertion?\n queryFn: async (\n { collectionType, model, documentId, params },\n _api,\n _extraOpts,\n baseQuery\n ) => {\n const res = await baseQuery({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'GET',\n config: {\n params,\n },\n });\n\n /**\n * To stop the query from locking itself in multiple retries, we intercept the error here and manage correctly.\n * This is because single-types don't have a list view and fetching them with the route `/single-types/:model`\n * never returns a list, just a single document but this won't exist if you've not made one before.\n */\n if (res.error && res.error.name === 'NotFoundError' && collectionType === SINGLE_TYPES) {\n return { data: { document: undefined }, error: undefined };\n }\n\n return res;\n },\n providesTags: (result, _error, { collectionType, model, documentId }) => {\n return [\n // we prefer the result's id because we don't fetch single-types with an ID.\n {\n type: 'Document',\n id:\n collectionType !== SINGLE_TYPES\n ? `${model}_${result && 'documentId' in result ? result.documentId : documentId}`\n : model,\n },\n // Make it easy to invalidate all individual documents queries for a model\n {\n type: 'Document',\n id: `${model}_ALL_ITEMS`,\n },\n ];\n },\n }),\n getManyDraftRelationCount: builder.query<\n CountManyEntriesDraftRelations.Response['data'],\n CountManyEntriesDraftRelations.Request['query'] & {\n model: string;\n }\n >({\n query: ({ model, ...params }) => ({\n url: `/content-manager/collection-types/${model}/actions/countManyEntriesDraftRelations`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (response: CountManyEntriesDraftRelations.Response) => response.data,\n }),\n /**\n * This endpoint will either create or update documents at the same time as publishing.\n */\n publishDocument: builder.mutation<\n Publish.Response,\n Pick<Publish.Params, 'model'> &\n Partial<Pick<Publish.Params, 'documentId'>> & {\n collectionType: string;\n data: Publish.Request['body'];\n params?: Publish.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/publish`\n : `/content-manager/${collectionType}/${model}/actions/publish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'Relations',\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n }),\n publishManyDocuments: builder.mutation<\n BulkPublish.Response,\n BulkPublish.Params & BulkPublish.Request['body'] & { params?: BulkPublish.Request['query'] }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkPublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => {\n return [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n updateDocument: builder.mutation<\n Update.Response,\n Pick<Update.Params, 'model'> &\n Partial<Pick<Update.Params, 'documentId'>> & {\n collectionType: string;\n data: Update.Request['body'];\n params?: Update.Request['query'];\n }\n >({\n query: ({ collectionType, model, documentId, data, params }) => ({\n url: `/content-manager/${collectionType}/${model}${\n documentId && collectionType !== SINGLE_TYPES ? `/${documentId}` : ''\n }`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'Relations',\n { type: 'UidAvailability', id: model },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n {\n type: 'AILocalizationJobs',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n ];\n },\n async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {\n // Optimistically update the cache with the new data\n const patchResult = dispatch(\n documentApi.util.updateQueryData('getDocument', patch, (draft) => {\n Object.assign(draft.data, data);\n })\n );\n try {\n await queryFulfilled;\n } catch {\n // Rollback the optimistic update if there's an error\n patchResult.undo();\n }\n },\n transformResponse: (response: Update.Response, meta, arg): Update.Response => {\n /**\n * TODO v6\n * Adapt plugin:users-permissions.user to return the same response\n * shape as all other requests. The error is returned as expected.\n */\n if (!('data' in response) && arg.model === 'plugin::users-permissions.user') {\n return {\n data: response,\n meta: {\n availableStatus: [],\n availableLocales: [],\n },\n };\n }\n\n return response;\n },\n }),\n unpublishDocument: builder.mutation<\n Unpublish.Response,\n Pick<Unpublish.Params, 'model'> &\n Partial<Pick<Unpublish.Params, 'documentId'>> & {\n collectionType: string;\n params?: Unpublish.Request['query'];\n data: Unpublish.Request['body'];\n }\n >({\n query: ({ collectionType, model, documentId, params, data }) => ({\n url:\n documentId && collectionType !== SINGLE_TYPES\n ? `/content-manager/${collectionType}/${model}/${documentId}/actions/unpublish`\n : `/content-manager/${collectionType}/${model}/actions/unpublish`,\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n invalidatesTags: (_result, _error, { collectionType, model, documentId }) => {\n return [\n {\n type: 'Document',\n id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model,\n },\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ];\n },\n }),\n unpublishManyDocuments: builder.mutation<\n BulkUnpublish.Response,\n Pick<BulkUnpublish.Params, 'model'> &\n BulkUnpublish.Request['body'] & {\n params?: BulkUnpublish.Request['query'];\n }\n >({\n query: ({ model, params, ...body }) => ({\n url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,\n method: 'POST',\n data: body,\n config: {\n params,\n },\n }),\n invalidatesTags: (_res, _error, { model, documentIds }) => [\n ...documentIds.map((id) => ({ type: 'Document' as const, id: `${model}_${id}` })),\n 'RecentDocumentList',\n 'CountDocuments',\n 'UpcomingReleasesList',\n ],\n }),\n /**\n * Used by field-lock on the create view, where document metadata (and\n * `meta.defaultLocale`) is not fetched. Same payload as the i18n plugin's\n * locales list — a separate slice so content-manager does not import `@strapi/i18n`.\n */\n getI18nLocales: builder.query<\n Array<{ id: number | string; code: string; isDefault: boolean }>,\n void\n >({\n query: () => '/i18n/locales',\n // Match the i18n locales query. Settings invalidates each locale id when the\n // default locale changes, not only the LIST tag, so create-view lock stays in sync.\n providesTags: (res) => [\n { type: 'Locale', id: 'LIST' },\n ...(Array.isArray(res)\n ? res.map((locale) => ({\n type: 'Locale' as const,\n id: locale.id,\n }))\n : []),\n ],\n }),\n }),\n});\n\nconst {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useGetI18nLocalesQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n} = documentApi;\n\nexport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useGetAllDocumentsQuery,\n useLazyGetAllDocumentsQuery,\n useGetDocumentsForValidationQuery,\n useLazyGetDocumentQuery,\n useGetDocumentQuery,\n useGetDraftRelationCountQuery,\n useGetI18nLocalesQuery,\n useLazyGetDraftRelationCountQuery,\n useGetManyDraftRelationCountQuery,\n useMoveDocumentMutation,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n};\n"],"names":["documentApi","contentManagerApi","injectEndpoints","overrideExisting","endpoints","builder","autoCloneDocument","mutation","query","model","sourceId","params","url","method","config","invalidatesTags","_result","error","type","id","cloneDocument","data","_error","createDocument","result","transformResponse","response","meta","arg","availableStatus","availableLocales","deleteDocument","collectionType","documentId","SINGLE_TYPES","deleteManyDocuments","body","_res","discardDocument","getAllDocuments","stringify","encode","providesTags","results","map","moveDocument","getDraftRelationCount","getDocumentsForValidation","documentIds","locale","sort","doc","getDocument","queryFn","_api","_extraOpts","baseQuery","res","name","document","undefined","getManyDraftRelationCount","publishDocument","publishManyDocuments","updateDocument","onQueryStarted","patch","dispatch","queryFulfilled","patchResult","util","updateQueryData","draft","Object","assign","undo","unpublishDocument","unpublishManyDocuments","getI18nLocales","Array","isArray","useAutoCloneDocumentMutation","useCloneDocumentMutation","useCreateDocumentMutation","useDeleteDocumentMutation","useDeleteManyDocumentsMutation","useDiscardDocumentMutation","useGetAllDocumentsQuery","useLazyGetAllDocumentsQuery","useGetDocumentsForValidationQuery","useLazyGetDocumentQuery","useGetDocumentQuery","useGetDraftRelationCountQuery","useGetI18nLocalesQuery","useLazyGetDraftRelationCountQuery","useGetManyDraftRelationCountQuery","useMoveDocumentMutation","usePublishDocumentMutation","usePublishManyDocumentsMutation","useUpdateDocumentMutation","useUnpublishDocumentMutation","useUnpublishManyDocumentsMutation"],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
var fractionalIndexing = require('fractional-indexing');
|
|
4
4
|
var api = require('./api.js');
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* The relations API loads the main field of the relations with a second query that isn't
|
|
8
|
+
* paginated, so it's capped at the default page size of the database layer: 10 rows. Past that
|
|
9
|
+
* number in a page, relations come back without their label.
|
|
10
|
+
*/ const ALL_RELATIONS_PAGE_SIZE = 10;
|
|
6
11
|
const relationsApi = api.contentManagerApi.injectEndpoints({
|
|
7
12
|
endpoints: (build)=>({
|
|
8
13
|
getRelations: build.query({
|
|
@@ -67,6 +72,46 @@ const relationsApi = api.contentManagerApi.injectEndpoints({
|
|
|
67
72
|
'Relations'
|
|
68
73
|
]
|
|
69
74
|
}),
|
|
75
|
+
/**
|
|
76
|
+
* Loads every existing relation of a field, in the order they're displayed.
|
|
77
|
+
* `getRelations` is paginated for the relations input, this one is meant for
|
|
78
|
+
* copying the relations of an entry.
|
|
79
|
+
*/ getAllRelations: build.query({
|
|
80
|
+
queryFn: async ({ model, id, targetField, params }, _api, _extraOpts, baseQuery)=>{
|
|
81
|
+
const relations = [];
|
|
82
|
+
let page = 1;
|
|
83
|
+
let pageCount = 1;
|
|
84
|
+
while(page <= pageCount){
|
|
85
|
+
const res = await baseQuery({
|
|
86
|
+
url: `/content-manager/relations/${model}/${id}/${targetField}`,
|
|
87
|
+
method: 'GET',
|
|
88
|
+
config: {
|
|
89
|
+
params: {
|
|
90
|
+
...params,
|
|
91
|
+
page,
|
|
92
|
+
pageSize: ALL_RELATIONS_PAGE_SIZE
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
if (res.error) {
|
|
97
|
+
return {
|
|
98
|
+
error: res.error
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const { results = [], pagination } = res.data;
|
|
102
|
+
relations.push(...results);
|
|
103
|
+
pageCount = pagination?.pageCount ?? 1;
|
|
104
|
+
page += 1;
|
|
105
|
+
}
|
|
106
|
+
// The API returns the latest relations first.
|
|
107
|
+
return {
|
|
108
|
+
data: relations.toReversed()
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
providesTags: [
|
|
112
|
+
'Relations'
|
|
113
|
+
]
|
|
114
|
+
}),
|
|
70
115
|
searchRelations: build.query({
|
|
71
116
|
query: ({ model, targetField, params })=>{
|
|
72
117
|
return {
|
|
@@ -140,8 +185,9 @@ const relationsApi = api.contentManagerApi.injectEndpoints({
|
|
|
140
185
|
__temp_key__: keys[index]
|
|
141
186
|
}));
|
|
142
187
|
};
|
|
143
|
-
const { useGetRelationsQuery, useLazySearchRelationsQuery } = relationsApi;
|
|
188
|
+
const { useGetRelationsQuery, useLazyGetAllRelationsQuery, useLazySearchRelationsQuery } = relationsApi;
|
|
144
189
|
|
|
145
190
|
exports.useGetRelationsQuery = useGetRelationsQuery;
|
|
191
|
+
exports.useLazyGetAllRelationsQuery = useLazyGetAllRelationsQuery;
|
|
146
192
|
exports.useLazySearchRelationsQuery = useLazySearchRelationsQuery;
|
|
147
193
|
//# sourceMappingURL=relations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.js","sources":["../../../admin/src/services/relations.ts"],"sourcesContent":["import { generateNKeysBetween } from 'fractional-indexing';\n\nimport {\n RelationResult as RelResult,\n FindAvailable,\n FindExisting,\n} from '../../../shared/contracts/relations';\n\nimport { contentManagerApi } from './api';\n\nimport type { Modules } from '@strapi/types';\nimport type { errors } from '@strapi/utils';\n\ninterface RelationResult extends RelResult {\n __temp_key__: string;\n}\n\ntype GetRelationsResponse =\n | {\n results: Array<RelationResult>;\n pagination: {\n page: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['page']>;\n pageSize: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['pageSize']>;\n pageCount: number;\n total: number;\n } | null;\n error?: never;\n }\n | {\n results?: never;\n pagination?: never;\n error: errors.ApplicationError | errors.YupValidationError;\n };\n\nconst relationsApi = contentManagerApi.injectEndpoints({\n endpoints: (build) => ({\n getRelations: build.query<\n GetRelationsResponse,\n FindExisting.Params & {\n params?: FindExisting.Request['query'];\n }\n >({\n query: ({ model, id, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${id}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n id: queryArgs.id,\n targetField: queryArgs.targetField,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n *\n * Push new items at the beginning as latest items are shown first\n */\n currentCache.results = [\n ...prepareTempKeys(newItems.results, currentCache.results),\n ...currentCache.results,\n ];\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = prepareTempKeys(newItems.results);\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindExisting.Response) => {\n if ('results' in response && response.results) {\n return {\n ...response,\n results: prepareTempKeys(response.results.toReversed()),\n };\n } else {\n return response;\n }\n },\n providesTags: ['Relations'],\n }),\n searchRelations: build.query<\n FindAvailable.Response,\n FindAvailable.Params & {\n params?: FindAvailable.Request['query'];\n }\n >({\n query: ({ model, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n targetField: queryArgs.targetField,\n id: queryArgs.params?.id,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n _q: queryArgs.params?._q,\n idsToOmit: queryArgs.params?.idsToOmit,\n idsToInclude: queryArgs.params?.idsToInclude,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n */\n const existingIds = new Set(currentCache.results.map((item) => item.documentId));\n const uniqueNewItems = newItems.results.filter(\n (item) => !existingIds.has(item.documentId)\n );\n currentCache.results.push(...uniqueNewItems);\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = newItems.results;\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindAvailable.Response) => {\n if (response.results) {\n return {\n ...response,\n results: response.results,\n };\n } else {\n return response;\n }\n },\n }),\n }),\n});\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each relation item. This gives us\n * a stable identifier regardless of it's ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = (relations: RelResult[], existingRelations: RelationResult[] = []) => {\n const [firstItem] = existingRelations.slice(0);\n const keys = generateNKeysBetween(null, firstItem?.__temp_key__ ?? null, relations.length);\n\n return relations.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n};\n\nconst { useGetRelationsQuery, useLazySearchRelationsQuery } = relationsApi;\n\nexport { useGetRelationsQuery, useLazySearchRelationsQuery };\nexport type { RelationResult };\n"],"names":["relationsApi","contentManagerApi","injectEndpoints","endpoints","build","getRelations","query","model","id","targetField","params","url","method","config","serializeQueryArgs","args","endpointName","queryArgs","locale","status","merge","currentCache","newItems","pagination","page","results","prepareTempKeys","forceRefetch","currentArg","previousArg","pageSize","transformResponse","response","toReversed","providesTags","searchRelations","_q","idsToOmit","idsToInclude","existingIds","Set","map","item","documentId","uniqueNewItems","filter","has","push","relations","existingRelations","firstItem","slice","keys","generateNKeysBetween","__temp_key__","length","datum","index","useGetRelationsQuery","useLazySearchRelationsQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relations.js","sources":["../../../admin/src/services/relations.ts"],"sourcesContent":["import { generateNKeysBetween } from 'fractional-indexing';\n\nimport {\n RelationResult as RelResult,\n FindAvailable,\n FindExisting,\n} from '../../../shared/contracts/relations';\n\nimport { contentManagerApi } from './api';\n\nimport type { Modules } from '@strapi/types';\nimport type { errors } from '@strapi/utils';\n\ninterface RelationResult extends RelResult {\n __temp_key__: string;\n}\n\ntype GetRelationsResponse =\n | {\n results: Array<RelationResult>;\n pagination: {\n page: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['page']>;\n pageSize: NonNullable<Modules.EntityService.Params.Pagination.PageNotation['pageSize']>;\n pageCount: number;\n total: number;\n } | null;\n error?: never;\n }\n | {\n results?: never;\n pagination?: never;\n error: errors.ApplicationError | errors.YupValidationError;\n };\n\n/**\n * The relations API loads the main field of the relations with a second query that isn't\n * paginated, so it's capped at the default page size of the database layer: 10 rows. Past that\n * number in a page, relations come back without their label.\n */\nconst ALL_RELATIONS_PAGE_SIZE = 10;\n\nconst relationsApi = contentManagerApi.injectEndpoints({\n endpoints: (build) => ({\n getRelations: build.query<\n GetRelationsResponse,\n FindExisting.Params & {\n params?: FindExisting.Request['query'];\n }\n >({\n query: ({ model, id, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${id}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n id: queryArgs.id,\n targetField: queryArgs.targetField,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n *\n * Push new items at the beginning as latest items are shown first\n */\n currentCache.results = [\n ...prepareTempKeys(newItems.results, currentCache.results),\n ...currentCache.results,\n ];\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = prepareTempKeys(newItems.results);\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindExisting.Response) => {\n if ('results' in response && response.results) {\n return {\n ...response,\n results: prepareTempKeys(response.results.toReversed()),\n };\n } else {\n return response;\n }\n },\n providesTags: ['Relations'],\n }),\n /**\n * Loads every existing relation of a field, in the order they're displayed.\n * `getRelations` is paginated for the relations input, this one is meant for\n * copying the relations of an entry.\n */\n getAllRelations: build.query<\n RelResult[],\n FindExisting.Params & {\n params?: Omit<FindExisting.Request['query'], 'page' | 'pageSize'>;\n }\n >({\n queryFn: async ({ model, id, targetField, params }, _api, _extraOpts, baseQuery) => {\n const relations: RelResult[] = [];\n let page = 1;\n let pageCount = 1;\n\n while (page <= pageCount) {\n const res = await baseQuery({\n url: `/content-manager/relations/${model}/${id}/${targetField}`,\n method: 'GET',\n config: {\n params: { ...params, page, pageSize: ALL_RELATIONS_PAGE_SIZE },\n },\n });\n\n if (res.error) {\n return { error: res.error };\n }\n\n const { results = [], pagination } = res.data as FindExisting.Response;\n\n relations.push(...results);\n pageCount = pagination?.pageCount ?? 1;\n page += 1;\n }\n\n // The API returns the latest relations first.\n return { data: relations.toReversed() };\n },\n providesTags: ['Relations'],\n }),\n searchRelations: build.query<\n FindAvailable.Response,\n FindAvailable.Params & {\n params?: FindAvailable.Request['query'];\n }\n >({\n query: ({ model, targetField, params }) => {\n return {\n url: `/content-manager/relations/${model}/${targetField}`,\n method: 'GET',\n config: {\n params,\n },\n };\n },\n serializeQueryArgs: (args) => {\n const { endpointName, queryArgs } = args;\n return {\n endpointName,\n model: queryArgs.model,\n targetField: queryArgs.targetField,\n id: queryArgs.params?.id,\n locale: queryArgs.params?.locale,\n status: queryArgs.params?.status,\n _q: queryArgs.params?._q,\n idsToOmit: queryArgs.params?.idsToOmit,\n idsToInclude: queryArgs.params?.idsToInclude,\n };\n },\n merge: (currentCache, newItems) => {\n if (currentCache.pagination && newItems.pagination) {\n if (currentCache.pagination.page < newItems.pagination.page) {\n /**\n * Relations will always have unique IDs, so we can therefore assume\n * that we only need to push the new items to the cache.\n */\n const existingIds = new Set(currentCache.results.map((item) => item.documentId));\n const uniqueNewItems = newItems.results.filter(\n (item) => !existingIds.has(item.documentId)\n );\n currentCache.results.push(...uniqueNewItems);\n currentCache.pagination = newItems.pagination;\n } else if (newItems.pagination.page === 1) {\n /**\n * We're resetting the relations\n */\n currentCache.results = newItems.results;\n currentCache.pagination = newItems.pagination;\n }\n }\n },\n forceRefetch({ currentArg, previousArg }) {\n if (!currentArg?.params && !previousArg?.params) {\n return false;\n }\n\n return (\n currentArg?.params?.page !== previousArg?.params?.page ||\n currentArg?.params?.pageSize !== previousArg?.params?.pageSize\n );\n },\n transformResponse: (response: FindAvailable.Response) => {\n if (response.results) {\n return {\n ...response,\n results: response.results,\n };\n } else {\n return response;\n }\n },\n }),\n }),\n});\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each relation item. This gives us\n * a stable identifier regardless of it's ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = (relations: RelResult[], existingRelations: RelationResult[] = []) => {\n const [firstItem] = existingRelations.slice(0);\n const keys = generateNKeysBetween(null, firstItem?.__temp_key__ ?? null, relations.length);\n\n return relations.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n};\n\nconst { useGetRelationsQuery, useLazyGetAllRelationsQuery, useLazySearchRelationsQuery } =\n relationsApi;\n\nexport { useGetRelationsQuery, useLazyGetAllRelationsQuery, useLazySearchRelationsQuery };\nexport type { RelationResult };\n"],"names":["ALL_RELATIONS_PAGE_SIZE","relationsApi","contentManagerApi","injectEndpoints","endpoints","build","getRelations","query","model","id","targetField","params","url","method","config","serializeQueryArgs","args","endpointName","queryArgs","locale","status","merge","currentCache","newItems","pagination","page","results","prepareTempKeys","forceRefetch","currentArg","previousArg","pageSize","transformResponse","response","toReversed","providesTags","getAllRelations","queryFn","_api","_extraOpts","baseQuery","relations","pageCount","res","error","data","push","searchRelations","_q","idsToOmit","idsToInclude","existingIds","Set","map","item","documentId","uniqueNewItems","filter","has","existingRelations","firstItem","slice","keys","generateNKeysBetween","__temp_key__","length","datum","index","useGetRelationsQuery","useLazyGetAllRelationsQuery","useLazySearchRelationsQuery"],"mappings":"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"}
|