@strapi/upload 5.49.0 → 5.50.1
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/ai/components/AIAssetCard.js +10 -10
- package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
- package/dist/admin/ai/components/AIAssetCard.mjs +11 -11
- package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.js +0 -1
- package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.mjs +0 -1
- package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.js +3 -4
- package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.mjs +4 -5
- package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.js +0 -1
- package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.mjs +0 -1
- package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js +0 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs +0 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.js +3 -4
- package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +4 -5
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.js +0 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs +0 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.js +0 -1
- package/dist/admin/components/AssetDialog/AssetDialog.js.map +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.mjs +0 -1
- package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +0 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +0 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +0 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +0 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +0 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +0 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +0 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +0 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js +0 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +3 -3
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +4 -4
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +2 -3
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +3 -4
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +0 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +0 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +0 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +0 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +0 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +3 -4
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +4 -5
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js +2 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs +2 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +1 -2
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +2 -3
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +2 -2
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +2 -2
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.js +0 -1
- package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.mjs +0 -1
- package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
- package/dist/admin/components/TableList/CellContent.js +0 -1
- package/dist/admin/components/TableList/CellContent.js.map +1 -1
- package/dist/admin/components/TableList/CellContent.mjs +0 -1
- package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
- package/dist/admin/components/TableList/PreviewCell.js +3 -4
- package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
- package/dist/admin/components/TableList/PreviewCell.mjs +4 -5
- package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
- package/dist/admin/components/TableList/TableList.js +0 -1
- package/dist/admin/components/TableList/TableList.js.map +1 -1
- package/dist/admin/components/TableList/TableList.mjs +0 -1
- package/dist/admin/components/TableList/TableList.mjs.map +1 -1
- package/dist/admin/components/TableList/TableRows.js +0 -1
- package/dist/admin/components/TableList/TableRows.js.map +1 -1
- package/dist/admin/components/TableList/TableRows.mjs +0 -1
- package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +2 -3
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +3 -4
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +0 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +0 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
- package/dist/admin/constants.js +4 -7
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs +4 -7
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/enums.js +14 -16
- package/dist/admin/enums.js.map +1 -1
- package/dist/admin/enums.mjs +13 -15
- package/dist/admin/enums.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/AssetsPage.js +125 -122
- package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
- package/dist/admin/future/pages/Assets/AssetsPage.mjs +125 -122
- package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js +700 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs +678 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +134 -17
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +137 -20
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +27 -5
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +27 -5
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.js +211 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.mjs +188 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js +50 -5
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +51 -6
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.js +43 -4
- package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +44 -5
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js +195 -0
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs +192 -0
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js +37 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs +35 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.js +18 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.mjs +13 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js +97 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs +94 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js +13 -4
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs +13 -4
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js +6 -3
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs +6 -3
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -1
- package/dist/admin/future/services/api.js +37 -1
- package/dist/admin/future/services/api.js.map +1 -1
- package/dist/admin/future/services/api.mjs +37 -2
- package/dist/admin/future/services/api.mjs.map +1 -1
- package/dist/admin/future/services/folders.js +36 -5
- package/dist/admin/future/services/folders.js.map +1 -1
- package/dist/admin/future/services/folders.mjs +36 -6
- package/dist/admin/future/services/folders.mjs.map +1 -1
- package/dist/admin/future/utils/buildBulkMovePayload.js +20 -0
- package/dist/admin/future/utils/buildBulkMovePayload.js.map +1 -0
- package/dist/admin/future/utils/buildBulkMovePayload.mjs +18 -0
- package/dist/admin/future/utils/buildBulkMovePayload.mjs.map +1 -0
- package/dist/admin/future/utils/canDropItemOnFolder.js +64 -0
- package/dist/admin/future/utils/canDropItemOnFolder.js.map +1 -0
- package/dist/admin/future/utils/canDropItemOnFolder.mjs +61 -0
- package/dist/admin/future/utils/canDropItemOnFolder.mjs.map +1 -0
- package/dist/admin/future/utils/getAssetIcon.js +4 -4
- package/dist/admin/future/utils/getAssetIcon.js.map +1 -1
- package/dist/admin/future/utils/getAssetIcon.mjs +4 -4
- package/dist/admin/future/utils/getAssetIcon.mjs.map +1 -1
- package/dist/admin/future/utils/getBulkMoveErrorMessage.js +23 -0
- package/dist/admin/future/utils/getBulkMoveErrorMessage.js.map +1 -0
- package/dist/admin/future/utils/getBulkMoveErrorMessage.mjs +21 -0
- package/dist/admin/future/utils/getBulkMoveErrorMessage.mjs.map +1 -0
- package/dist/admin/hooks/useAIMetadataJob.js +0 -1
- package/dist/admin/hooks/useAIMetadataJob.js.map +1 -1
- package/dist/admin/hooks/useAIMetadataJob.mjs +0 -1
- package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
- package/dist/admin/hooks/useAssets.js.map +1 -1
- package/dist/admin/hooks/useAssets.mjs.map +1 -1
- package/dist/admin/hooks/useBulkEdit.js +0 -1
- package/dist/admin/hooks/useBulkEdit.js.map +1 -1
- package/dist/admin/hooks/useBulkEdit.mjs +0 -1
- package/dist/admin/hooks/useBulkEdit.mjs.map +1 -1
- package/dist/admin/hooks/useBulkMove.js +0 -1
- package/dist/admin/hooks/useBulkMove.js.map +1 -1
- package/dist/admin/hooks/useBulkMove.mjs +0 -1
- package/dist/admin/hooks/useBulkMove.mjs.map +1 -1
- package/dist/admin/hooks/useBulkRemove.js +0 -1
- package/dist/admin/hooks/useBulkRemove.js.map +1 -1
- package/dist/admin/hooks/useBulkRemove.mjs +0 -1
- package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
- package/dist/admin/hooks/useEditAsset.js +0 -1
- package/dist/admin/hooks/useEditAsset.js.map +1 -1
- package/dist/admin/hooks/useEditAsset.mjs +0 -1
- package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
- package/dist/admin/hooks/useEditFolder.js +4 -3
- package/dist/admin/hooks/useEditFolder.js.map +1 -1
- package/dist/admin/hooks/useEditFolder.mjs +4 -3
- package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolder.js +0 -1
- package/dist/admin/hooks/useFolder.js.map +1 -1
- package/dist/admin/hooks/useFolder.mjs +0 -1
- package/dist/admin/hooks/useFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolderStructure.js +0 -1
- package/dist/admin/hooks/useFolderStructure.js.map +1 -1
- package/dist/admin/hooks/useFolderStructure.mjs +0 -1
- package/dist/admin/hooks/useFolderStructure.mjs.map +1 -1
- package/dist/admin/hooks/useUpload.js.map +1 -1
- package/dist/admin/hooks/useUpload.mjs.map +1 -1
- package/dist/admin/index.js +0 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +0 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/App/App.js +0 -1
- package/dist/admin/pages/App/App.js.map +1 -1
- package/dist/admin/pages/App/App.mjs +0 -1
- package/dist/admin/pages/App/App.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +0 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +0 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +0 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +0 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
- package/dist/admin/pages/App/MediaLibrary.js +0 -1
- package/dist/admin/pages/App/MediaLibrary.js.map +1 -1
- package/dist/admin/pages/App/MediaLibrary.mjs +0 -1
- package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
- package/dist/admin/pages/App/components/BulkActions.js +0 -1
- package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
- package/dist/admin/pages/App/components/BulkActions.mjs +0 -1
- package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.js +0 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs +0 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
- package/dist/admin/pages/App/components/Filters.js +0 -1
- package/dist/admin/pages/App/components/Filters.js.map +1 -1
- package/dist/admin/pages/App/components/Filters.mjs +0 -1
- package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/App/components/Header.js +0 -1
- package/dist/admin/pages/App/components/Header.js.map +1 -1
- package/dist/admin/pages/App/components/Header.mjs +0 -1
- package/dist/admin/pages/App/components/Header.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.js +1 -2
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs +1 -2
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +11 -12
- package/dist/admin/src/components/EmptyAssets/EmptyAssets.d.ts +0 -1
- package/dist/admin/src/components/FolderCard/contexts/FolderCard.d.ts +2 -3
- package/dist/admin/src/constants.d.ts +5 -4
- package/dist/admin/src/enums.d.ts +14 -12
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +10 -0
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/useCropImg.d.ts +48 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/AssetsDndProvider.d.ts +12 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/DragOverlayChip.d.ts +6 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/dndIds.d.ts +4 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/useAssetDnd.d.ts +51 -0
- package/dist/admin/src/future/services/api.d.ts +24 -6
- package/dist/admin/src/future/services/assets.d.ts +1 -1
- package/dist/admin/src/future/services/folders.d.ts +12 -2
- package/dist/admin/src/future/services/settings.d.ts +1 -1
- package/dist/admin/src/future/store/uploadProgress.d.ts +1 -1
- package/dist/admin/src/future/types/dnd.d.ts +22 -0
- package/dist/admin/src/future/utils/buildBulkMovePayload.d.ts +2 -0
- package/dist/admin/src/future/utils/canDropItemOnFolder.d.ts +9 -0
- package/dist/admin/src/future/utils/getBulkMoveErrorMessage.d.ts +1 -0
- package/dist/admin/src/hooks/useAIMetadataJob.d.ts +1 -1
- package/dist/admin/src/hooks/useBulkEdit.d.ts +14 -14
- package/dist/admin/src/hooks/useBulkMove.d.ts +146 -15
- package/dist/admin/src/hooks/useBulkRemove.d.ts +186 -15
- package/dist/admin/src/hooks/useCropImg.d.ts +2 -2
- package/dist/admin/src/hooks/useEditFolder.d.ts +7 -6
- package/dist/admin/src/hooks/useModalQueryParams.d.ts +5 -5
- package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
- package/dist/admin/src/hooks/useSettings.d.ts +5 -5
- package/dist/admin/src/hooks/useTracking.d.ts +1 -1
- package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +1 -1
- package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +1 -1
- package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +1 -1
- package/dist/admin/src/utils/getFolderParents.d.ts +3 -3
- package/dist/admin/src/utils/icons.d.ts +2 -1
- package/dist/admin/src/utils/rawFileToAsset.d.ts +1 -1
- package/dist/admin/src/utils/urlsToAssets.d.ts +2 -10
- package/dist/admin/translations/en.json.js +28 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +28 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/ja.json.js +175 -0
- package/dist/admin/translations/ja.json.js.map +1 -1
- package/dist/admin/translations/ja.json.mjs +175 -0
- package/dist/admin/translations/ja.json.mjs.map +1 -1
- package/dist/admin/translations/pl.json.js +54 -29
- package/dist/admin/translations/pl.json.js.map +1 -1
- package/dist/admin/translations/pl.json.mjs +54 -29
- package/dist/admin/translations/pl.json.mjs.map +1 -1
- package/dist/admin/utils/icons.js +5 -5
- package/dist/admin/utils/icons.js.map +1 -1
- package/dist/admin/utils/icons.mjs +6 -6
- package/dist/admin/utils/icons.mjs.map +1 -1
- package/dist/admin/utils/typeFromMime.js +9 -9
- package/dist/admin/utils/typeFromMime.js.map +1 -1
- package/dist/admin/utils/typeFromMime.mjs +10 -10
- package/dist/admin/utils/typeFromMime.mjs.map +1 -1
- package/dist/admin/utils/urlsToAssets.js +1 -2
- package/dist/admin/utils/urlsToAssets.js.map +1 -1
- package/dist/admin/utils/urlsToAssets.mjs +1 -2
- package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +3 -2
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +3 -2
- package/dist/server/controllers/admin-upload.mjs.map +1 -1
- package/dist/server/controllers/content-api.js +6 -5
- package/dist/server/controllers/content-api.js.map +1 -1
- package/dist/server/controllers/content-api.mjs +6 -5
- package/dist/server/controllers/content-api.mjs.map +1 -1
- package/dist/server/src/controllers/admin-file.d.ts +4 -12
- package/dist/server/src/controllers/admin-file.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-folder.d.ts +2 -2
- package/dist/server/src/controllers/admin-settings.d.ts +2 -2
- package/dist/server/src/controllers/admin-upload.d.ts +3 -3
- package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
- package/dist/server/src/controllers/content-api.d.ts +2 -2
- package/dist/server/src/controllers/content-api.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +14 -23
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/folders.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/configureView.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/folder-file.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/folder-file.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/folder.d.ts +2 -2
- package/dist/server/src/controllers/validation/admin/folder.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/settings.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/upload.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/upload.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/utils.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/content-api/upload.d.ts.map +1 -1
- package/dist/server/src/controllers/view-configuration.d.ts +1 -1
- package/dist/server/src/graphql.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +36 -53
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/upload.d.ts.map +1 -1
- package/dist/server/src/services/ai-metadata-jobs.d.ts +1 -1
- package/dist/server/src/services/ai-metadata-jobs.d.ts.map +1 -1
- package/dist/server/src/services/ai-metadata.d.ts.map +1 -1
- package/dist/server/src/services/extensions/utils.d.ts.map +1 -1
- package/dist/server/src/services/file.d.ts +2 -2
- package/dist/server/src/services/file.d.ts.map +1 -1
- package/dist/server/src/services/folder.d.ts +1 -1
- package/dist/server/src/services/folder.d.ts.map +1 -1
- package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +22 -30
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/provider.d.ts.map +1 -1
- package/dist/server/src/services/upload.d.ts +1 -1
- package/dist/server/src/services/upload.d.ts.map +1 -1
- package/dist/server/src/services/weekly-metrics.d.ts.map +1 -1
- package/dist/server/src/types.d.ts +4 -3
- package/dist/server/src/types.d.ts.map +1 -1
- package/dist/server/src/utils/cron.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/src/utils/mime-validation.d.ts.map +1 -1
- package/dist/server/utils/mime-validation.js +3 -1
- package/dist/server/utils/mime-validation.js.map +1 -1
- package/dist/server/utils/mime-validation.mjs +3 -1
- package/dist/server/utils/mime-validation.mjs.map +1 -1
- package/package.json +11 -10
- package/dist/admin/future/enums.js +0 -12
- package/dist/admin/future/enums.js.map +0 -1
- package/dist/admin/future/enums.mjs +0 -10
- package/dist/admin/future/enums.mjs.map +0 -1
- package/dist/admin/src/future/enums.d.ts +0 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var icons = require('@strapi/icons');
|
|
4
|
-
var enums = require('
|
|
4
|
+
var enums = require('../../enums.js');
|
|
5
5
|
var files = require('./files.js');
|
|
6
6
|
|
|
7
7
|
const DOC_ICON_MAP = {
|
|
@@ -12,13 +12,13 @@ const DOC_ICON_MAP = {
|
|
|
12
12
|
};
|
|
13
13
|
const getAssetIcon = (mime, ext)=>{
|
|
14
14
|
const fileExtension = files.getFileExtension(ext);
|
|
15
|
-
if (mime?.includes(enums.
|
|
15
|
+
if (mime?.includes(enums.ASSET_TYPES.Image)) {
|
|
16
16
|
return icons.Image;
|
|
17
17
|
}
|
|
18
|
-
if (mime?.includes(enums.
|
|
18
|
+
if (mime?.includes(enums.ASSET_TYPES.Video)) {
|
|
19
19
|
return icons.Play;
|
|
20
20
|
}
|
|
21
|
-
if (mime?.includes(enums.
|
|
21
|
+
if (mime?.includes(enums.ASSET_TYPES.Audio)) {
|
|
22
22
|
return icons.Headphones;
|
|
23
23
|
}
|
|
24
24
|
return fileExtension ? DOC_ICON_MAP[fileExtension] || icons.File : icons.File;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAssetIcon.js","sources":["../../../../admin/src/future/utils/getAssetIcon.ts"],"sourcesContent":["import { SVGProps } from 'react';\n\nimport {\n File as FileIcon,\n FileCsv,\n FilePdf,\n FileXls,\n FileZip,\n Play,\n Headphones,\n Image,\n} from '@strapi/icons';\nimport { DefaultTheme } from 'styled-components';\n\nimport {
|
|
1
|
+
{"version":3,"file":"getAssetIcon.js","sources":["../../../../admin/src/future/utils/getAssetIcon.ts"],"sourcesContent":["import { SVGProps } from 'react';\n\nimport {\n File as FileIcon,\n FileCsv,\n FilePdf,\n FileXls,\n FileZip,\n Play,\n Headphones,\n Image,\n} from '@strapi/icons';\nimport { DefaultTheme } from 'styled-components';\n\nimport { ASSET_TYPES } from '../../enums';\n\nimport { getFileExtension } from './files';\n\n// NOTE: IconProps interface is not exported from our design library package, so we need to redefine it here\ninterface IconProps extends Omit<SVGProps<SVGSVGElement>, 'fill' | 'stroke'> {\n /**\n * @default \"currentColor\"\n */\n fill?: keyof DefaultTheme['colors'] | string;\n stroke?: keyof DefaultTheme['colors'] | string;\n}\n\ntype IconComponent = React.FC<IconProps>;\n\nconst DOC_ICON_MAP: Record<string, IconComponent> = {\n pdf: FilePdf,\n csv: FileCsv,\n xls: FileXls,\n zip: FileZip,\n};\n\nexport const getAssetIcon = (mime: string | undefined, ext: string | undefined): IconComponent => {\n const fileExtension = getFileExtension(ext);\n\n if (mime?.includes(ASSET_TYPES.Image)) {\n return Image;\n }\n\n if (mime?.includes(ASSET_TYPES.Video)) {\n return Play;\n }\n\n if (mime?.includes(ASSET_TYPES.Audio)) {\n return Headphones;\n }\n\n return fileExtension ? DOC_ICON_MAP[fileExtension] || FileIcon : FileIcon;\n};\n"],"names":["DOC_ICON_MAP","pdf","FilePdf","csv","FileCsv","xls","FileXls","zip","FileZip","getAssetIcon","mime","ext","fileExtension","getFileExtension","includes","ASSET_TYPES","Image","Video","Play","Audio","Headphones","FileIcon"],"mappings":";;;;;;AA6BA,MAAMA,YAAAA,GAA8C;IAClDC,GAAAA,EAAKC,aAAAA;IACLC,GAAAA,EAAKC,aAAAA;IACLC,GAAAA,EAAKC,aAAAA;IACLC,GAAAA,EAAKC;AACP,CAAA;AAEO,MAAMC,YAAAA,GAAe,CAACC,IAAAA,EAA0BC,GAAAA,GAAAA;AACrD,IAAA,MAAMC,gBAAgBC,sBAAAA,CAAiBF,GAAAA,CAAAA;AAEvC,IAAA,IAAID,IAAAA,EAAMI,QAAAA,CAASC,iBAAAA,CAAYC,KAAK,CAAA,EAAG;QACrC,OAAOA,WAAAA;AACT,IAAA;AAEA,IAAA,IAAIN,IAAAA,EAAMI,QAAAA,CAASC,iBAAAA,CAAYE,KAAK,CAAA,EAAG;QACrC,OAAOC,UAAAA;AACT,IAAA;AAEA,IAAA,IAAIR,IAAAA,EAAMI,QAAAA,CAASC,iBAAAA,CAAYI,KAAK,CAAA,EAAG;QACrC,OAAOC,gBAAAA;AACT,IAAA;AAEA,IAAA,OAAOR,aAAAA,GAAgBZ,YAAY,CAACY,aAAAA,CAAc,IAAIS,UAAAA,GAAWA,UAAAA;AACnE;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Image, Play, Headphones, FileZip, FileXls, FileCsv, FilePdf, File } from '@strapi/icons';
|
|
2
|
-
import {
|
|
2
|
+
import { ASSET_TYPES } from '../../enums.mjs';
|
|
3
3
|
import { getFileExtension } from './files.mjs';
|
|
4
4
|
|
|
5
5
|
const DOC_ICON_MAP = {
|
|
@@ -10,13 +10,13 @@ const DOC_ICON_MAP = {
|
|
|
10
10
|
};
|
|
11
11
|
const getAssetIcon = (mime, ext)=>{
|
|
12
12
|
const fileExtension = getFileExtension(ext);
|
|
13
|
-
if (mime?.includes(
|
|
13
|
+
if (mime?.includes(ASSET_TYPES.Image)) {
|
|
14
14
|
return Image;
|
|
15
15
|
}
|
|
16
|
-
if (mime?.includes(
|
|
16
|
+
if (mime?.includes(ASSET_TYPES.Video)) {
|
|
17
17
|
return Play;
|
|
18
18
|
}
|
|
19
|
-
if (mime?.includes(
|
|
19
|
+
if (mime?.includes(ASSET_TYPES.Audio)) {
|
|
20
20
|
return Headphones;
|
|
21
21
|
}
|
|
22
22
|
return fileExtension ? DOC_ICON_MAP[fileExtension] || File : File;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAssetIcon.mjs","sources":["../../../../admin/src/future/utils/getAssetIcon.ts"],"sourcesContent":["import { SVGProps } from 'react';\n\nimport {\n File as FileIcon,\n FileCsv,\n FilePdf,\n FileXls,\n FileZip,\n Play,\n Headphones,\n Image,\n} from '@strapi/icons';\nimport { DefaultTheme } from 'styled-components';\n\nimport {
|
|
1
|
+
{"version":3,"file":"getAssetIcon.mjs","sources":["../../../../admin/src/future/utils/getAssetIcon.ts"],"sourcesContent":["import { SVGProps } from 'react';\n\nimport {\n File as FileIcon,\n FileCsv,\n FilePdf,\n FileXls,\n FileZip,\n Play,\n Headphones,\n Image,\n} from '@strapi/icons';\nimport { DefaultTheme } from 'styled-components';\n\nimport { ASSET_TYPES } from '../../enums';\n\nimport { getFileExtension } from './files';\n\n// NOTE: IconProps interface is not exported from our design library package, so we need to redefine it here\ninterface IconProps extends Omit<SVGProps<SVGSVGElement>, 'fill' | 'stroke'> {\n /**\n * @default \"currentColor\"\n */\n fill?: keyof DefaultTheme['colors'] | string;\n stroke?: keyof DefaultTheme['colors'] | string;\n}\n\ntype IconComponent = React.FC<IconProps>;\n\nconst DOC_ICON_MAP: Record<string, IconComponent> = {\n pdf: FilePdf,\n csv: FileCsv,\n xls: FileXls,\n zip: FileZip,\n};\n\nexport const getAssetIcon = (mime: string | undefined, ext: string | undefined): IconComponent => {\n const fileExtension = getFileExtension(ext);\n\n if (mime?.includes(ASSET_TYPES.Image)) {\n return Image;\n }\n\n if (mime?.includes(ASSET_TYPES.Video)) {\n return Play;\n }\n\n if (mime?.includes(ASSET_TYPES.Audio)) {\n return Headphones;\n }\n\n return fileExtension ? DOC_ICON_MAP[fileExtension] || FileIcon : FileIcon;\n};\n"],"names":["DOC_ICON_MAP","pdf","FilePdf","csv","FileCsv","xls","FileXls","zip","FileZip","getAssetIcon","mime","ext","fileExtension","getFileExtension","includes","ASSET_TYPES","Image","Video","Play","Audio","Headphones","FileIcon"],"mappings":";;;;AA6BA,MAAMA,YAAAA,GAA8C;IAClDC,GAAAA,EAAKC,OAAAA;IACLC,GAAAA,EAAKC,OAAAA;IACLC,GAAAA,EAAKC,OAAAA;IACLC,GAAAA,EAAKC;AACP,CAAA;AAEO,MAAMC,YAAAA,GAAe,CAACC,IAAAA,EAA0BC,GAAAA,GAAAA;AACrD,IAAA,MAAMC,gBAAgBC,gBAAAA,CAAiBF,GAAAA,CAAAA;AAEvC,IAAA,IAAID,IAAAA,EAAMI,QAAAA,CAASC,WAAAA,CAAYC,KAAK,CAAA,EAAG;QACrC,OAAOA,KAAAA;AACT,IAAA;AAEA,IAAA,IAAIN,IAAAA,EAAMI,QAAAA,CAASC,WAAAA,CAAYE,KAAK,CAAA,EAAG;QACrC,OAAOC,IAAAA;AACT,IAAA;AAEA,IAAA,IAAIR,IAAAA,EAAMI,QAAAA,CAASC,WAAAA,CAAYI,KAAK,CAAA,EAAG;QACrC,OAAOC,UAAAA;AACT,IAAA;AAEA,IAAA,OAAOR,aAAAA,GAAgBZ,YAAY,CAACY,aAAAA,CAAc,IAAIS,IAAAA,GAAWA,IAAAA;AACnE;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const isNonEmptyString = (value)=>typeof value === 'string' && value.length > 0;
|
|
4
|
+
const getBulkMoveErrorMessage = (error, fallback)=>{
|
|
5
|
+
if (!error || typeof error !== 'object') {
|
|
6
|
+
return fallback;
|
|
7
|
+
}
|
|
8
|
+
const rtkError = error;
|
|
9
|
+
const candidates = [
|
|
10
|
+
rtkError.data?.error?.message,
|
|
11
|
+
rtkError.data?.message,
|
|
12
|
+
rtkError.message
|
|
13
|
+
];
|
|
14
|
+
for (const candidate of candidates){
|
|
15
|
+
if (isNonEmptyString(candidate)) {
|
|
16
|
+
return candidate;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return fallback;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.getBulkMoveErrorMessage = getBulkMoveErrorMessage;
|
|
23
|
+
//# sourceMappingURL=getBulkMoveErrorMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBulkMoveErrorMessage.js","sources":["../../../../admin/src/future/utils/getBulkMoveErrorMessage.ts"],"sourcesContent":["const isNonEmptyString = (value: unknown): value is string =>\n typeof value === 'string' && value.length > 0;\n\nexport const getBulkMoveErrorMessage = (error: unknown, fallback: string): string => {\n if (!error || typeof error !== 'object') {\n return fallback;\n }\n\n const rtkError = error as {\n message?: unknown;\n data?: { error?: { message?: unknown }; message?: unknown };\n };\n\n const candidates = [rtkError.data?.error?.message, rtkError.data?.message, rtkError.message];\n\n for (const candidate of candidates) {\n if (isNonEmptyString(candidate)) {\n return candidate;\n }\n }\n\n return fallback;\n};\n"],"names":["isNonEmptyString","value","length","getBulkMoveErrorMessage","error","fallback","rtkError","candidates","data","message","candidate"],"mappings":";;AAAA,MAAMA,gBAAAA,GAAmB,CAACC,KAAAA,GACxB,OAAOA,UAAU,QAAA,IAAYA,KAAAA,CAAMC,MAAM,GAAG,CAAA;AAEvC,MAAMC,uBAAAA,GAA0B,CAACC,KAAAA,EAAgBC,QAAAA,GAAAA;AACtD,IAAA,IAAI,CAACD,KAAAA,IAAS,OAAOA,KAAAA,KAAU,QAAA,EAAU;QACvC,OAAOC,QAAAA;AACT,IAAA;AAEA,IAAA,MAAMC,QAAAA,GAAWF,KAAAA;AAKjB,IAAA,MAAMG,UAAAA,GAAa;QAACD,QAAAA,CAASE,IAAI,EAAEJ,KAAAA,EAAOK,OAAAA;AAASH,QAAAA,QAAAA,CAASE,IAAI,EAAEC,OAAAA;AAASH,QAAAA,QAAAA,CAASG;AAAQ,KAAA;IAE5F,KAAK,MAAMC,aAAaH,UAAAA,CAAY;AAClC,QAAA,IAAIP,iBAAiBU,SAAAA,CAAAA,EAAY;YAC/B,OAAOA,SAAAA;AACT,QAAA;AACF,IAAA;IAEA,OAAOL,QAAAA;AACT;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const isNonEmptyString = (value)=>typeof value === 'string' && value.length > 0;
|
|
2
|
+
const getBulkMoveErrorMessage = (error, fallback)=>{
|
|
3
|
+
if (!error || typeof error !== 'object') {
|
|
4
|
+
return fallback;
|
|
5
|
+
}
|
|
6
|
+
const rtkError = error;
|
|
7
|
+
const candidates = [
|
|
8
|
+
rtkError.data?.error?.message,
|
|
9
|
+
rtkError.data?.message,
|
|
10
|
+
rtkError.message
|
|
11
|
+
];
|
|
12
|
+
for (const candidate of candidates){
|
|
13
|
+
if (isNonEmptyString(candidate)) {
|
|
14
|
+
return candidate;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return fallback;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { getBulkMoveErrorMessage };
|
|
21
|
+
//# sourceMappingURL=getBulkMoveErrorMessage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBulkMoveErrorMessage.mjs","sources":["../../../../admin/src/future/utils/getBulkMoveErrorMessage.ts"],"sourcesContent":["const isNonEmptyString = (value: unknown): value is string =>\n typeof value === 'string' && value.length > 0;\n\nexport const getBulkMoveErrorMessage = (error: unknown, fallback: string): string => {\n if (!error || typeof error !== 'object') {\n return fallback;\n }\n\n const rtkError = error as {\n message?: unknown;\n data?: { error?: { message?: unknown }; message?: unknown };\n };\n\n const candidates = [rtkError.data?.error?.message, rtkError.data?.message, rtkError.message];\n\n for (const candidate of candidates) {\n if (isNonEmptyString(candidate)) {\n return candidate;\n }\n }\n\n return fallback;\n};\n"],"names":["isNonEmptyString","value","length","getBulkMoveErrorMessage","error","fallback","rtkError","candidates","data","message","candidate"],"mappings":"AAAA,MAAMA,gBAAAA,GAAmB,CAACC,KAAAA,GACxB,OAAOA,UAAU,QAAA,IAAYA,KAAAA,CAAMC,MAAM,GAAG,CAAA;AAEvC,MAAMC,uBAAAA,GAA0B,CAACC,KAAAA,EAAgBC,QAAAA,GAAAA;AACtD,IAAA,IAAI,CAACD,KAAAA,IAAS,OAAOA,KAAAA,KAAU,QAAA,EAAU;QACvC,OAAOC,QAAAA;AACT,IAAA;AAEA,IAAA,MAAMC,QAAAA,GAAWF,KAAAA;AAKjB,IAAA,MAAMG,UAAAA,GAAa;QAACD,QAAAA,CAASE,IAAI,EAAEJ,KAAAA,EAAOK,OAAAA;AAASH,QAAAA,QAAAA,CAASE,IAAI,EAAEC,OAAAA;AAASH,QAAAA,QAAAA,CAASG;AAAQ,KAAA;IAE5F,KAAK,MAAMC,aAAaH,UAAAA,CAAY;AAClC,QAAA,IAAIP,iBAAiBU,SAAAA,CAAAA,EAAY;YAC/B,OAAOA,SAAAA;AACT,QAAA;AACF,IAAA;IAEA,OAAOL,QAAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAIMetadataJob.js","sources":["../../../admin/src/hooks/useAIMetadataJob.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useFetchClient, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useQueryClient } from 'react-query';\n\nimport {
|
|
1
|
+
{"version":3,"file":"useAIMetadataJob.js","sources":["../../../admin/src/hooks/useAIMetadataJob.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useFetchClient, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useQueryClient } from 'react-query';\n\nimport { getTrad } from '../utils';\n\nimport type {\n AIMetadataJob,\n GetLatestAIMetadataJob,\n} from '../../../shared/contracts/ai-metadata-jobs';\n\nconst fetchLatestJob = async (\n get: ReturnType<typeof useFetchClient>['get']\n): Promise<AIMetadataJob | null> => {\n try {\n const { data } = await get<GetLatestAIMetadataJob.Response['data']>(\n '/upload/actions/generate-ai-metadata/latest'\n );\n return data;\n } catch {\n // Return null on any error - UI treats this as \"no active job\"\n return null;\n }\n};\n\nexport const useAIMetadataJob = (options?: { enabled?: boolean }) => {\n const { get } = useFetchClient();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const queryClient = useQueryClient();\n const enabled = options?.enabled ?? true;\n\n const [previousJobStatus, setPreviousJobStatus] = React.useState<AIMetadataJob['status'] | null>(\n null\n );\n\n // Single query with conditional polling\n const { data: job, refetch } = useQuery<AIMetadataJob | null, { message: string }>(\n ['ai-metadata-latest-job'],\n () => fetchLatestJob(get),\n {\n enabled,\n // Poll every second when job is processing\n refetchInterval: (data) => {\n // If no data yet, don't poll\n if (!data) return false;\n\n // Poll while processing\n if (data.status === 'processing') {\n return 1000;\n }\n\n // Stop polling when completed or failed\n return false;\n },\n retry: false,\n refetchOnWindowFocus: false,\n }\n );\n\n const currentJobStatus = job?.status ?? null;\n\n // Detect status transitions and show notifications\n React.useEffect(() => {\n if (!currentJobStatus) return;\n\n // Detect transition from active state to completed\n if (previousJobStatus === 'processing' && currentJobStatus === 'completed') {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('settings.form.aiMetadata.job-completed'),\n defaultMessage: 'Successfully generated metadata',\n }),\n });\n // Invalidate metadata count query to refresh the count\n queryClient.invalidateQueries(['ai-metadata-count']);\n }\n\n // Detect transition from active state to failed\n if (previousJobStatus === 'processing' && currentJobStatus === 'failed') {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('settings.form.aiMetadata.job-failed'),\n defaultMessage: 'Failed to generate metadata. Please try again.',\n }),\n });\n }\n\n // Update previous status if it changed\n if (previousJobStatus !== currentJobStatus) {\n setPreviousJobStatus(currentJobStatus);\n }\n }, [currentJobStatus, previousJobStatus, toggleNotification, formatMessage, queryClient]);\n\n return {\n data: job,\n refetch,\n };\n};\n"],"names":["fetchLatestJob","get","data","useAIMetadataJob","options","useFetchClient","toggleNotification","useNotification","formatMessage","useIntl","queryClient","useQueryClient","enabled","previousJobStatus","setPreviousJobStatus","React","useState","job","refetch","useQuery","refetchInterval","status","retry","refetchOnWindowFocus","currentJobStatus","useEffect","type","message","id","getTrad","defaultMessage","invalidateQueries"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAMA,iBAAiB,OACrBC,GAAAA,GAAAA;IAEA,IAAI;AACF,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMD,GAAAA,CACrB,6CAAA,CAAA;QAEF,OAAOC,IAAAA;AACT,IAAA,CAAA,CAAE,OAAM;;QAEN,OAAO,IAAA;AACT,IAAA;AACF,CAAA;AAEO,MAAMC,mBAAmB,CAACC,OAAAA,GAAAA;IAC/B,MAAM,EAAEH,GAAG,EAAE,GAAGI,0BAAAA,EAAAA;IAChB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,WAAAA,GAAcC,yBAAAA,EAAAA;IACpB,MAAMC,OAAAA,GAAUR,SAASQ,OAAAA,IAAW,IAAA;AAEpC,IAAA,MAAM,CAACC,iBAAAA,EAAmBC,oBAAAA,CAAqB,GAAGC,gBAAAA,CAAMC,QAAQ,CAC9D,IAAA,CAAA;;AAIF,IAAA,MAAM,EAAEd,IAAAA,EAAMe,GAAG,EAAEC,OAAO,EAAE,GAAGC,mBAAAA,CAC7B;AAAC,QAAA;KAAyB,EAC1B,IAAMnB,eAAeC,GAAAA,CAAAA,EACrB;AACEW,QAAAA,OAAAA;;AAEAQ,QAAAA,eAAAA,EAAiB,CAAClB,IAAAA,GAAAA;;YAEhB,IAAI,CAACA,MAAM,OAAO,KAAA;;YAGlB,IAAIA,IAAAA,CAAKmB,MAAM,KAAK,YAAA,EAAc;gBAChC,OAAO,IAAA;AACT,YAAA;;YAGA,OAAO,KAAA;AACT,QAAA,CAAA;QACAC,KAAAA,EAAO,KAAA;QACPC,oBAAAA,EAAsB;AACxB,KAAA,CAAA;IAGF,MAAMC,gBAAAA,GAAmBP,KAAKI,MAAAA,IAAU,IAAA;;AAGxCN,IAAAA,gBAAAA,CAAMU,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACD,gBAAAA,EAAkB;;QAGvB,IAAIX,iBAAAA,KAAsB,YAAA,IAAgBW,gBAAAA,KAAqB,WAAA,EAAa;YAC1ElB,kBAAAA,CAAmB;gBACjBoB,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnB,aAAAA,CAAc;AACrBoB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,wCAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;;AAEApB,YAAAA,WAAAA,CAAYqB,iBAAiB,CAAC;AAAC,gBAAA;AAAoB,aAAA,CAAA;AACrD,QAAA;;QAGA,IAAIlB,iBAAAA,KAAsB,YAAA,IAAgBW,gBAAAA,KAAqB,QAAA,EAAU;YACvElB,kBAAAA,CAAmB;gBACjBoB,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnB,aAAAA,CAAc;AACrBoB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,qCAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;;AAGA,QAAA,IAAIjB,sBAAsBW,gBAAAA,EAAkB;YAC1CV,oBAAAA,CAAqBU,gBAAAA,CAAAA;AACvB,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA,gBAAAA;AAAkBX,QAAAA,iBAAAA;AAAmBP,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeE,QAAAA;AAAY,KAAA,CAAA;IAExF,OAAO;QACLR,IAAAA,EAAMe,GAAAA;AACNC,QAAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAIMetadataJob.mjs","sources":["../../../admin/src/hooks/useAIMetadataJob.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useFetchClient, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useQueryClient } from 'react-query';\n\nimport {
|
|
1
|
+
{"version":3,"file":"useAIMetadataJob.mjs","sources":["../../../admin/src/hooks/useAIMetadataJob.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useFetchClient, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useQueryClient } from 'react-query';\n\nimport { getTrad } from '../utils';\n\nimport type {\n AIMetadataJob,\n GetLatestAIMetadataJob,\n} from '../../../shared/contracts/ai-metadata-jobs';\n\nconst fetchLatestJob = async (\n get: ReturnType<typeof useFetchClient>['get']\n): Promise<AIMetadataJob | null> => {\n try {\n const { data } = await get<GetLatestAIMetadataJob.Response['data']>(\n '/upload/actions/generate-ai-metadata/latest'\n );\n return data;\n } catch {\n // Return null on any error - UI treats this as \"no active job\"\n return null;\n }\n};\n\nexport const useAIMetadataJob = (options?: { enabled?: boolean }) => {\n const { get } = useFetchClient();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const queryClient = useQueryClient();\n const enabled = options?.enabled ?? true;\n\n const [previousJobStatus, setPreviousJobStatus] = React.useState<AIMetadataJob['status'] | null>(\n null\n );\n\n // Single query with conditional polling\n const { data: job, refetch } = useQuery<AIMetadataJob | null, { message: string }>(\n ['ai-metadata-latest-job'],\n () => fetchLatestJob(get),\n {\n enabled,\n // Poll every second when job is processing\n refetchInterval: (data) => {\n // If no data yet, don't poll\n if (!data) return false;\n\n // Poll while processing\n if (data.status === 'processing') {\n return 1000;\n }\n\n // Stop polling when completed or failed\n return false;\n },\n retry: false,\n refetchOnWindowFocus: false,\n }\n );\n\n const currentJobStatus = job?.status ?? null;\n\n // Detect status transitions and show notifications\n React.useEffect(() => {\n if (!currentJobStatus) return;\n\n // Detect transition from active state to completed\n if (previousJobStatus === 'processing' && currentJobStatus === 'completed') {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('settings.form.aiMetadata.job-completed'),\n defaultMessage: 'Successfully generated metadata',\n }),\n });\n // Invalidate metadata count query to refresh the count\n queryClient.invalidateQueries(['ai-metadata-count']);\n }\n\n // Detect transition from active state to failed\n if (previousJobStatus === 'processing' && currentJobStatus === 'failed') {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('settings.form.aiMetadata.job-failed'),\n defaultMessage: 'Failed to generate metadata. Please try again.',\n }),\n });\n }\n\n // Update previous status if it changed\n if (previousJobStatus !== currentJobStatus) {\n setPreviousJobStatus(currentJobStatus);\n }\n }, [currentJobStatus, previousJobStatus, toggleNotification, formatMessage, queryClient]);\n\n return {\n data: job,\n refetch,\n };\n};\n"],"names":["fetchLatestJob","get","data","useAIMetadataJob","options","useFetchClient","toggleNotification","useNotification","formatMessage","useIntl","queryClient","useQueryClient","enabled","previousJobStatus","setPreviousJobStatus","React","useState","job","refetch","useQuery","refetchInterval","status","retry","refetchOnWindowFocus","currentJobStatus","useEffect","type","message","id","getTrad","defaultMessage","invalidateQueries"],"mappings":";;;;;;;;;;AAaA,MAAMA,iBAAiB,OACrBC,GAAAA,GAAAA;IAEA,IAAI;AACF,QAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMD,GAAAA,CACrB,6CAAA,CAAA;QAEF,OAAOC,IAAAA;AACT,IAAA,CAAA,CAAE,OAAM;;QAEN,OAAO,IAAA;AACT,IAAA;AACF,CAAA;AAEO,MAAMC,mBAAmB,CAACC,OAAAA,GAAAA;IAC/B,MAAM,EAAEH,GAAG,EAAE,GAAGI,cAAAA,EAAAA;IAChB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,WAAAA,GAAcC,cAAAA,EAAAA;IACpB,MAAMC,OAAAA,GAAUR,SAASQ,OAAAA,IAAW,IAAA;AAEpC,IAAA,MAAM,CAACC,iBAAAA,EAAmBC,oBAAAA,CAAqB,GAAGC,KAAAA,CAAMC,QAAQ,CAC9D,IAAA,CAAA;;AAIF,IAAA,MAAM,EAAEd,IAAAA,EAAMe,GAAG,EAAEC,OAAO,EAAE,GAAGC,QAAAA,CAC7B;AAAC,QAAA;KAAyB,EAC1B,IAAMnB,eAAeC,GAAAA,CAAAA,EACrB;AACEW,QAAAA,OAAAA;;AAEAQ,QAAAA,eAAAA,EAAiB,CAAClB,IAAAA,GAAAA;;YAEhB,IAAI,CAACA,MAAM,OAAO,KAAA;;YAGlB,IAAIA,IAAAA,CAAKmB,MAAM,KAAK,YAAA,EAAc;gBAChC,OAAO,IAAA;AACT,YAAA;;YAGA,OAAO,KAAA;AACT,QAAA,CAAA;QACAC,KAAAA,EAAO,KAAA;QACPC,oBAAAA,EAAsB;AACxB,KAAA,CAAA;IAGF,MAAMC,gBAAAA,GAAmBP,KAAKI,MAAAA,IAAU,IAAA;;AAGxCN,IAAAA,KAAAA,CAAMU,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACD,gBAAAA,EAAkB;;QAGvB,IAAIX,iBAAAA,KAAsB,YAAA,IAAgBW,gBAAAA,KAAqB,WAAA,EAAa;YAC1ElB,kBAAAA,CAAmB;gBACjBoB,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASnB,aAAAA,CAAc;AACrBoB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,wCAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;;AAEApB,YAAAA,WAAAA,CAAYqB,iBAAiB,CAAC;AAAC,gBAAA;AAAoB,aAAA,CAAA;AACrD,QAAA;;QAGA,IAAIlB,iBAAAA,KAAsB,YAAA,IAAgBW,gBAAAA,KAAqB,QAAA,EAAU;YACvElB,kBAAAA,CAAmB;gBACjBoB,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASnB,aAAAA,CAAc;AACrBoB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,qCAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;;AAGA,QAAA,IAAIjB,sBAAsBW,gBAAAA,EAAkB;YAC1CV,oBAAAA,CAAqBU,gBAAAA,CAAAA;AACvB,QAAA;IACF,CAAA,EAAG;AAACA,QAAAA,gBAAAA;AAAkBX,QAAAA,iBAAAA;AAAmBP,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeE,QAAAA;AAAY,KAAA,CAAA;IAExF,OAAO;QACLR,IAAAA,EAAMe,GAAAA;AACNC,QAAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssets.js","sources":["../../../admin/src/hooks/useAssets.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useNotifyAT } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\n\nimport { Query, GetFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\n\ninterface UseAssetsOptions {\n skipWhen?: boolean;\n query?: Query;\n}\n\nexport const useAssets = ({ skipWhen = false, query = {} }: UseAssetsOptions = {}) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const { get } = useFetchClient();\n const { folder, folderPath: _folderPath, _q, ...paramsExceptFolderAndQ } = query;\n\n let params: Query;\n\n if (_q) {\n params = {\n ...paramsExceptFolderAndQ,\n _q: encodeURIComponent(_q),\n };\n } else {\n params = {\n ...paramsExceptFolderAndQ,\n filters: {\n $and: [\n ...(paramsExceptFolderAndQ?.filters?.$and ?? []),\n {\n folder: {\n id: folder ?? {\n $null: true,\n },\n },\n },\n ],\n },\n };\n }\n\n const { data, error, isLoading } = useQuery<\n GetFiles.Response['data'],\n GetFiles.Response['error']\n >(\n [pluginId, 'assets', params],\n async () => {\n const { data } = await get('/upload/files', { params });\n\n return data;\n },\n {\n enabled: !skipWhen,\n staleTime: 0,\n cacheTime: 0,\n select(data) {\n if (data?.results && Array.isArray(data.results)) {\n return {\n ...data,\n results: data.results\n /**\n * Filter out assets that don't have a name.\n * So we don't try to render them as assets\n * and get errors.\n */\n .filter((asset) => asset.name)\n .map((asset) => ({\n ...asset,\n /**\n * Mime and ext cannot be null in the front-end because\n * we expect them to be strings and use the `includes` method.\n */\n mime: asset.mime ?? '',\n ext: asset.ext ?? '',\n })),\n };\n }\n\n return data;\n },\n }\n );\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: 'list.asset.at.finished',\n defaultMessage: 'The assets have finished loading.',\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n return { data, error, isLoading };\n};\n"],"names":["useAssets","skipWhen","query","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","get","useFetchClient","folder","folderPath","_folderPath","_q","paramsExceptFolderAndQ","params","encodeURIComponent","filters","$and","id","$null","data","error","isLoading","useQuery","pluginId","enabled","staleTime","cacheTime","select","results","Array","isArray","filter","asset","name","map","mime","ext","React","useEffect","defaultMessage","type","message"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,SAAAA,GAAY,CAAC,EAAEC,QAAAA,GAAW,KAAK,EAAEC,KAAAA,GAAQ,EAAE,EAAoB,GAAG,EAAE,GAAA;IAC/E,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAM,EAAEC,YAAY,EAAE,GAAGC,wBAAAA,EAAAA;IACzB,MAAM,EAAEC,GAAG,EAAE,GAAGC,0BAAAA,EAAAA;IAChB,MAAM,EAAEC,MAAM,EAAEC,UAAAA,EAAYC,WAAW,EAAEC,EAAE,EAAE,GAAGC,sBAAAA,EAAwB,GAAGb,KAAAA;IAE3E,IAAIc,MAAAA;AAEJ,IAAA,IAAIF,EAAAA,EAAI;QACNE,MAAAA,GAAS;AACP,YAAA,GAAGD,sBAAsB;AACzBD,YAAAA,EAAAA,EAAIG,kBAAAA,CAAmBH,EAAAA;AACzB,SAAA;IACF,CAAA,MAAO;QACLE,MAAAA,GAAS;AACP,YAAA,GAAGD,sBAAsB;YACzBG,OAAAA,EAAS;gBACPC,IAAAA,EAAM;uBACAJ,sBAAAA,EAAwBG,OAAAA,EAASC,QAAQ,EAAE;AAC/C,oBAAA;wBACER,MAAAA,EAAQ;AACNS,4BAAAA,EAAAA,EAAIT,MAAAA,IAAU;gCACZU,KAAAA,EAAO;AACT;AACF;AACF;AACD;AACH;AACF,SAAA;AACF,IAAA;IAEA,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEC,SAAS,EAAE,GAAGC,mBAAAA,CAIjC;AAACC,QAAAA,iBAAAA;AAAU,QAAA,QAAA;AAAUV,QAAAA;KAAO,EAC5B,UAAA;AACE,QAAA,MAAM,EAAEM,IAAI,EAAE,GAAG,MAAMb,
|
|
1
|
+
{"version":3,"file":"useAssets.js","sources":["../../../admin/src/hooks/useAssets.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useNotifyAT } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\n\nimport { Query, GetFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\n\ninterface UseAssetsOptions {\n skipWhen?: boolean;\n query?: Query;\n}\n\nexport const useAssets = ({ skipWhen = false, query = {} }: UseAssetsOptions = {}) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const { get } = useFetchClient();\n const { folder, folderPath: _folderPath, _q, ...paramsExceptFolderAndQ } = query;\n\n let params: Query;\n\n if (_q) {\n params = {\n ...paramsExceptFolderAndQ,\n _q: encodeURIComponent(_q),\n };\n } else {\n params = {\n ...paramsExceptFolderAndQ,\n filters: {\n $and: [\n ...(paramsExceptFolderAndQ?.filters?.$and ?? []),\n {\n folder: {\n id: folder ?? {\n $null: true,\n },\n },\n },\n ],\n },\n };\n }\n\n const { data, error, isLoading } = useQuery<\n GetFiles.Response['data'],\n GetFiles.Response['error']\n >(\n [pluginId, 'assets', params],\n async () => {\n const { data } = await get<GetFiles.Response['data']>('/upload/files', { params });\n\n return data;\n },\n {\n enabled: !skipWhen,\n staleTime: 0,\n cacheTime: 0,\n select(data) {\n if (data?.results && Array.isArray(data.results)) {\n return {\n ...data,\n results: data.results\n /**\n * Filter out assets that don't have a name.\n * So we don't try to render them as assets\n * and get errors.\n */\n .filter((asset) => asset.name)\n .map((asset) => ({\n ...asset,\n /**\n * Mime and ext cannot be null in the front-end because\n * we expect them to be strings and use the `includes` method.\n */\n mime: asset.mime ?? '',\n ext: asset.ext ?? '',\n })),\n };\n }\n\n return data;\n },\n }\n );\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: 'list.asset.at.finished',\n defaultMessage: 'The assets have finished loading.',\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n return { data, error, isLoading };\n};\n"],"names":["useAssets","skipWhen","query","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","get","useFetchClient","folder","folderPath","_folderPath","_q","paramsExceptFolderAndQ","params","encodeURIComponent","filters","$and","id","$null","data","error","isLoading","useQuery","pluginId","enabled","staleTime","cacheTime","select","results","Array","isArray","filter","asset","name","map","mime","ext","React","useEffect","defaultMessage","type","message"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAssets.mjs","sources":["../../../admin/src/hooks/useAssets.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useNotifyAT } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\n\nimport { Query, GetFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\n\ninterface UseAssetsOptions {\n skipWhen?: boolean;\n query?: Query;\n}\n\nexport const useAssets = ({ skipWhen = false, query = {} }: UseAssetsOptions = {}) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const { get } = useFetchClient();\n const { folder, folderPath: _folderPath, _q, ...paramsExceptFolderAndQ } = query;\n\n let params: Query;\n\n if (_q) {\n params = {\n ...paramsExceptFolderAndQ,\n _q: encodeURIComponent(_q),\n };\n } else {\n params = {\n ...paramsExceptFolderAndQ,\n filters: {\n $and: [\n ...(paramsExceptFolderAndQ?.filters?.$and ?? []),\n {\n folder: {\n id: folder ?? {\n $null: true,\n },\n },\n },\n ],\n },\n };\n }\n\n const { data, error, isLoading } = useQuery<\n GetFiles.Response['data'],\n GetFiles.Response['error']\n >(\n [pluginId, 'assets', params],\n async () => {\n const { data } = await get('/upload/files', { params });\n\n return data;\n },\n {\n enabled: !skipWhen,\n staleTime: 0,\n cacheTime: 0,\n select(data) {\n if (data?.results && Array.isArray(data.results)) {\n return {\n ...data,\n results: data.results\n /**\n * Filter out assets that don't have a name.\n * So we don't try to render them as assets\n * and get errors.\n */\n .filter((asset) => asset.name)\n .map((asset) => ({\n ...asset,\n /**\n * Mime and ext cannot be null in the front-end because\n * we expect them to be strings and use the `includes` method.\n */\n mime: asset.mime ?? '',\n ext: asset.ext ?? '',\n })),\n };\n }\n\n return data;\n },\n }\n );\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: 'list.asset.at.finished',\n defaultMessage: 'The assets have finished loading.',\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n return { data, error, isLoading };\n};\n"],"names":["useAssets","skipWhen","query","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","get","useFetchClient","folder","folderPath","_folderPath","_q","paramsExceptFolderAndQ","params","encodeURIComponent","filters","$and","id","$null","data","error","isLoading","useQuery","pluginId","enabled","staleTime","cacheTime","select","results","Array","isArray","filter","asset","name","map","mime","ext","React","useEffect","defaultMessage","type","message"],"mappings":";;;;;;;AAeO,MAAMA,SAAAA,GAAY,CAAC,EAAEC,QAAAA,GAAW,KAAK,EAAEC,KAAAA,GAAQ,EAAE,EAAoB,GAAG,EAAE,GAAA;IAC/E,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,YAAY,EAAE,GAAGC,WAAAA,EAAAA;IACzB,MAAM,EAAEC,GAAG,EAAE,GAAGC,cAAAA,EAAAA;IAChB,MAAM,EAAEC,MAAM,EAAEC,UAAAA,EAAYC,WAAW,EAAEC,EAAE,EAAE,GAAGC,sBAAAA,EAAwB,GAAGb,KAAAA;IAE3E,IAAIc,MAAAA;AAEJ,IAAA,IAAIF,EAAAA,EAAI;QACNE,MAAAA,GAAS;AACP,YAAA,GAAGD,sBAAsB;AACzBD,YAAAA,EAAAA,EAAIG,kBAAAA,CAAmBH,EAAAA;AACzB,SAAA;IACF,CAAA,MAAO;QACLE,MAAAA,GAAS;AACP,YAAA,GAAGD,sBAAsB;YACzBG,OAAAA,EAAS;gBACPC,IAAAA,EAAM;uBACAJ,sBAAAA,EAAwBG,OAAAA,EAASC,QAAQ,EAAE;AAC/C,oBAAA;wBACER,MAAAA,EAAQ;AACNS,4BAAAA,EAAAA,EAAIT,MAAAA,IAAU;gCACZU,KAAAA,EAAO;AACT;AACF;AACF;AACD;AACH;AACF,SAAA;AACF,IAAA;IAEA,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEC,SAAS,EAAE,GAAGC,QAAAA,CAIjC;AAACC,QAAAA,QAAAA;AAAU,QAAA,QAAA;AAAUV,QAAAA;KAAO,EAC5B,UAAA;AACE,QAAA,MAAM,EAAEM,IAAI,EAAE,GAAG,MAAMb,
|
|
1
|
+
{"version":3,"file":"useAssets.mjs","sources":["../../../admin/src/hooks/useAssets.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useNotifyAT } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useQuery } from 'react-query';\n\nimport { Query, GetFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\n\ninterface UseAssetsOptions {\n skipWhen?: boolean;\n query?: Query;\n}\n\nexport const useAssets = ({ skipWhen = false, query = {} }: UseAssetsOptions = {}) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const { get } = useFetchClient();\n const { folder, folderPath: _folderPath, _q, ...paramsExceptFolderAndQ } = query;\n\n let params: Query;\n\n if (_q) {\n params = {\n ...paramsExceptFolderAndQ,\n _q: encodeURIComponent(_q),\n };\n } else {\n params = {\n ...paramsExceptFolderAndQ,\n filters: {\n $and: [\n ...(paramsExceptFolderAndQ?.filters?.$and ?? []),\n {\n folder: {\n id: folder ?? {\n $null: true,\n },\n },\n },\n ],\n },\n };\n }\n\n const { data, error, isLoading } = useQuery<\n GetFiles.Response['data'],\n GetFiles.Response['error']\n >(\n [pluginId, 'assets', params],\n async () => {\n const { data } = await get<GetFiles.Response['data']>('/upload/files', { params });\n\n return data;\n },\n {\n enabled: !skipWhen,\n staleTime: 0,\n cacheTime: 0,\n select(data) {\n if (data?.results && Array.isArray(data.results)) {\n return {\n ...data,\n results: data.results\n /**\n * Filter out assets that don't have a name.\n * So we don't try to render them as assets\n * and get errors.\n */\n .filter((asset) => asset.name)\n .map((asset) => ({\n ...asset,\n /**\n * Mime and ext cannot be null in the front-end because\n * we expect them to be strings and use the `includes` method.\n */\n mime: asset.mime ?? '',\n ext: asset.ext ?? '',\n })),\n };\n }\n\n return data;\n },\n }\n );\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: 'list.asset.at.finished',\n defaultMessage: 'The assets have finished loading.',\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n }\n }, [error, formatMessage, toggleNotification]);\n\n return { data, error, isLoading };\n};\n"],"names":["useAssets","skipWhen","query","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","get","useFetchClient","folder","folderPath","_folderPath","_q","paramsExceptFolderAndQ","params","encodeURIComponent","filters","$and","id","$null","data","error","isLoading","useQuery","pluginId","enabled","staleTime","cacheTime","select","results","Array","isArray","filter","asset","name","map","mime","ext","React","useEffect","defaultMessage","type","message"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBulkEdit.js","sources":["../../../admin/src/hooks/useBulkEdit.ts"],"sourcesContent":["import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { BulkUpdateFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\ninterface FileInfoUpdate {\n name: string;\n alternativeText: string | null;\n caption: string | null;\n folder: number | null;\n}\n\ninterface BulkEditParams {\n updates: Array<{\n id: number;\n fileInfo: FileInfoUpdate;\n }>;\n}\n\nexport const useBulkEdit = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkEditQuery = ({ updates }: BulkEditParams) => {\n return post('/upload/actions/bulk-update'
|
|
1
|
+
{"version":3,"file":"useBulkEdit.js","sources":["../../../admin/src/hooks/useBulkEdit.ts"],"sourcesContent":["import { type FetchResponse, useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { BulkUpdateFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\ninterface FileInfoUpdate {\n name: string;\n alternativeText: string | null;\n caption: string | null;\n folder: number | null;\n}\n\ninterface BulkEditParams {\n updates: Array<{\n id: number;\n fileInfo: FileInfoUpdate;\n }>;\n}\n\nexport const useBulkEdit = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkEditQuery = ({ updates }: BulkEditParams) => {\n return post<BulkUpdateFiles.Response['data'], BulkUpdateFiles.Request['body']>(\n '/upload/actions/bulk-update',\n { updates }\n );\n };\n\n const mutation = useMutation<\n FetchResponse<BulkUpdateFiles.Response['data']>,\n BulkUpdateFiles.Response['error'],\n BulkEditParams\n >(bulkEditQuery, {\n onSuccess(res) {\n const { data } = res;\n\n if (data && data.length > 0) {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('modal.edit.success-label'),\n defaultMessage: 'Files have been successfully updated.',\n }),\n });\n },\n });\n\n const edit = (\n updates: Array<{\n id: number;\n fileInfo: FileInfoUpdate;\n }>\n ) => mutation.mutateAsync({ updates });\n\n return { ...mutation, edit };\n};\n"],"names":["useBulkEdit","formatMessage","useIntl","toggleNotification","useNotification","queryClient","useQueryClient","post","useFetchClient","bulkEditQuery","updates","mutation","useMutation","onSuccess","res","data","length","refetchQueries","pluginId","active","type","message","id","getTrad","defaultMessage","edit","mutateAsync"],"mappings":";;;;;;;;;;;;MAsBaA,WAAAA,GAAc,IAAA;IACzB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAMC,WAAAA,GAAcC,yBAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC,0BAAAA,EAAAA;AAEjB,IAAA,MAAMC,aAAAA,GAAgB,CAAC,EAAEC,OAAO,EAAkB,GAAA;AAChD,QAAA,OAAOH,KACL,6BAAA,EACA;AAAEG,YAAAA;AAAQ,SAAA,CAAA;AAEd,IAAA,CAAA;IAEA,MAAMC,QAAAA,GAAWC,uBAIfH,aAAAA,EAAe;AACfI,QAAAA,SAAAA,CAAAA,CAAUC,GAAG,EAAA;YACX,MAAM,EAAEC,IAAI,EAAE,GAAGD,GAAAA;AAEjB,YAAA,IAAIC,IAAAA,IAAQA,IAAAA,CAAKC,MAAM,GAAG,CAAA,EAAG;AAC3BX,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAS,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AAChEd,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAc,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACrEd,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAU,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACnE,YAAA;YAEAhB,kBAAAA,CAAmB;gBACjBiB,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASpB,aAAAA,CAAc;AACrBqB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,0BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMC,IAAAA,GAAO,CACXf,OAAAA,GAIGC,QAAAA,CAASe,WAAW,CAAC;AAAEhB,YAAAA;AAAQ,SAAA,CAAA;IAEpC,OAAO;AAAE,QAAA,GAAGC,QAAQ;AAAEc,QAAAA;AAAK,KAAA;AAC7B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBulkEdit.mjs","sources":["../../../admin/src/hooks/useBulkEdit.ts"],"sourcesContent":["import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { BulkUpdateFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\ninterface FileInfoUpdate {\n name: string;\n alternativeText: string | null;\n caption: string | null;\n folder: number | null;\n}\n\ninterface BulkEditParams {\n updates: Array<{\n id: number;\n fileInfo: FileInfoUpdate;\n }>;\n}\n\nexport const useBulkEdit = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkEditQuery = ({ updates }: BulkEditParams) => {\n return post('/upload/actions/bulk-update'
|
|
1
|
+
{"version":3,"file":"useBulkEdit.mjs","sources":["../../../admin/src/hooks/useBulkEdit.ts"],"sourcesContent":["import { type FetchResponse, useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { BulkUpdateFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\ninterface FileInfoUpdate {\n name: string;\n alternativeText: string | null;\n caption: string | null;\n folder: number | null;\n}\n\ninterface BulkEditParams {\n updates: Array<{\n id: number;\n fileInfo: FileInfoUpdate;\n }>;\n}\n\nexport const useBulkEdit = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkEditQuery = ({ updates }: BulkEditParams) => {\n return post<BulkUpdateFiles.Response['data'], BulkUpdateFiles.Request['body']>(\n '/upload/actions/bulk-update',\n { updates }\n );\n };\n\n const mutation = useMutation<\n FetchResponse<BulkUpdateFiles.Response['data']>,\n BulkUpdateFiles.Response['error'],\n BulkEditParams\n >(bulkEditQuery, {\n onSuccess(res) {\n const { data } = res;\n\n if (data && data.length > 0) {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('modal.edit.success-label'),\n defaultMessage: 'Files have been successfully updated.',\n }),\n });\n },\n });\n\n const edit = (\n updates: Array<{\n id: number;\n fileInfo: FileInfoUpdate;\n }>\n ) => mutation.mutateAsync({ updates });\n\n return { ...mutation, edit };\n};\n"],"names":["useBulkEdit","formatMessage","useIntl","toggleNotification","useNotification","queryClient","useQueryClient","post","useFetchClient","bulkEditQuery","updates","mutation","useMutation","onSuccess","res","data","length","refetchQueries","pluginId","active","type","message","id","getTrad","defaultMessage","edit","mutateAsync"],"mappings":";;;;;;;;;;MAsBaA,WAAAA,GAAc,IAAA;IACzB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAMC,WAAAA,GAAcC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;AAEjB,IAAA,MAAMC,aAAAA,GAAgB,CAAC,EAAEC,OAAO,EAAkB,GAAA;AAChD,QAAA,OAAOH,KACL,6BAAA,EACA;AAAEG,YAAAA;AAAQ,SAAA,CAAA;AAEd,IAAA,CAAA;IAEA,MAAMC,QAAAA,GAAWC,YAIfH,aAAAA,EAAe;AACfI,QAAAA,SAAAA,CAAAA,CAAUC,GAAG,EAAA;YACX,MAAM,EAAEC,IAAI,EAAE,GAAGD,GAAAA;AAEjB,YAAA,IAAIC,IAAAA,IAAQA,IAAAA,CAAKC,MAAM,GAAG,CAAA,EAAG;AAC3BX,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAS,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AAChEd,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAc,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACrEd,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAU,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACnE,YAAA;YAEAhB,kBAAAA,CAAmB;gBACjBiB,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASpB,aAAAA,CAAc;AACrBqB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,0BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMC,IAAAA,GAAO,CACXf,OAAAA,GAIGC,QAAAA,CAASe,WAAW,CAAC;AAAEhB,YAAAA;AAAQ,SAAA,CAAA;IAEpC,OAAO;AAAE,QAAA,GAAGC,QAAQ;AAAEc,QAAAA;AAAK,KAAA;AAC7B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBulkMove.js","sources":["../../../admin/src/hooks/useBulkMove.ts"],"sourcesContent":["import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { File, BulkMoveFiles } from '../../../shared/contracts/files';\nimport { Folder, BulkMoveFolders } from '../../../shared/contracts/folders';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nexport interface FolderWithType extends Folder {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\ninterface BulkMoveParams {\n destinationFolderId: number | string;\n filesAndFolders: Array<FolderWithType | FileWithType>;\n}\n\n// Define the shape of the accumulator object\ntype Payload = {\n fileIds?: number[];\n folderIds?: number[];\n};\n\nexport const useBulkMove = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkMoveQuery = ({ destinationFolderId, filesAndFolders }: BulkMoveParams) => {\n const payload = filesAndFolders.reduce<Payload>((acc, selected) => {\n const { id, type } = selected;\n const key = type === 'asset' ? 'fileIds' : 'folderIds';\n\n if (!acc[key]) {\n acc[key] = [];\n }\n\n acc[key]!.push(id);\n\n return acc;\n }, {});\n\n return post('/upload/actions/bulk-move'
|
|
1
|
+
{"version":3,"file":"useBulkMove.js","sources":["../../../admin/src/hooks/useBulkMove.ts"],"sourcesContent":["import { type FetchResponse, useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { File, BulkMoveFiles } from '../../../shared/contracts/files';\nimport { Folder, BulkMoveFolders } from '../../../shared/contracts/folders';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nexport interface FolderWithType extends Folder {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\ninterface BulkMoveParams {\n destinationFolderId: number | string;\n filesAndFolders: Array<FolderWithType | FileWithType>;\n}\n\n// Define the shape of the accumulator object\ntype Payload = {\n fileIds?: number[];\n folderIds?: number[];\n};\n\nexport const useBulkMove = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkMoveQuery = ({ destinationFolderId, filesAndFolders }: BulkMoveParams) => {\n const payload = filesAndFolders.reduce<Payload>((acc, selected) => {\n const { id, type } = selected;\n const key = type === 'asset' ? 'fileIds' : 'folderIds';\n\n if (!acc[key]) {\n acc[key] = [];\n }\n\n acc[key]!.push(id);\n\n return acc;\n }, {});\n\n return post<BulkMoveFiles.Response['data'] | BulkMoveFolders.Response['data']>(\n '/upload/actions/bulk-move',\n { ...payload, destinationFolderId }\n );\n };\n\n const mutation = useMutation<\n FetchResponse<BulkMoveFiles.Response['data'] | BulkMoveFolders.Response['data']>,\n BulkMoveFolders.Response['error'] | BulkMoveFiles.Response['error'],\n BulkMoveParams\n >(bulkMoveQuery, {\n onSuccess(res) {\n const {\n data: { data },\n } = res;\n\n if (data?.files?.length > 0) {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n }\n\n // folders need to be re-fetched in any case, because assets might have been\n // moved into a sub-folder and therefore the count needs to be updated\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('modal.move.success-label'),\n defaultMessage: 'Elements have been moved successfully.',\n }),\n });\n },\n });\n\n const move = (\n destinationFolderId: number | string,\n filesAndFolders: Array<FolderWithType | FileWithType>\n ) => mutation.mutateAsync({ destinationFolderId, filesAndFolders });\n\n return { ...mutation, move };\n};\n"],"names":["useBulkMove","formatMessage","useIntl","toggleNotification","useNotification","queryClient","useQueryClient","post","useFetchClient","bulkMoveQuery","destinationFolderId","filesAndFolders","payload","reduce","acc","selected","id","type","key","push","mutation","useMutation","onSuccess","res","data","files","length","refetchQueries","pluginId","active","message","getTrad","defaultMessage","move","mutateAsync"],"mappings":";;;;;;;;;;;;MA4BaA,WAAAA,GAAc,IAAA;IACzB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAMC,WAAAA,GAAcC,yBAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC,0BAAAA,EAAAA;AAEjB,IAAA,MAAMC,gBAAgB,CAAC,EAAEC,mBAAmB,EAAEC,eAAe,EAAkB,GAAA;AAC7E,QAAA,MAAMC,OAAAA,GAAUD,eAAAA,CAAgBE,MAAM,CAAU,CAACC,GAAAA,EAAKC,QAAAA,GAAAA;AACpD,YAAA,MAAM,EAAEC,EAAE,EAAEC,IAAI,EAAE,GAAGF,QAAAA;YACrB,MAAMG,GAAAA,GAAMD,IAAAA,KAAS,OAAA,GAAU,SAAA,GAAY,WAAA;AAE3C,YAAA,IAAI,CAACH,GAAG,CAACI,GAAAA,CAAI,EAAE;gBACbJ,GAAG,CAACI,GAAAA,CAAI,GAAG,EAAE;AACf,YAAA;AAEAJ,YAAAA,GAAG,CAACI,GAAAA,CAAI,CAAEC,IAAI,CAACH,EAAAA,CAAAA;YAEf,OAAOF,GAAAA;AACT,QAAA,CAAA,EAAG,EAAC,CAAA;AAEJ,QAAA,OAAOP,KACL,2BAAA,EACA;AAAE,YAAA,GAAGK,OAAO;AAAEF,YAAAA;AAAoB,SAAA,CAAA;AAEtC,IAAA,CAAA;IAEA,MAAMU,QAAAA,GAAWC,uBAIfZ,aAAAA,EAAe;AACfa,QAAAA,SAAAA,CAAAA,CAAUC,GAAG,EAAA;AACX,YAAA,MAAM,EACJC,IAAAA,EAAM,EAAEA,IAAI,EAAE,EACf,GAAGD,GAAAA;YAEJ,IAAIC,IAAAA,EAAMC,KAAAA,EAAOC,MAAAA,GAAS,CAAA,EAAG;AAC3BrB,gBAAAA,WAAAA,CAAYsB,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAS,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AAChExB,gBAAAA,WAAAA,CAAYsB,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAc,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACvE,YAAA;;;AAIAxB,YAAAA,WAAAA,CAAYsB,cAAc,CAAC;AAACC,gBAAAA,iBAAAA;AAAU,gBAAA;aAAU,EAAE;gBAAEC,MAAAA,EAAQ;AAAK,aAAA,CAAA;YAEjE1B,kBAAAA,CAAmB;gBACjBc,IAAAA,EAAM,SAAA;AACNa,gBAAAA,OAAAA,EAAS7B,aAAAA,CAAc;AACrBe,oBAAAA,EAAAA,EAAIe,eAAAA,CAAQ,0BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMC,OAAO,CACXvB,mBAAAA,EACAC,eAAAA,GACGS,QAAAA,CAASc,WAAW,CAAC;AAAExB,YAAAA,mBAAAA;AAAqBC,YAAAA;AAAgB,SAAA,CAAA;IAEjE,OAAO;AAAE,QAAA,GAAGS,QAAQ;AAAEa,QAAAA;AAAK,KAAA;AAC7B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBulkMove.mjs","sources":["../../../admin/src/hooks/useBulkMove.ts"],"sourcesContent":["import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { File, BulkMoveFiles } from '../../../shared/contracts/files';\nimport { Folder, BulkMoveFolders } from '../../../shared/contracts/folders';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nexport interface FolderWithType extends Folder {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\ninterface BulkMoveParams {\n destinationFolderId: number | string;\n filesAndFolders: Array<FolderWithType | FileWithType>;\n}\n\n// Define the shape of the accumulator object\ntype Payload = {\n fileIds?: number[];\n folderIds?: number[];\n};\n\nexport const useBulkMove = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkMoveQuery = ({ destinationFolderId, filesAndFolders }: BulkMoveParams) => {\n const payload = filesAndFolders.reduce<Payload>((acc, selected) => {\n const { id, type } = selected;\n const key = type === 'asset' ? 'fileIds' : 'folderIds';\n\n if (!acc[key]) {\n acc[key] = [];\n }\n\n acc[key]!.push(id);\n\n return acc;\n }, {});\n\n return post('/upload/actions/bulk-move'
|
|
1
|
+
{"version":3,"file":"useBulkMove.mjs","sources":["../../../admin/src/hooks/useBulkMove.ts"],"sourcesContent":["import { type FetchResponse, useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { File, BulkMoveFiles } from '../../../shared/contracts/files';\nimport { Folder, BulkMoveFolders } from '../../../shared/contracts/folders';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nexport interface FolderWithType extends Folder {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\ninterface BulkMoveParams {\n destinationFolderId: number | string;\n filesAndFolders: Array<FolderWithType | FileWithType>;\n}\n\n// Define the shape of the accumulator object\ntype Payload = {\n fileIds?: number[];\n folderIds?: number[];\n};\n\nexport const useBulkMove = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkMoveQuery = ({ destinationFolderId, filesAndFolders }: BulkMoveParams) => {\n const payload = filesAndFolders.reduce<Payload>((acc, selected) => {\n const { id, type } = selected;\n const key = type === 'asset' ? 'fileIds' : 'folderIds';\n\n if (!acc[key]) {\n acc[key] = [];\n }\n\n acc[key]!.push(id);\n\n return acc;\n }, {});\n\n return post<BulkMoveFiles.Response['data'] | BulkMoveFolders.Response['data']>(\n '/upload/actions/bulk-move',\n { ...payload, destinationFolderId }\n );\n };\n\n const mutation = useMutation<\n FetchResponse<BulkMoveFiles.Response['data'] | BulkMoveFolders.Response['data']>,\n BulkMoveFolders.Response['error'] | BulkMoveFiles.Response['error'],\n BulkMoveParams\n >(bulkMoveQuery, {\n onSuccess(res) {\n const {\n data: { data },\n } = res;\n\n if (data?.files?.length > 0) {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n }\n\n // folders need to be re-fetched in any case, because assets might have been\n // moved into a sub-folder and therefore the count needs to be updated\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('modal.move.success-label'),\n defaultMessage: 'Elements have been moved successfully.',\n }),\n });\n },\n });\n\n const move = (\n destinationFolderId: number | string,\n filesAndFolders: Array<FolderWithType | FileWithType>\n ) => mutation.mutateAsync({ destinationFolderId, filesAndFolders });\n\n return { ...mutation, move };\n};\n"],"names":["useBulkMove","formatMessage","useIntl","toggleNotification","useNotification","queryClient","useQueryClient","post","useFetchClient","bulkMoveQuery","destinationFolderId","filesAndFolders","payload","reduce","acc","selected","id","type","key","push","mutation","useMutation","onSuccess","res","data","files","length","refetchQueries","pluginId","active","message","getTrad","defaultMessage","move","mutateAsync"],"mappings":";;;;;;;;;;MA4BaA,WAAAA,GAAc,IAAA;IACzB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAMC,WAAAA,GAAcC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;AAEjB,IAAA,MAAMC,gBAAgB,CAAC,EAAEC,mBAAmB,EAAEC,eAAe,EAAkB,GAAA;AAC7E,QAAA,MAAMC,OAAAA,GAAUD,eAAAA,CAAgBE,MAAM,CAAU,CAACC,GAAAA,EAAKC,QAAAA,GAAAA;AACpD,YAAA,MAAM,EAAEC,EAAE,EAAEC,IAAI,EAAE,GAAGF,QAAAA;YACrB,MAAMG,GAAAA,GAAMD,IAAAA,KAAS,OAAA,GAAU,SAAA,GAAY,WAAA;AAE3C,YAAA,IAAI,CAACH,GAAG,CAACI,GAAAA,CAAI,EAAE;gBACbJ,GAAG,CAACI,GAAAA,CAAI,GAAG,EAAE;AACf,YAAA;AAEAJ,YAAAA,GAAG,CAACI,GAAAA,CAAI,CAAEC,IAAI,CAACH,EAAAA,CAAAA;YAEf,OAAOF,GAAAA;AACT,QAAA,CAAA,EAAG,EAAC,CAAA;AAEJ,QAAA,OAAOP,KACL,2BAAA,EACA;AAAE,YAAA,GAAGK,OAAO;AAAEF,YAAAA;AAAoB,SAAA,CAAA;AAEtC,IAAA,CAAA;IAEA,MAAMU,QAAAA,GAAWC,YAIfZ,aAAAA,EAAe;AACfa,QAAAA,SAAAA,CAAAA,CAAUC,GAAG,EAAA;AACX,YAAA,MAAM,EACJC,IAAAA,EAAM,EAAEA,IAAI,EAAE,EACf,GAAGD,GAAAA;YAEJ,IAAIC,IAAAA,EAAMC,KAAAA,EAAOC,MAAAA,GAAS,CAAA,EAAG;AAC3BrB,gBAAAA,WAAAA,CAAYsB,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAS,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AAChExB,gBAAAA,WAAAA,CAAYsB,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAc,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACvE,YAAA;;;AAIAxB,YAAAA,WAAAA,CAAYsB,cAAc,CAAC;AAACC,gBAAAA,QAAAA;AAAU,gBAAA;aAAU,EAAE;gBAAEC,MAAAA,EAAQ;AAAK,aAAA,CAAA;YAEjE1B,kBAAAA,CAAmB;gBACjBc,IAAAA,EAAM,SAAA;AACNa,gBAAAA,OAAAA,EAAS7B,aAAAA,CAAc;AACrBe,oBAAAA,EAAAA,EAAIe,OAAAA,CAAQ,0BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMC,OAAO,CACXvB,mBAAAA,EACAC,eAAAA,GACGS,QAAAA,CAASc,WAAW,CAAC;AAAExB,YAAAA,mBAAAA;AAAqBC,YAAAA;AAAgB,SAAA,CAAA;IAEjE,OAAO;AAAE,QAAA,GAAGS,QAAQ;AAAEa,QAAAA;AAAK,KAAA;AAC7B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBulkRemove.js","sources":["../../../admin/src/hooks/useBulkRemove.ts"],"sourcesContent":["import { useNotification
|
|
1
|
+
{"version":3,"file":"useBulkRemove.js","sources":["../../../admin/src/hooks/useBulkRemove.ts"],"sourcesContent":["import {\n type FetchResponse,\n useNotification,\n useFetchClient,\n adminApi,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useDispatch } from 'react-redux';\n\nimport { BulkDeleteFiles, File } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nimport type { BulkDeleteFolders, FolderDefinition } from '../../../shared/contracts/folders';\n\nexport interface FileWithType extends File {\n type: string;\n}\n\ntype BulkRemovePayload = Partial<BulkDeleteFiles.Request['body']> &\n Partial<BulkDeleteFolders.Request['body']>;\n\nexport const useBulkRemove = () => {\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkRemoveQuery = (filesAndFolders: Array<FileWithType | FolderDefinition>) => {\n const payload = filesAndFolders.reduce<BulkRemovePayload>((acc, selected) => {\n const { id, type } = selected;\n const key = type === 'asset' ? 'fileIds' : 'folderIds';\n\n if (!acc[key]) {\n acc[key] = [];\n }\n\n acc[key]!.push(id);\n\n return acc;\n }, {});\n\n return post<BulkDeleteFiles.Response['data'] | BulkDeleteFolders.Response['data']>(\n '/upload/actions/bulk-delete',\n payload\n );\n };\n\n const mutation = useMutation<\n FetchResponse<BulkDeleteFiles.Response['data'] | BulkDeleteFolders.Response['data']>,\n BulkDeleteFiles.Response['error'] | BulkDeleteFolders.Response['error'],\n Array<FileWithType | FolderDefinition>\n >(bulkRemoveQuery, {\n onSuccess(res) {\n const {\n data: { data },\n } = res;\n\n if (data?.files?.length > 0) {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n }\n\n if (data?.folders?.length > 0) {\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('modal.remove.success-label'),\n defaultMessage: 'Elements have been successfully deleted.',\n }),\n });\n\n dispatch(adminApi.util.invalidateTags(['HomepageKeyStatistics']));\n },\n onError(error) {\n toggleNotification({ type: 'danger', message: error?.message });\n },\n });\n\n const remove = (...args: Parameters<typeof mutation.mutateAsync>) =>\n mutation.mutateAsync(...args);\n\n return { ...mutation, remove };\n};\n"],"names":["useBulkRemove","dispatch","useDispatch","toggleNotification","useNotification","formatMessage","useIntl","queryClient","useQueryClient","post","useFetchClient","bulkRemoveQuery","filesAndFolders","payload","reduce","acc","selected","id","type","key","push","mutation","useMutation","onSuccess","res","data","files","length","refetchQueries","pluginId","active","folders","message","getTrad","defaultMessage","adminApi","util","invalidateTags","onError","error","remove","args","mutateAsync"],"mappings":";;;;;;;;;;;;;MAuBaA,aAAAA,GAAgB,IAAA;AAC3B,IAAA,MAAMC,QAAAA,GAAWC,sBAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,WAAAA,GAAcC,yBAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC,0BAAAA,EAAAA;AAEjB,IAAA,MAAMC,kBAAkB,CAACC,eAAAA,GAAAA;AACvB,QAAA,MAAMC,OAAAA,GAAUD,eAAAA,CAAgBE,MAAM,CAAoB,CAACC,GAAAA,EAAKC,QAAAA,GAAAA;AAC9D,YAAA,MAAM,EAAEC,EAAE,EAAEC,IAAI,EAAE,GAAGF,QAAAA;YACrB,MAAMG,GAAAA,GAAMD,IAAAA,KAAS,OAAA,GAAU,SAAA,GAAY,WAAA;AAE3C,YAAA,IAAI,CAACH,GAAG,CAACI,GAAAA,CAAI,EAAE;gBACbJ,GAAG,CAACI,GAAAA,CAAI,GAAG,EAAE;AACf,YAAA;AAEAJ,YAAAA,GAAG,CAACI,GAAAA,CAAI,CAAEC,IAAI,CAACH,EAAAA,CAAAA;YAEf,OAAOF,GAAAA;AACT,QAAA,CAAA,EAAG,EAAC,CAAA;AAEJ,QAAA,OAAON,KACL,6BAAA,EACAI,OAAAA,CAAAA;AAEJ,IAAA,CAAA;IAEA,MAAMQ,QAAAA,GAAWC,uBAIfX,eAAAA,EAAiB;AACjBY,QAAAA,SAAAA,CAAAA,CAAUC,GAAG,EAAA;AACX,YAAA,MAAM,EACJC,IAAAA,EAAM,EAAEA,IAAI,EAAE,EACf,GAAGD,GAAAA;YAEJ,IAAIC,IAAAA,EAAMC,KAAAA,EAAOC,MAAAA,GAAS,CAAA,EAAG;AAC3BpB,gBAAAA,WAAAA,CAAYqB,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAS,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AAChEvB,gBAAAA,WAAAA,CAAYqB,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAc,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACvE,YAAA;YAEA,IAAIL,IAAAA,EAAMM,OAAAA,EAASJ,MAAAA,GAAS,CAAA,EAAG;AAC7BpB,gBAAAA,WAAAA,CAAYqB,cAAc,CAAC;AAACC,oBAAAA,iBAAAA;AAAU,oBAAA;iBAAU,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACnE,YAAA;YAEA3B,kBAAAA,CAAmB;gBACjBe,IAAAA,EAAM,SAAA;AACNc,gBAAAA,OAAAA,EAAS3B,aAAAA,CAAc;AACrBY,oBAAAA,EAAAA,EAAIgB,eAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEAjC,YAAAA,QAAAA,CAASkC,oBAAAA,CAASC,IAAI,CAACC,cAAc,CAAC;AAAC,gBAAA;AAAwB,aAAA,CAAA,CAAA;AACjE,QAAA,CAAA;AACAC,QAAAA,OAAAA,CAAAA,CAAQC,KAAK,EAAA;YACXpC,kBAAAA,CAAmB;gBAAEe,IAAAA,EAAM,QAAA;AAAUc,gBAAAA,OAAAA,EAASO,KAAAA,EAAOP;AAAQ,aAAA,CAAA;AAC/D,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMQ,SAAS,CAAC,GAAGC,IAAAA,GACjBpB,QAAAA,CAASqB,WAAW,CAAA,GAAID,IAAAA,CAAAA;IAE1B,OAAO;AAAE,QAAA,GAAGpB,QAAQ;AAAEmB,QAAAA;AAAO,KAAA;AAC/B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBulkRemove.mjs","sources":["../../../admin/src/hooks/useBulkRemove.ts"],"sourcesContent":["import { useNotification
|
|
1
|
+
{"version":3,"file":"useBulkRemove.mjs","sources":["../../../admin/src/hooks/useBulkRemove.ts"],"sourcesContent":["import {\n type FetchResponse,\n useNotification,\n useFetchClient,\n adminApi,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\nimport { useDispatch } from 'react-redux';\n\nimport { BulkDeleteFiles, File } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nimport type { BulkDeleteFolders, FolderDefinition } from '../../../shared/contracts/folders';\n\nexport interface FileWithType extends File {\n type: string;\n}\n\ntype BulkRemovePayload = Partial<BulkDeleteFiles.Request['body']> &\n Partial<BulkDeleteFolders.Request['body']>;\n\nexport const useBulkRemove = () => {\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const queryClient = useQueryClient();\n const { post } = useFetchClient();\n\n const bulkRemoveQuery = (filesAndFolders: Array<FileWithType | FolderDefinition>) => {\n const payload = filesAndFolders.reduce<BulkRemovePayload>((acc, selected) => {\n const { id, type } = selected;\n const key = type === 'asset' ? 'fileIds' : 'folderIds';\n\n if (!acc[key]) {\n acc[key] = [];\n }\n\n acc[key]!.push(id);\n\n return acc;\n }, {});\n\n return post<BulkDeleteFiles.Response['data'] | BulkDeleteFolders.Response['data']>(\n '/upload/actions/bulk-delete',\n payload\n );\n };\n\n const mutation = useMutation<\n FetchResponse<BulkDeleteFiles.Response['data'] | BulkDeleteFolders.Response['data']>,\n BulkDeleteFiles.Response['error'] | BulkDeleteFolders.Response['error'],\n Array<FileWithType | FolderDefinition>\n >(bulkRemoveQuery, {\n onSuccess(res) {\n const {\n data: { data },\n } = res;\n\n if (data?.files?.length > 0) {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n }\n\n if (data?.folders?.length > 0) {\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('modal.remove.success-label'),\n defaultMessage: 'Elements have been successfully deleted.',\n }),\n });\n\n dispatch(adminApi.util.invalidateTags(['HomepageKeyStatistics']));\n },\n onError(error) {\n toggleNotification({ type: 'danger', message: error?.message });\n },\n });\n\n const remove = (...args: Parameters<typeof mutation.mutateAsync>) =>\n mutation.mutateAsync(...args);\n\n return { ...mutation, remove };\n};\n"],"names":["useBulkRemove","dispatch","useDispatch","toggleNotification","useNotification","formatMessage","useIntl","queryClient","useQueryClient","post","useFetchClient","bulkRemoveQuery","filesAndFolders","payload","reduce","acc","selected","id","type","key","push","mutation","useMutation","onSuccess","res","data","files","length","refetchQueries","pluginId","active","folders","message","getTrad","defaultMessage","adminApi","util","invalidateTags","onError","error","remove","args","mutateAsync"],"mappings":";;;;;;;;;;;MAuBaA,aAAAA,GAAgB,IAAA;AAC3B,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,WAAAA,GAAcC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;AAEjB,IAAA,MAAMC,kBAAkB,CAACC,eAAAA,GAAAA;AACvB,QAAA,MAAMC,OAAAA,GAAUD,eAAAA,CAAgBE,MAAM,CAAoB,CAACC,GAAAA,EAAKC,QAAAA,GAAAA;AAC9D,YAAA,MAAM,EAAEC,EAAE,EAAEC,IAAI,EAAE,GAAGF,QAAAA;YACrB,MAAMG,GAAAA,GAAMD,IAAAA,KAAS,OAAA,GAAU,SAAA,GAAY,WAAA;AAE3C,YAAA,IAAI,CAACH,GAAG,CAACI,GAAAA,CAAI,EAAE;gBACbJ,GAAG,CAACI,GAAAA,CAAI,GAAG,EAAE;AACf,YAAA;AAEAJ,YAAAA,GAAG,CAACI,GAAAA,CAAI,CAAEC,IAAI,CAACH,EAAAA,CAAAA;YAEf,OAAOF,GAAAA;AACT,QAAA,CAAA,EAAG,EAAC,CAAA;AAEJ,QAAA,OAAON,KACL,6BAAA,EACAI,OAAAA,CAAAA;AAEJ,IAAA,CAAA;IAEA,MAAMQ,QAAAA,GAAWC,YAIfX,eAAAA,EAAiB;AACjBY,QAAAA,SAAAA,CAAAA,CAAUC,GAAG,EAAA;AACX,YAAA,MAAM,EACJC,IAAAA,EAAM,EAAEA,IAAI,EAAE,EACf,GAAGD,GAAAA;YAEJ,IAAIC,IAAAA,EAAMC,KAAAA,EAAOC,MAAAA,GAAS,CAAA,EAAG;AAC3BpB,gBAAAA,WAAAA,CAAYqB,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAS,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AAChEvB,gBAAAA,WAAAA,CAAYqB,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAc,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACvE,YAAA;YAEA,IAAIL,IAAAA,EAAMM,OAAAA,EAASJ,MAAAA,GAAS,CAAA,EAAG;AAC7BpB,gBAAAA,WAAAA,CAAYqB,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAU,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACnE,YAAA;YAEA3B,kBAAAA,CAAmB;gBACjBe,IAAAA,EAAM,SAAA;AACNc,gBAAAA,OAAAA,EAAS3B,aAAAA,CAAc;AACrBY,oBAAAA,EAAAA,EAAIgB,OAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AAEAjC,YAAAA,QAAAA,CAASkC,QAAAA,CAASC,IAAI,CAACC,cAAc,CAAC;AAAC,gBAAA;AAAwB,aAAA,CAAA,CAAA;AACjE,QAAA,CAAA;AACAC,QAAAA,OAAAA,CAAAA,CAAQC,KAAK,EAAA;YACXpC,kBAAAA,CAAmB;gBAAEe,IAAAA,EAAM,QAAA;AAAUc,gBAAAA,OAAAA,EAASO,KAAAA,EAAOP;AAAQ,aAAA,CAAA;AAC/D,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMQ,SAAS,CAAC,GAAGC,IAAAA,GACjBpB,QAAAA,CAASqB,WAAW,CAAA,GAAID,IAAAA,CAAAA;IAE1B,OAAO;AAAE,QAAA,GAAGpB,QAAQ;AAAEmB,QAAAA;AAAO,KAAA;AAC/B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditAsset.js","sources":["../../../admin/src/hooks/useEditAsset.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification, useFetchClient, FetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { UpdateFile, File as FileAsset } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nexport type ErrorMutation = {\n message: string;\n response: {\n status: number;\n data: {\n error: Error;\n };\n };\n} | null;\n\nconst editAssetRequest = (\n asset: FileAsset,\n file: File,\n signal: AbortSignal,\n onProgress: (progress: number) => void,\n post: FetchClient['post']\n) => {\n const endpoint = `/${pluginId}?id=${asset.id}`;\n\n const formData = new FormData();\n\n if (file) {\n formData.append('files', file);\n }\n\n formData.append(\n 'fileInfo',\n JSON.stringify({\n alternativeText: asset.alternativeText,\n caption: asset.caption,\n focalPoint: asset.focalPoint,\n folder: asset.folder,\n name: asset.name,\n })\n );\n\n /**\n * onProgress is not possible using native fetch\n * need to look into an alternative to make it work\n * perhaps using xhr like Axios does\n */\n return post(endpoint, formData, {\n signal,\n }).then((res) => res.data);\n};\n\nexport const useEditAsset = () => {\n const [progress, setProgress] = React.useState(0);\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const abortController = new AbortController();\n const signal = abortController.signal;\n const { post } = useFetchClient();\n\n const mutation = useMutation<\n UpdateFile.Response['data'],\n ErrorMutation,\n { asset: FileAsset; file: File }\n >(({ asset, file }) => editAssetRequest(asset, file, signal, setProgress, post), {\n onSuccess() {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n },\n onError(reason) {\n if (reason?.response?.status === 403) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('permissions.not-allowed.update') }),\n });\n } else {\n toggleNotification({ type: 'danger', message: reason?.message });\n }\n },\n });\n\n const editAsset = (asset: FileAsset, file: File) => mutation.mutateAsync({ asset, file });\n\n const cancel = () => abortController.abort();\n\n return { ...mutation, cancel, editAsset, progress, status: mutation.status };\n};\n"],"names":["editAssetRequest","asset","file","signal","onProgress","post","endpoint","pluginId","id","formData","FormData","append","JSON","stringify","alternativeText","caption","focalPoint","folder","name","then","res","data","useEditAsset","progress","setProgress","React","useState","formatMessage","useIntl","toggleNotification","useNotification","queryClient","useQueryClient","abortController","AbortController","useFetchClient","mutation","useMutation","onSuccess","refetchQueries","active","onError","reason","response","status","type","message","getTrad","editAsset","mutateAsync","cancel","abort"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useEditAsset.js","sources":["../../../admin/src/hooks/useEditAsset.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification, useFetchClient, FetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { UpdateFile, File as FileAsset } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\nexport type ErrorMutation = {\n message: string;\n response: {\n status: number;\n data: {\n error: Error;\n };\n };\n} | null;\n\nconst editAssetRequest = (\n asset: FileAsset,\n file: File,\n signal: AbortSignal,\n onProgress: (progress: number) => void,\n post: FetchClient['post']\n): Promise<UpdateFile.Response['data']> => {\n const endpoint = `/${pluginId}?id=${asset.id}`;\n\n const formData = new FormData();\n\n if (file) {\n formData.append('files', file);\n }\n\n formData.append(\n 'fileInfo',\n JSON.stringify({\n alternativeText: asset.alternativeText,\n caption: asset.caption,\n focalPoint: asset.focalPoint,\n folder: asset.folder,\n name: asset.name,\n })\n );\n\n /**\n * onProgress is not possible using native fetch\n * need to look into an alternative to make it work\n * perhaps using xhr like Axios does\n */\n return post<UpdateFile.Response['data'], UpdateFile.Request['body']>(endpoint, formData, {\n signal,\n }).then((res) => res.data);\n};\n\nexport const useEditAsset = () => {\n const [progress, setProgress] = React.useState(0);\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const queryClient = useQueryClient();\n const abortController = new AbortController();\n const signal = abortController.signal;\n const { post } = useFetchClient();\n\n const mutation = useMutation<\n UpdateFile.Response['data'],\n ErrorMutation,\n { asset: FileAsset; file: File }\n >(({ asset, file }) => editAssetRequest(asset, file, signal, setProgress, post), {\n onSuccess() {\n queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n },\n onError(reason) {\n if (reason?.response?.status === 403) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('permissions.not-allowed.update') }),\n });\n } else {\n toggleNotification({ type: 'danger', message: reason?.message });\n }\n },\n });\n\n const editAsset = (asset: FileAsset, file: File) => mutation.mutateAsync({ asset, file });\n\n const cancel = () => abortController.abort();\n\n return { ...mutation, cancel, editAsset, progress, status: mutation.status };\n};\n"],"names":["editAssetRequest","asset","file","signal","onProgress","post","endpoint","pluginId","id","formData","FormData","append","JSON","stringify","alternativeText","caption","focalPoint","folder","name","then","res","data","useEditAsset","progress","setProgress","React","useState","formatMessage","useIntl","toggleNotification","useNotification","queryClient","useQueryClient","abortController","AbortController","useFetchClient","mutation","useMutation","onSuccess","refetchQueries","active","onError","reason","response","status","type","message","getTrad","editAsset","mutateAsync","cancel","abort"],"mappings":"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"}
|