@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplaceMediaButton.js","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReplaceMediaButton.js","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAMA,kBAAAA,GAAqB,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KAAAA,EACqB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,gBAAAA,CAAMC,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AAEvB,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAEhB,QAAA,IAAIX,eAAAA,EAAiB;AACnBO,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEK,QAAAA,EAAUZ;AAAgB,aAAA,CAAA;AAC5D,QAAA;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAAAA,CAASS,OAAO,EAAEI,KAAAA,GAAQ,CAAA,CAAE;QAEzCnB,aAAAA,CAAckB,IAAAA,CAAAA;AAChB,IAAA,CAAA;IAEA,qBACEE,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAAA,CAACC,mBAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,WAAA;gBAAYC,OAAAA,EAASd,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAAA,CAAc;AACbsB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFN,cAAA,CAACO,2BAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,cAAA,CAACQ,OAAAA,EAAAA;oBACCC,MAAAA,EAAQ9B,YAAAA;oBACR+B,IAAAA,EAAK,MAAA;oBACLC,IAAAA,EAAK,MAAA;oBACLC,aAAAA,EAAY,YAAA;AACZC,oBAAAA,QAAAA,EAAU,EAAC;oBACXC,GAAAA,EAAK9B,QAAAA;oBACL+B,QAAAA,EAAUpB,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}
|
|
@@ -7,7 +7,6 @@ import 'byte-size';
|
|
|
7
7
|
import 'date-fns';
|
|
8
8
|
import { getTrad } from '../../utils/getTrad.mjs';
|
|
9
9
|
import 'qs';
|
|
10
|
-
import '../../utils/typeFromMime.mjs';
|
|
11
10
|
import '../../utils/urlYupSchema.mjs';
|
|
12
11
|
|
|
13
12
|
const ReplaceMediaButton = ({ onSelectMedia, acceptedMime, trackedLocation, ...props })=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplaceMediaButton.mjs","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReplaceMediaButton.mjs","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":";;;;;;;;;;;AAcO,MAAMA,kBAAAA,GAAqB,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KAAAA,EACqB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,KAAAA,CAAMC,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AAEvB,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAEhB,QAAA,IAAIX,eAAAA,EAAiB;AACnBO,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEK,QAAAA,EAAUZ;AAAgB,aAAA,CAAA;AAC5D,QAAA;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAAAA,CAASS,OAAO,EAAEI,KAAAA,GAAQ,CAAA,CAAE;QAEzCnB,aAAAA,CAAckB,IAAAA,CAAAA;AAChB,IAAA,CAAA;IAEA,qBACEE,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAAA,CAACC,MAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,WAAA;gBAAYC,OAAAA,EAASd,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAAA,CAAc;AACbsB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFN,GAAA,CAACO,cAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,GAAA,CAACQ,OAAAA,EAAAA;oBACCC,MAAAA,EAAQ9B,YAAAA;oBACR+B,IAAAA,EAAK,MAAA;oBACLC,IAAAA,EAAK,MAAA;oBACLC,aAAAA,EAAY,YAAA;AACZC,oBAAAA,QAAAA,EAAU,EAAC;oBACXC,GAAAA,EAAK9B,QAAAA;oBACL+B,QAAAA,EAAUpB,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}
|
|
@@ -19,7 +19,6 @@ require('date-fns');
|
|
|
19
19
|
var getAPIInnerErrors = require('../../utils/getAPIInnerErrors.js');
|
|
20
20
|
var getTrad = require('../../utils/getTrad.js');
|
|
21
21
|
require('qs');
|
|
22
|
-
require('../../utils/typeFromMime.js');
|
|
23
22
|
require('../../utils/urlYupSchema.js');
|
|
24
23
|
var ContextInfo = require('../ContextInfo/ContextInfo.js');
|
|
25
24
|
var SelectTree = require('../SelectTree/SelectTree.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditFolderDialog.js","sources":["../../../../admin/src/components/EditFolderDialog/EditFolderDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Field, Flex, Grid, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useBulkRemove } from '../../hooks/useBulkRemove';\nimport { useEditFolder } from '../../hooks/useEditFolder';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getAPIInnerErrors } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { EditFolderModalHeader } from './ModalHeader/ModalHeader';\nimport { RemoveFolderDialog } from './RemoveFolderDialog';\n\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\nconst folderSchema = yup.object({\n name: yup.string().required(),\n parent: yup\n .object({\n label: yup.string(),\n value: yup.number().nullable(true),\n })\n .nullable(true),\n});\n\ninterface ValuesSubmit {\n name: string;\n parent: null | { label?: string; value?: number };\n}\n\nexport interface EditFolderDialogProps {\n parentFolderId?: string | number | null;\n location?: string;\n folder?: FolderDefinition;\n open?: boolean;\n onClose: (payload?: { created?: boolean | undefined } | boolean) => void;\n}\n\nexport const EditFolderContent = ({\n onClose,\n folder,\n location,\n parentFolderId,\n}: EditFolderDialogProps) => {\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n const { canCreate, isLoading: isLoadingPermissions, canUpdate } = useMediaLibraryPermissions();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const { editFolder, isLoading: isEditFolderLoading } = useEditFolder();\n const { remove } = useBulkRemove();\n const { toggleNotification } = useNotification();\n const isLoading = isLoadingPermissions || folderStructureIsLoading;\n const isEditing = !!folder;\n const formDisabled = (folder && !canUpdate) || (!folder && !canCreate);\n const initialFormData: ValuesSubmit = !folderStructureIsLoading\n ? {\n name: folder?.name ?? '',\n parent: {\n /* ideally we would use folderStructure[0].value, but since it is null\n react complains about rendering null as field value */\n value: parentFolderId ? parseInt(parentFolderId.toString(), 10) : undefined,\n label: parentFolderId\n ? folderStructure &&\n findRecursiveFolderByValue(folderStructure, parseInt(parentFolderId.toString(), 10))\n ?.label\n : folderStructure?.[0].label,\n },\n }\n : {\n name: '',\n parent: null,\n };\n\n const formRef = React.useRef<HTMLFormElement>(null);\n\n const handleKeyDown =\n (handleSubmit: (event: React.FormEvent<HTMLFormElement>) => void) =>\n (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (event.key === 'Enter') {\n if (event.target instanceof HTMLInputElement) {\n handleSubmit(event);\n event.preventDefault();\n }\n }\n };\n\n const handleSubmit = async (\n values: ValuesSubmit,\n { setErrors }: { setErrors: (errors: FormikErrors<ValuesSubmit>) => void }\n ) => {\n try {\n await editFolder(\n {\n ...values,\n parent: values.parent?.value ?? null,\n },\n folder?.id\n );\n\n toggleNotification({\n type: 'success',\n message: isEditing\n ? formatMessage({\n id: getTrad('modal.folder-notification-edited-success'),\n defaultMessage: 'Folder successfully edited',\n })\n : formatMessage({\n id: getTrad('modal.folder-notification-created-success'),\n defaultMessage: 'Folder successfully created',\n }),\n });\n\n if (isEditing) {\n const didChangeLocation = parentFolderId\n ? parseInt(parentFolderId.toString(), 10) !== values.parent?.value\n : parentFolderId === null && !!values.parent?.value;\n trackUsage('didEditMediaLibraryElements', {\n location,\n type: 'folder',\n changeLocation: didChangeLocation,\n });\n } else {\n trackUsage('didAddMediaLibraryFolders', { location: location! });\n }\n\n onClose({ created: true });\n } catch (err) {\n const errors = getAPIInnerErrors(err as FetchError, { getTrad });\n const formikErrors = Object.entries(errors!).reduce(\n (acc: Record<string, string>, [key, error]) => {\n acc[key] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n };\n\n const handleDelete = async () => {\n if (folder) {\n await remove([folder]);\n }\n\n setShowConfirmDialog(false);\n onClose();\n };\n\n if (isLoading) {\n return (\n <>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </>\n );\n }\n\n return (\n <>\n <Formik\n validationSchema={folderSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue, handleSubmit }) => (\n <Form noValidate ref={formRef} onKeyDown={handleKeyDown(handleSubmit)}>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Grid.Root gap={4}>\n {isEditing && (\n <Grid.Item xs={12} col={12} direction=\"column\" alignItems=\"stretch\">\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.elements'),\n defaultMessage: 'Elements',\n }),\n value: formatMessage(\n {\n id: getTrad('modal.folder.elements.count'),\n defaultMessage: '{folderCount} folders, {assetCount} assets',\n },\n {\n assetCount: folder?.files?.count ?? 0,\n folderCount: folder?.children?.count ?? 0,\n }\n ),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.creation-date'),\n defaultMessage: 'Creation Date',\n }),\n value: formatDate(new Date(folder.createdAt!)),\n },\n ]}\n />\n </Grid.Item>\n )}\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={typeof errors.name === 'string' ? errors.name : undefined}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-name'),\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <Field.Input\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-parent\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n isDisabled={formDisabled}\n defaultValue={values.parent!}\n name=\"parent\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-parent\"\n disabled={formDisabled}\n error={typeof errors.parent === 'string' ? errors.parent : undefined}\n ariaErrorMessage=\"folder-parent-error\"\n />\n\n {errors.parent && (\n <Typography\n variant=\"pi\"\n tag=\"p\"\n id=\"folder-parent-error\"\n textColor=\"danger600\"\n >\n {typeof errors.parent === 'string' ? errors.parent : undefined}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => onClose()} variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {isEditing && canUpdate && (\n <Button\n type=\"button\"\n variant=\"danger-light\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"delete\"\n disabled={!canUpdate || isEditFolderLoading}\n >\n {formatMessage({\n id: getTrad('modal.folder.create.delete'),\n defaultMessage: 'Delete folder',\n })}\n </Button>\n )}\n\n <Button\n name=\"submit\"\n loading={isEditFolderLoading}\n disabled={formDisabled}\n type=\"submit\"\n >\n {formatMessage(\n isEditing\n ? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' }\n : { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' }\n )}\n </Button>\n </Flex>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n <RemoveFolderDialog\n open={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleDelete}\n />\n </>\n );\n};\n\nexport const EditFolderDialog = ({ open, onClose, ...restProps }: EditFolderDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditFolderContent {...restProps} onClose={onClose} open={open} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["folderSchema","yup","object","name","string","required","parent","label","value","number","nullable","EditFolderContent","onClose","folder","location","parentFolderId","data","folderStructure","isLoading","folderStructureIsLoading","useFolderStructure","enabled","canCreate","isLoadingPermissions","canUpdate","useMediaLibraryPermissions","showConfirmDialog","setShowConfirmDialog","React","useState","formatMessage","formatDate","useIntl","trackUsage","useTracking","editFolder","isEditFolderLoading","useEditFolder","remove","useBulkRemove","toggleNotification","useNotification","isEditing","formDisabled","initialFormData","parseInt","toString","undefined","findRecursiveFolderByValue","formRef","useRef","handleKeyDown","handleSubmit","event","key","target","HTMLInputElement","preventDefault","values","setErrors","id","type","message","getTrad","defaultMessage","didChangeLocation","changeLocation","created","err","errors","getAPIInnerErrors","formikErrors","Object","entries","reduce","acc","error","isEmpty","handleDelete","_jsxs","_Fragment","_jsx","EditFolderModalHeader","Modal","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","Formik","validationSchema","validateOnChange","onSubmit","initialValues","handleChange","setFieldValue","Form","noValidate","ref","onKeyDown","Grid","Root","gap","Item","xs","col","direction","alignItems","ContextInfo","blocks","assetCount","files","count","folderCount","children","Date","createdAt","Field","Label","Input","onChange","disabled","Error","SelectTree","options","isDisabled","defaultValue","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Button","onClick","loading","RemoveFolderDialog","open","onConfirm","EditFolderDialog","restProps","onOpenChange","Content"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditFolderDialog.js","sources":["../../../../admin/src/components/EditFolderDialog/EditFolderDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Field, Flex, Grid, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useBulkRemove } from '../../hooks/useBulkRemove';\nimport { useEditFolder } from '../../hooks/useEditFolder';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getAPIInnerErrors } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { EditFolderModalHeader } from './ModalHeader/ModalHeader';\nimport { RemoveFolderDialog } from './RemoveFolderDialog';\n\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\nconst folderSchema = yup.object({\n name: yup.string().required(),\n parent: yup\n .object({\n label: yup.string(),\n value: yup.number().nullable(true),\n })\n .nullable(true),\n});\n\ninterface ValuesSubmit {\n name: string;\n parent: null | { label?: string; value?: number };\n}\n\nexport interface EditFolderDialogProps {\n parentFolderId?: string | number | null;\n location?: string;\n folder?: FolderDefinition;\n open?: boolean;\n onClose: (payload?: { created?: boolean | undefined } | boolean) => void;\n}\n\nexport const EditFolderContent = ({\n onClose,\n folder,\n location,\n parentFolderId,\n}: EditFolderDialogProps) => {\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n const { canCreate, isLoading: isLoadingPermissions, canUpdate } = useMediaLibraryPermissions();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const { editFolder, isLoading: isEditFolderLoading } = useEditFolder();\n const { remove } = useBulkRemove();\n const { toggleNotification } = useNotification();\n const isLoading = isLoadingPermissions || folderStructureIsLoading;\n const isEditing = !!folder;\n const formDisabled = (folder && !canUpdate) || (!folder && !canCreate);\n const initialFormData: ValuesSubmit = !folderStructureIsLoading\n ? {\n name: folder?.name ?? '',\n parent: {\n /* ideally we would use folderStructure[0].value, but since it is null\n react complains about rendering null as field value */\n value: parentFolderId ? parseInt(parentFolderId.toString(), 10) : undefined,\n label: parentFolderId\n ? folderStructure &&\n findRecursiveFolderByValue(folderStructure, parseInt(parentFolderId.toString(), 10))\n ?.label\n : folderStructure?.[0].label,\n },\n }\n : {\n name: '',\n parent: null,\n };\n\n const formRef = React.useRef<HTMLFormElement>(null);\n\n const handleKeyDown =\n (handleSubmit: (event: React.FormEvent<HTMLFormElement>) => void) =>\n (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (event.key === 'Enter') {\n if (event.target instanceof HTMLInputElement) {\n handleSubmit(event);\n event.preventDefault();\n }\n }\n };\n\n const handleSubmit = async (\n values: ValuesSubmit,\n { setErrors }: { setErrors: (errors: FormikErrors<ValuesSubmit>) => void }\n ) => {\n try {\n await editFolder(\n {\n ...values,\n parent: values.parent?.value ?? null,\n },\n folder?.id\n );\n\n toggleNotification({\n type: 'success',\n message: isEditing\n ? formatMessage({\n id: getTrad('modal.folder-notification-edited-success'),\n defaultMessage: 'Folder successfully edited',\n })\n : formatMessage({\n id: getTrad('modal.folder-notification-created-success'),\n defaultMessage: 'Folder successfully created',\n }),\n });\n\n if (isEditing) {\n const didChangeLocation = parentFolderId\n ? parseInt(parentFolderId.toString(), 10) !== values.parent?.value\n : parentFolderId === null && !!values.parent?.value;\n trackUsage('didEditMediaLibraryElements', {\n location,\n type: 'folder',\n changeLocation: didChangeLocation,\n });\n } else {\n trackUsage('didAddMediaLibraryFolders', { location: location! });\n }\n\n onClose({ created: true });\n } catch (err) {\n const errors = getAPIInnerErrors(err as FetchError, { getTrad });\n const formikErrors = Object.entries(errors!).reduce(\n (acc: Record<string, string>, [key, error]) => {\n acc[key] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n };\n\n const handleDelete = async () => {\n if (folder) {\n await remove([folder]);\n }\n\n setShowConfirmDialog(false);\n onClose();\n };\n\n if (isLoading) {\n return (\n <>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </>\n );\n }\n\n return (\n <>\n <Formik\n validationSchema={folderSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue, handleSubmit }) => (\n <Form noValidate ref={formRef} onKeyDown={handleKeyDown(handleSubmit)}>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Grid.Root gap={4}>\n {isEditing && (\n <Grid.Item xs={12} col={12} direction=\"column\" alignItems=\"stretch\">\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.elements'),\n defaultMessage: 'Elements',\n }),\n value: formatMessage(\n {\n id: getTrad('modal.folder.elements.count'),\n defaultMessage: '{folderCount} folders, {assetCount} assets',\n },\n {\n assetCount: folder?.files?.count ?? 0,\n folderCount: folder?.children?.count ?? 0,\n }\n ),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.creation-date'),\n defaultMessage: 'Creation Date',\n }),\n value: formatDate(new Date(folder.createdAt!)),\n },\n ]}\n />\n </Grid.Item>\n )}\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={typeof errors.name === 'string' ? errors.name : undefined}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-name'),\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <Field.Input\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-parent\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n isDisabled={formDisabled}\n defaultValue={values.parent!}\n name=\"parent\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-parent\"\n disabled={formDisabled}\n error={typeof errors.parent === 'string' ? errors.parent : undefined}\n ariaErrorMessage=\"folder-parent-error\"\n />\n\n {errors.parent && (\n <Typography\n variant=\"pi\"\n tag=\"p\"\n id=\"folder-parent-error\"\n textColor=\"danger600\"\n >\n {typeof errors.parent === 'string' ? errors.parent : undefined}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => onClose()} variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {isEditing && canUpdate && (\n <Button\n type=\"button\"\n variant=\"danger-light\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"delete\"\n disabled={!canUpdate || isEditFolderLoading}\n >\n {formatMessage({\n id: getTrad('modal.folder.create.delete'),\n defaultMessage: 'Delete folder',\n })}\n </Button>\n )}\n\n <Button\n name=\"submit\"\n loading={isEditFolderLoading}\n disabled={formDisabled}\n type=\"submit\"\n >\n {formatMessage(\n isEditing\n ? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' }\n : { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' }\n )}\n </Button>\n </Flex>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n <RemoveFolderDialog\n open={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleDelete}\n />\n </>\n );\n};\n\nexport const EditFolderDialog = ({ open, onClose, ...restProps }: EditFolderDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditFolderContent {...restProps} onClose={onClose} open={open} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["folderSchema","yup","object","name","string","required","parent","label","value","number","nullable","EditFolderContent","onClose","folder","location","parentFolderId","data","folderStructure","isLoading","folderStructureIsLoading","useFolderStructure","enabled","canCreate","isLoadingPermissions","canUpdate","useMediaLibraryPermissions","showConfirmDialog","setShowConfirmDialog","React","useState","formatMessage","formatDate","useIntl","trackUsage","useTracking","editFolder","isEditFolderLoading","useEditFolder","remove","useBulkRemove","toggleNotification","useNotification","isEditing","formDisabled","initialFormData","parseInt","toString","undefined","findRecursiveFolderByValue","formRef","useRef","handleKeyDown","handleSubmit","event","key","target","HTMLInputElement","preventDefault","values","setErrors","id","type","message","getTrad","defaultMessage","didChangeLocation","changeLocation","created","err","errors","getAPIInnerErrors","formikErrors","Object","entries","reduce","acc","error","isEmpty","handleDelete","_jsxs","_Fragment","_jsx","EditFolderModalHeader","Modal","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","Formik","validationSchema","validateOnChange","onSubmit","initialValues","handleChange","setFieldValue","Form","noValidate","ref","onKeyDown","Grid","Root","gap","Item","xs","col","direction","alignItems","ContextInfo","blocks","assetCount","files","count","folderCount","children","Date","createdAt","Field","Label","Input","onChange","disabled","Error","SelectTree","options","isDisabled","defaultValue","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Button","onClick","loading","RemoveFolderDialog","open","onConfirm","EditFolderDialog","restProps","onOpenChange","Content"],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ import 'date-fns';
|
|
|
17
17
|
import { getAPIInnerErrors } from '../../utils/getAPIInnerErrors.mjs';
|
|
18
18
|
import { getTrad } from '../../utils/getTrad.mjs';
|
|
19
19
|
import 'qs';
|
|
20
|
-
import '../../utils/typeFromMime.mjs';
|
|
21
20
|
import '../../utils/urlYupSchema.mjs';
|
|
22
21
|
import { ContextInfo } from '../ContextInfo/ContextInfo.mjs';
|
|
23
22
|
import { SelectTree } from '../SelectTree/SelectTree.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditFolderDialog.mjs","sources":["../../../../admin/src/components/EditFolderDialog/EditFolderDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Field, Flex, Grid, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useBulkRemove } from '../../hooks/useBulkRemove';\nimport { useEditFolder } from '../../hooks/useEditFolder';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getAPIInnerErrors } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { EditFolderModalHeader } from './ModalHeader/ModalHeader';\nimport { RemoveFolderDialog } from './RemoveFolderDialog';\n\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\nconst folderSchema = yup.object({\n name: yup.string().required(),\n parent: yup\n .object({\n label: yup.string(),\n value: yup.number().nullable(true),\n })\n .nullable(true),\n});\n\ninterface ValuesSubmit {\n name: string;\n parent: null | { label?: string; value?: number };\n}\n\nexport interface EditFolderDialogProps {\n parentFolderId?: string | number | null;\n location?: string;\n folder?: FolderDefinition;\n open?: boolean;\n onClose: (payload?: { created?: boolean | undefined } | boolean) => void;\n}\n\nexport const EditFolderContent = ({\n onClose,\n folder,\n location,\n parentFolderId,\n}: EditFolderDialogProps) => {\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n const { canCreate, isLoading: isLoadingPermissions, canUpdate } = useMediaLibraryPermissions();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const { editFolder, isLoading: isEditFolderLoading } = useEditFolder();\n const { remove } = useBulkRemove();\n const { toggleNotification } = useNotification();\n const isLoading = isLoadingPermissions || folderStructureIsLoading;\n const isEditing = !!folder;\n const formDisabled = (folder && !canUpdate) || (!folder && !canCreate);\n const initialFormData: ValuesSubmit = !folderStructureIsLoading\n ? {\n name: folder?.name ?? '',\n parent: {\n /* ideally we would use folderStructure[0].value, but since it is null\n react complains about rendering null as field value */\n value: parentFolderId ? parseInt(parentFolderId.toString(), 10) : undefined,\n label: parentFolderId\n ? folderStructure &&\n findRecursiveFolderByValue(folderStructure, parseInt(parentFolderId.toString(), 10))\n ?.label\n : folderStructure?.[0].label,\n },\n }\n : {\n name: '',\n parent: null,\n };\n\n const formRef = React.useRef<HTMLFormElement>(null);\n\n const handleKeyDown =\n (handleSubmit: (event: React.FormEvent<HTMLFormElement>) => void) =>\n (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (event.key === 'Enter') {\n if (event.target instanceof HTMLInputElement) {\n handleSubmit(event);\n event.preventDefault();\n }\n }\n };\n\n const handleSubmit = async (\n values: ValuesSubmit,\n { setErrors }: { setErrors: (errors: FormikErrors<ValuesSubmit>) => void }\n ) => {\n try {\n await editFolder(\n {\n ...values,\n parent: values.parent?.value ?? null,\n },\n folder?.id\n );\n\n toggleNotification({\n type: 'success',\n message: isEditing\n ? formatMessage({\n id: getTrad('modal.folder-notification-edited-success'),\n defaultMessage: 'Folder successfully edited',\n })\n : formatMessage({\n id: getTrad('modal.folder-notification-created-success'),\n defaultMessage: 'Folder successfully created',\n }),\n });\n\n if (isEditing) {\n const didChangeLocation = parentFolderId\n ? parseInt(parentFolderId.toString(), 10) !== values.parent?.value\n : parentFolderId === null && !!values.parent?.value;\n trackUsage('didEditMediaLibraryElements', {\n location,\n type: 'folder',\n changeLocation: didChangeLocation,\n });\n } else {\n trackUsage('didAddMediaLibraryFolders', { location: location! });\n }\n\n onClose({ created: true });\n } catch (err) {\n const errors = getAPIInnerErrors(err as FetchError, { getTrad });\n const formikErrors = Object.entries(errors!).reduce(\n (acc: Record<string, string>, [key, error]) => {\n acc[key] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n };\n\n const handleDelete = async () => {\n if (folder) {\n await remove([folder]);\n }\n\n setShowConfirmDialog(false);\n onClose();\n };\n\n if (isLoading) {\n return (\n <>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </>\n );\n }\n\n return (\n <>\n <Formik\n validationSchema={folderSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue, handleSubmit }) => (\n <Form noValidate ref={formRef} onKeyDown={handleKeyDown(handleSubmit)}>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Grid.Root gap={4}>\n {isEditing && (\n <Grid.Item xs={12} col={12} direction=\"column\" alignItems=\"stretch\">\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.elements'),\n defaultMessage: 'Elements',\n }),\n value: formatMessage(\n {\n id: getTrad('modal.folder.elements.count'),\n defaultMessage: '{folderCount} folders, {assetCount} assets',\n },\n {\n assetCount: folder?.files?.count ?? 0,\n folderCount: folder?.children?.count ?? 0,\n }\n ),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.creation-date'),\n defaultMessage: 'Creation Date',\n }),\n value: formatDate(new Date(folder.createdAt!)),\n },\n ]}\n />\n </Grid.Item>\n )}\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={typeof errors.name === 'string' ? errors.name : undefined}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-name'),\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <Field.Input\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-parent\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n isDisabled={formDisabled}\n defaultValue={values.parent!}\n name=\"parent\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-parent\"\n disabled={formDisabled}\n error={typeof errors.parent === 'string' ? errors.parent : undefined}\n ariaErrorMessage=\"folder-parent-error\"\n />\n\n {errors.parent && (\n <Typography\n variant=\"pi\"\n tag=\"p\"\n id=\"folder-parent-error\"\n textColor=\"danger600\"\n >\n {typeof errors.parent === 'string' ? errors.parent : undefined}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => onClose()} variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {isEditing && canUpdate && (\n <Button\n type=\"button\"\n variant=\"danger-light\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"delete\"\n disabled={!canUpdate || isEditFolderLoading}\n >\n {formatMessage({\n id: getTrad('modal.folder.create.delete'),\n defaultMessage: 'Delete folder',\n })}\n </Button>\n )}\n\n <Button\n name=\"submit\"\n loading={isEditFolderLoading}\n disabled={formDisabled}\n type=\"submit\"\n >\n {formatMessage(\n isEditing\n ? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' }\n : { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' }\n )}\n </Button>\n </Flex>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n <RemoveFolderDialog\n open={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleDelete}\n />\n </>\n );\n};\n\nexport const EditFolderDialog = ({ open, onClose, ...restProps }: EditFolderDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditFolderContent {...restProps} onClose={onClose} open={open} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["folderSchema","yup","object","name","string","required","parent","label","value","number","nullable","EditFolderContent","onClose","folder","location","parentFolderId","data","folderStructure","isLoading","folderStructureIsLoading","useFolderStructure","enabled","canCreate","isLoadingPermissions","canUpdate","useMediaLibraryPermissions","showConfirmDialog","setShowConfirmDialog","React","useState","formatMessage","formatDate","useIntl","trackUsage","useTracking","editFolder","isEditFolderLoading","useEditFolder","remove","useBulkRemove","toggleNotification","useNotification","isEditing","formDisabled","initialFormData","parseInt","toString","undefined","findRecursiveFolderByValue","formRef","useRef","handleKeyDown","handleSubmit","event","key","target","HTMLInputElement","preventDefault","values","setErrors","id","type","message","getTrad","defaultMessage","didChangeLocation","changeLocation","created","err","errors","getAPIInnerErrors","formikErrors","Object","entries","reduce","acc","error","isEmpty","handleDelete","_jsxs","_Fragment","_jsx","EditFolderModalHeader","Modal","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","Formik","validationSchema","validateOnChange","onSubmit","initialValues","handleChange","setFieldValue","Form","noValidate","ref","onKeyDown","Grid","Root","gap","Item","xs","col","direction","alignItems","ContextInfo","blocks","assetCount","files","count","folderCount","children","Date","createdAt","Field","Label","Input","onChange","disabled","Error","SelectTree","options","isDisabled","defaultValue","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Button","onClick","loading","RemoveFolderDialog","open","onConfirm","EditFolderDialog","restProps","onOpenChange","Content"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditFolderDialog.mjs","sources":["../../../../admin/src/components/EditFolderDialog/EditFolderDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Field, Flex, Grid, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useBulkRemove } from '../../hooks/useBulkRemove';\nimport { useEditFolder } from '../../hooks/useEditFolder';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getAPIInnerErrors } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { EditFolderModalHeader } from './ModalHeader/ModalHeader';\nimport { RemoveFolderDialog } from './RemoveFolderDialog';\n\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\nconst folderSchema = yup.object({\n name: yup.string().required(),\n parent: yup\n .object({\n label: yup.string(),\n value: yup.number().nullable(true),\n })\n .nullable(true),\n});\n\ninterface ValuesSubmit {\n name: string;\n parent: null | { label?: string; value?: number };\n}\n\nexport interface EditFolderDialogProps {\n parentFolderId?: string | number | null;\n location?: string;\n folder?: FolderDefinition;\n open?: boolean;\n onClose: (payload?: { created?: boolean | undefined } | boolean) => void;\n}\n\nexport const EditFolderContent = ({\n onClose,\n folder,\n location,\n parentFolderId,\n}: EditFolderDialogProps) => {\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n const { canCreate, isLoading: isLoadingPermissions, canUpdate } = useMediaLibraryPermissions();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const { editFolder, isLoading: isEditFolderLoading } = useEditFolder();\n const { remove } = useBulkRemove();\n const { toggleNotification } = useNotification();\n const isLoading = isLoadingPermissions || folderStructureIsLoading;\n const isEditing = !!folder;\n const formDisabled = (folder && !canUpdate) || (!folder && !canCreate);\n const initialFormData: ValuesSubmit = !folderStructureIsLoading\n ? {\n name: folder?.name ?? '',\n parent: {\n /* ideally we would use folderStructure[0].value, but since it is null\n react complains about rendering null as field value */\n value: parentFolderId ? parseInt(parentFolderId.toString(), 10) : undefined,\n label: parentFolderId\n ? folderStructure &&\n findRecursiveFolderByValue(folderStructure, parseInt(parentFolderId.toString(), 10))\n ?.label\n : folderStructure?.[0].label,\n },\n }\n : {\n name: '',\n parent: null,\n };\n\n const formRef = React.useRef<HTMLFormElement>(null);\n\n const handleKeyDown =\n (handleSubmit: (event: React.FormEvent<HTMLFormElement>) => void) =>\n (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (event.key === 'Enter') {\n if (event.target instanceof HTMLInputElement) {\n handleSubmit(event);\n event.preventDefault();\n }\n }\n };\n\n const handleSubmit = async (\n values: ValuesSubmit,\n { setErrors }: { setErrors: (errors: FormikErrors<ValuesSubmit>) => void }\n ) => {\n try {\n await editFolder(\n {\n ...values,\n parent: values.parent?.value ?? null,\n },\n folder?.id\n );\n\n toggleNotification({\n type: 'success',\n message: isEditing\n ? formatMessage({\n id: getTrad('modal.folder-notification-edited-success'),\n defaultMessage: 'Folder successfully edited',\n })\n : formatMessage({\n id: getTrad('modal.folder-notification-created-success'),\n defaultMessage: 'Folder successfully created',\n }),\n });\n\n if (isEditing) {\n const didChangeLocation = parentFolderId\n ? parseInt(parentFolderId.toString(), 10) !== values.parent?.value\n : parentFolderId === null && !!values.parent?.value;\n trackUsage('didEditMediaLibraryElements', {\n location,\n type: 'folder',\n changeLocation: didChangeLocation,\n });\n } else {\n trackUsage('didAddMediaLibraryFolders', { location: location! });\n }\n\n onClose({ created: true });\n } catch (err) {\n const errors = getAPIInnerErrors(err as FetchError, { getTrad });\n const formikErrors = Object.entries(errors!).reduce(\n (acc: Record<string, string>, [key, error]) => {\n acc[key] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n };\n\n const handleDelete = async () => {\n if (folder) {\n await remove([folder]);\n }\n\n setShowConfirmDialog(false);\n onClose();\n };\n\n if (isLoading) {\n return (\n <>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </>\n );\n }\n\n return (\n <>\n <Formik\n validationSchema={folderSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue, handleSubmit }) => (\n <Form noValidate ref={formRef} onKeyDown={handleKeyDown(handleSubmit)}>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Grid.Root gap={4}>\n {isEditing && (\n <Grid.Item xs={12} col={12} direction=\"column\" alignItems=\"stretch\">\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.elements'),\n defaultMessage: 'Elements',\n }),\n value: formatMessage(\n {\n id: getTrad('modal.folder.elements.count'),\n defaultMessage: '{folderCount} folders, {assetCount} assets',\n },\n {\n assetCount: folder?.files?.count ?? 0,\n folderCount: folder?.children?.count ?? 0,\n }\n ),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.creation-date'),\n defaultMessage: 'Creation Date',\n }),\n value: formatDate(new Date(folder.createdAt!)),\n },\n ]}\n />\n </Grid.Item>\n )}\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={typeof errors.name === 'string' ? errors.name : undefined}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-name'),\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <Field.Input\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-parent\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n isDisabled={formDisabled}\n defaultValue={values.parent!}\n name=\"parent\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-parent\"\n disabled={formDisabled}\n error={typeof errors.parent === 'string' ? errors.parent : undefined}\n ariaErrorMessage=\"folder-parent-error\"\n />\n\n {errors.parent && (\n <Typography\n variant=\"pi\"\n tag=\"p\"\n id=\"folder-parent-error\"\n textColor=\"danger600\"\n >\n {typeof errors.parent === 'string' ? errors.parent : undefined}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => onClose()} variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {isEditing && canUpdate && (\n <Button\n type=\"button\"\n variant=\"danger-light\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"delete\"\n disabled={!canUpdate || isEditFolderLoading}\n >\n {formatMessage({\n id: getTrad('modal.folder.create.delete'),\n defaultMessage: 'Delete folder',\n })}\n </Button>\n )}\n\n <Button\n name=\"submit\"\n loading={isEditFolderLoading}\n disabled={formDisabled}\n type=\"submit\"\n >\n {formatMessage(\n isEditing\n ? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' }\n : { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' }\n )}\n </Button>\n </Flex>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n <RemoveFolderDialog\n open={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleDelete}\n />\n </>\n );\n};\n\nexport const EditFolderDialog = ({ open, onClose, ...restProps }: EditFolderDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditFolderContent {...restProps} onClose={onClose} open={open} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["folderSchema","yup","object","name","string","required","parent","label","value","number","nullable","EditFolderContent","onClose","folder","location","parentFolderId","data","folderStructure","isLoading","folderStructureIsLoading","useFolderStructure","enabled","canCreate","isLoadingPermissions","canUpdate","useMediaLibraryPermissions","showConfirmDialog","setShowConfirmDialog","React","useState","formatMessage","formatDate","useIntl","trackUsage","useTracking","editFolder","isEditFolderLoading","useEditFolder","remove","useBulkRemove","toggleNotification","useNotification","isEditing","formDisabled","initialFormData","parseInt","toString","undefined","findRecursiveFolderByValue","formRef","useRef","handleKeyDown","handleSubmit","event","key","target","HTMLInputElement","preventDefault","values","setErrors","id","type","message","getTrad","defaultMessage","didChangeLocation","changeLocation","created","err","errors","getAPIInnerErrors","formikErrors","Object","entries","reduce","acc","error","isEmpty","handleDelete","_jsxs","_Fragment","_jsx","EditFolderModalHeader","Modal","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","Formik","validationSchema","validateOnChange","onSubmit","initialValues","handleChange","setFieldValue","Form","noValidate","ref","onKeyDown","Grid","Root","gap","Item","xs","col","direction","alignItems","ContextInfo","blocks","assetCount","files","count","folderCount","children","Date","createdAt","Field","Label","Input","onChange","disabled","Error","SelectTree","options","isDisabled","defaultValue","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Button","onClick","loading","RemoveFolderDialog","open","onConfirm","EditFolderDialog","restProps","onOpenChange","Content"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,YAAAA,GAAeC,GAAAA,CAAIC,MAAM,CAAC;IAC9BC,IAAAA,EAAMF,GAAAA,CAAIG,MAAM,EAAA,CAAGC,QAAQ,EAAA;IAC3BC,MAAAA,EAAQL,GAAAA,CACLC,MAAM,CAAC;AACNK,QAAAA,KAAAA,EAAON,IAAIG,MAAM,EAAA;AACjBI,QAAAA,KAAAA,EAAOP,GAAAA,CAAIQ,MAAM,EAAA,CAAGC,QAAQ,CAAC,IAAA;AAC/B,KAAA,CAAA,CACCA,QAAQ,CAAC,IAAA;AACd,CAAA,CAAA;AAeO,MAAMC,iBAAAA,GAAoB,CAAC,EAChCC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,cAAc,EACQ,GAAA;IACtB,MAAM,EAAEC,MAAMC,eAAe,EAAEC,WAAWC,wBAAwB,EAAE,GAAGC,kBAAAA,CAAmB;QACxFC,OAAAA,EAAS;AACX,KAAA,CAAA;IACA,MAAM,EAAEC,SAAS,EAAEJ,SAAAA,EAAWK,oBAAoB,EAAEC,SAAS,EAAE,GAAGC,0BAAAA,EAAAA;AAClE,IAAA,MAAM,CAACC,iBAAAA,EAAmBC,oBAAAA,CAAqB,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACjE,IAAA,MAAM,EAAEC,aAAa,EAAEC,UAAU,EAAE,GAAGC,OAAAA,EAAAA;IACtC,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAM,EAAEC,UAAU,EAAEjB,SAAAA,EAAWkB,mBAAmB,EAAE,GAAGC,aAAAA,EAAAA;IACvD,MAAM,EAAEC,MAAM,EAAE,GAAGC,aAAAA,EAAAA;IACnB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAMvB,YAAYK,oBAAAA,IAAwBJ,wBAAAA;IAC1C,MAAMuB,SAAAA,GAAY,CAAC,CAAC7B,MAAAA;AACpB,IAAA,MAAM8B,eAAe,MAAC9B,IAAU,CAACW,SAAAA,IAAe,CAACX,UAAU,CAACS,SAAAA;IAC5D,MAAMsB,eAAAA,GAAgC,CAACzB,wBAAAA,GACnC;AACEhB,QAAAA,IAAAA,EAAMU,QAAQV,IAAAA,IAAQ,EAAA;QACtBG,MAAAA,EAAQ;AACN;AACmD,gEACnDE,OAAOO,cAAAA,GAAiB8B,QAAAA,CAAS9B,cAAAA,CAAe+B,QAAQ,IAAI,EAAA,CAAA,GAAMC,SAAAA;AAClExC,YAAAA,KAAAA,EAAOQ,cAAAA,GACHE,eAAAA,IACA+B,0BAAAA,CAA2B/B,eAAAA,EAAiB4B,QAAAA,CAAS9B,cAAAA,CAAe+B,QAAQ,EAAA,EAAI,EAAA,CAAA,CAAA,EAC5EvC,KAAAA,GACJU,eAAAA,GAAkB,EAAE,CAACV;AAC3B;KACF,GACA;QACEJ,IAAAA,EAAM,EAAA;QACNG,MAAAA,EAAQ;AACV,KAAA;IAEJ,MAAM2C,OAAAA,GAAUrB,KAAAA,CAAMsB,MAAM,CAAkB,IAAA,CAAA;IAE9C,MAAMC,aAAAA,GACJ,CAACC,YAAAA,GACD,CAACC,KAAAA,GAAAA;YACC,IAAIA,KAAAA,CAAMC,GAAG,KAAK,OAAA,EAAS;gBACzB,IAAID,KAAAA,CAAME,MAAM,YAAYC,gBAAAA,EAAkB;oBAC5CJ,YAAAA,CAAaC,KAAAA,CAAAA;AACbA,oBAAAA,KAAAA,CAAMI,cAAc,EAAA;AACtB,gBAAA;AACF,YAAA;AACF,QAAA,CAAA;AAEF,IAAA,MAAML,YAAAA,GAAe,OACnBM,MAAAA,EACA,EAAEC,SAAS,EAA+D,GAAA;QAE1E,IAAI;AACF,YAAA,MAAMxB,UAAAA,CACJ;AACE,gBAAA,GAAGuB,MAAM;gBACTpD,MAAAA,EAAQoD,MAAAA,CAAOpD,MAAM,EAAEE,KAAAA,IAAS;AAClC,aAAA,EACAK,MAAAA,EAAQ+C,EAAAA,CAAAA;YAGVpB,kBAAAA,CAAmB;gBACjBqB,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASpB,YACLZ,aAAAA,CAAc;AACZ8B,oBAAAA,EAAAA,EAAIG,OAAAA,CAAQ,0CAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA,GACAlC,aAAAA,CAAc;AACZ8B,oBAAAA,EAAAA,EAAIG,OAAAA,CAAQ,2CAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACN,aAAA,CAAA;AAEA,YAAA,IAAItB,SAAAA,EAAW;AACb,gBAAA,MAAMuB,oBAAoBlD,cAAAA,GACtB8B,QAAAA,CAAS9B,cAAAA,CAAe+B,QAAQ,IAAI,EAAA,CAAA,KAAQY,MAAAA,CAAOpD,MAAM,EAAEE,QAC3DO,cAAAA,KAAmB,IAAA,IAAQ,CAAC,CAAC2C,MAAAA,CAAOpD,MAAM,EAAEE,KAAAA;AAChDyB,gBAAAA,UAAAA,CAAW,6BAAA,EAA+B;AACxCnB,oBAAAA,QAAAA;oBACA+C,IAAAA,EAAM,QAAA;oBACNK,cAAAA,EAAgBD;AAClB,iBAAA,CAAA;YACF,CAAA,MAAO;AACLhC,gBAAAA,UAAAA,CAAW,2BAAA,EAA6B;oBAAEnB,QAAAA,EAAUA;AAAU,iBAAA,CAAA;AAChE,YAAA;YAEAF,OAAAA,CAAQ;gBAAEuD,OAAAA,EAAS;AAAK,aAAA,CAAA;AAC1B,QAAA,CAAA,CAAE,OAAOC,GAAAA,EAAK;YACZ,MAAMC,MAAAA,GAASC,kBAAkBF,GAAAA,EAAmB;AAAEL,gBAAAA;AAAQ,aAAA,CAAA;YAC9D,MAAMQ,YAAAA,GAAeC,MAAAA,CAAOC,OAAO,CAACJ,MAAAA,CAAAA,CAASK,MAAM,CACjD,CAACC,GAAAA,EAA6B,CAACrB,GAAAA,EAAKsB,KAAAA,CAAM,GAAA;AACxCD,gBAAAA,GAAG,CAACrB,GAAAA,CAAI,GAAGsB,KAAAA,CAAMZ,cAAc;gBAE/B,OAAOW,GAAAA;AACT,YAAA,CAAA,EACA,EAAC,CAAA;YAGH,IAAI,CAACE,QAAQN,YAAAA,CAAAA,EAAe;gBAC1BZ,SAAAA,CAAUY,YAAAA,CAAAA;AACZ,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMO,YAAAA,GAAe,UAAA;AACnB,QAAA,IAAIjE,MAAAA,EAAQ;AACV,YAAA,MAAMyB,MAAAA,CAAO;AAACzB,gBAAAA;AAAO,aAAA,CAAA;AACvB,QAAA;QAEAc,oBAAAA,CAAqB,KAAA,CAAA;AACrBf,QAAAA,OAAAA,EAAAA;AACF,IAAA,CAAA;AAEA,IAAA,IAAIM,SAAAA,EAAW;QACb,qBACE6D,IAAA,CAAAC,QAAA,EAAA;;8BACEC,GAAA,CAACC,qBAAAA,EAAAA;oBAAsBxC,SAAAA,EAAWA;;AAClC,8BAAAuC,GAAA,CAACE,MAAMC,IAAI,EAAA;AACT,oBAAA,QAAA,gBAAAH,GAAA,CAACI,IAAAA,EAAAA;wBAAKC,cAAAA,EAAe,QAAA;wBAASC,UAAAA,EAAY,CAAA;wBAAGC,aAAAA,EAAe,CAAA;AAC1D,wBAAA,QAAA,gBAAAP,GAAA,CAACQ,MAAAA,EAAAA;sCACE3D,aAAAA,CAAc;AACb8B,gCAAAA,EAAAA,EAAIG,OAAAA,CAAQ,mBAAA,CAAA;gCACZC,cAAAA,EAAgB;AAClB,6BAAA;;;;;;AAMZ,IAAA;IAEA,qBACEe,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAAA,CAACS,MAAAA,EAAAA;gBACCC,gBAAAA,EAAkB3F,YAAAA;gBAClB4F,gBAAAA,EAAkB,KAAA;gBAClBC,QAAAA,EAAUzC,YAAAA;gBACV0C,aAAAA,EAAelD,eAAAA;AAEd,gBAAA,QAAA,EAAA,CAAC,EAAEc,MAAM,EAAEW,MAAM,EAAE0B,YAAY,EAAEC,aAAa,EAAE5C,YAAY,EAAE,iBAC7D2B,IAAA,CAACkB,IAAAA,EAAAA;wBAAKC,UAAU,EAAA,IAAA;wBAACC,GAAAA,EAAKlD,OAAAA;AAASmD,wBAAAA,SAAAA,EAAWjD,aAAAA,CAAcC,YAAAA,CAAAA;;0CACtD6B,GAAA,CAACC,qBAAAA,EAAAA;gCAAsBxC,SAAAA,EAAWA;;AAClC,0CAAAuC,GAAA,CAACE,MAAMC,IAAI,EAAA;wDACTL,IAAA,CAACsB,KAAKC,IAAI,EAAA;oCAACC,GAAAA,EAAK,CAAA;;wCACb7D,SAAAA,kBACCuC,GAAA,CAACoB,KAAKG,IAAI,EAAA;4CAACC,EAAAA,EAAI,EAAA;4CAAIC,GAAAA,EAAK,EAAA;4CAAIC,SAAAA,EAAU,QAAA;4CAASC,UAAAA,EAAW,SAAA;AACxD,4CAAA,QAAA,gBAAA3B,GAAA,CAAC4B,WAAAA,EAAAA;gDACCC,MAAAA,EAAQ;AACN,oDAAA;AACEvG,wDAAAA,KAAAA,EAAOuB,aAAAA,CAAc;AACnB8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,8BAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA,CAAA;AACAxD,wDAAAA,KAAAA,EAAOsB,aAAAA,CACL;AACE8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,6BAAA,CAAA;4DACZC,cAAAA,EAAgB;yDAClB,EACA;4DACE+C,UAAAA,EAAYlG,MAAAA,EAAQmG,OAAOC,KAAAA,IAAS,CAAA;4DACpCC,WAAAA,EAAarG,MAAAA,EAAQsG,UAAUF,KAAAA,IAAS;AAC1C,yDAAA;AAEJ,qDAAA;AAEA,oDAAA;AACE1G,wDAAAA,KAAAA,EAAOuB,aAAAA,CAAc;AACnB8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,mCAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA,CAAA;AACAxD,wDAAAA,KAAAA,EAAOuB,UAAAA,CAAW,IAAIqF,IAAAA,CAAKvG,MAAAA,CAAOwG,SAAS,CAAA;AAC7C;AACD;;;AAKP,sDAAApC,GAAA,CAACoB,KAAKG,IAAI,EAAA;4CAACC,EAAAA,EAAI,EAAA;4CAAIC,GAAAA,EAAK,CAAA;4CAAGC,SAAAA,EAAU,QAAA;4CAASC,UAAAA,EAAW,SAAA;oEACvD7B,IAAA,CAACuC,MAAMhB,IAAI,EAAA;gDACTnG,IAAAA,EAAK,MAAA;AACLyE,gDAAAA,KAAAA,EAAO,OAAOP,MAAAA,CAAOlE,IAAI,KAAK,QAAA,GAAWkE,MAAAA,CAAOlE,IAAI,GAAG4C,SAAAA;;AAEvD,kEAAAkC,GAAA,CAACqC,MAAMC,KAAK,EAAA;kEACTzF,aAAAA,CAAc;AACb8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,8BAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA;;AAEF,kEAAAiB,GAAA,CAACqC,MAAME,KAAK,EAAA;AACVhH,wDAAAA,KAAAA,EAAOkD,OAAOvD,IAAI;wDAClBsH,QAAAA,EAAU1B,YAAAA;wDACV2B,QAAAA,EAAU/E;;AAEZ,kEAAAsC,GAAA,CAACqC,MAAMK,KAAK,EAAA,EAAA;;;;AAIhB,sDAAA1C,GAAA,CAACoB,KAAKG,IAAI,EAAA;4CAACC,EAAAA,EAAI,EAAA;4CAAIC,GAAAA,EAAK,CAAA;4CAAGC,SAAAA,EAAU,QAAA;4CAASC,UAAAA,EAAW,SAAA;oEACvD7B,IAAA,CAACuC,MAAMhB,IAAI,EAAA;gDAAC1C,EAAAA,EAAG,eAAA;;AACb,kEAAAqB,GAAA,CAACqC,MAAMC,KAAK,EAAA;kEACTzF,aAAAA,CAAc;AACb8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,kCAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA;;kEAGFiB,GAAA,CAAC2C,UAAAA,EAAAA;wDACCC,OAAAA,EAAS5G,eAAAA;AACTwG,wDAAAA,QAAAA,EAAU,CAACjH,KAAAA,GAAAA;AACTwF,4DAAAA,aAAAA,CAAc,QAAA,EAAUxF,KAAAA,CAAAA;AAC1B,wDAAA,CAAA;wDACAsH,UAAAA,EAAYnF,YAAAA;AACZoF,wDAAAA,YAAAA,EAAcrE,OAAOpD,MAAM;wDAC3BH,IAAAA,EAAK,QAAA;wDACL6H,gBAAAA,EAAkBC,QAAAA,CAASC,aAAa,CAAC,MAAA,CAAA;wDACzCC,OAAAA,EAAQ,eAAA;wDACRT,QAAAA,EAAU/E,YAAAA;AACViC,wDAAAA,KAAAA,EAAO,OAAOP,MAAAA,CAAO/D,MAAM,KAAK,QAAA,GAAW+D,MAAAA,CAAO/D,MAAM,GAAGyC,SAAAA;wDAC3DqF,gBAAAA,EAAiB;;oDAGlB/D,MAAAA,CAAO/D,MAAM,kBACZ2E,GAAA,CAACoD,UAAAA,EAAAA;wDACCC,OAAAA,EAAQ,IAAA;wDACRC,GAAAA,EAAI,GAAA;wDACJ3E,EAAAA,EAAG,qBAAA;wDACH4E,SAAAA,EAAU,WAAA;AAET,wDAAA,QAAA,EAAA,OAAOnE,OAAO/D,MAAM,KAAK,QAAA,GAAW+D,MAAAA,CAAO/D,MAAM,GAAGyC;;;;;;;;AAOjE,0CAAAgC,IAAA,CAACI,MAAMsD,MAAM,EAAA;;kDACXxD,GAAA,CAACyD,MAAAA,EAAAA;AAAOC,wCAAAA,OAAAA,EAAS,IAAM/H,OAAAA,EAAAA;wCAAW0H,OAAAA,EAAQ,UAAA;wCAAWnI,IAAAA,EAAK,QAAA;kDACvD2B,aAAAA,CAAc;4CAAE8B,EAAAA,EAAI,QAAA;4CAAUI,cAAAA,EAAgB;AAAS,yCAAA;;kDAE1De,IAAA,CAACM,IAAAA,EAAAA;wCAAKkB,GAAAA,EAAK,CAAA;;AACR7D,4CAAAA,SAAAA,IAAalB,2BACZyD,GAAA,CAACyD,MAAAA,EAAAA;gDACC7E,IAAAA,EAAK,QAAA;gDACLyE,OAAAA,EAAQ,cAAA;AACRK,gDAAAA,OAAAA,EAAS,IAAMhH,oBAAAA,CAAqB,IAAA,CAAA;gDACpCxB,IAAAA,EAAK,QAAA;AACLuH,gDAAAA,QAAAA,EAAU,CAAClG,SAAAA,IAAaY,mBAAAA;0DAEvBN,aAAAA,CAAc;AACb8B,oDAAAA,EAAAA,EAAIG,OAAAA,CAAQ,4BAAA,CAAA;oDACZC,cAAAA,EAAgB;AAClB,iDAAA;;0DAIJiB,GAAA,CAACyD,MAAAA,EAAAA;gDACCvI,IAAAA,EAAK,QAAA;gDACLyI,OAAAA,EAASxG,mBAAAA;gDACTsF,QAAAA,EAAU/E,YAAAA;gDACVkB,IAAAA,EAAK,QAAA;AAEJ/B,gDAAAA,QAAAA,EAAAA,aAAAA,CACCY,SAAAA,GACI;AAAEkB,oDAAAA,EAAAA,EAAIG,OAAAA,CAAQ,0BAAA,CAAA;oDAA6BC,cAAAA,EAAgB;iDAAO,GAClE;AAAEJ,oDAAAA,EAAAA,EAAIG,OAAAA,CAAQ,4BAAA,CAAA;oDAA+BC,cAAAA,EAAgB;AAAS,iDAAA;;;;;;;;;0BAQxFiB,GAAA,CAAC4D,kBAAAA,EAAAA;gBACCC,IAAAA,EAAMpH,iBAAAA;AACNd,gBAAAA,OAAAA,EAAS,IAAMe,oBAAAA,CAAqB,KAAA,CAAA;gBACpCoH,SAAAA,EAAWjE;;;;AAInB;AAEO,MAAMkE,mBAAmB,CAAC,EAAEF,IAAI,EAAElI,OAAO,EAAE,GAAGqI,SAAAA,EAAkC,GAAA;IACrF,qBACEhE,GAAA,CAACE,MAAMmB,IAAI,EAAA;QAACwC,IAAAA,EAAMA,IAAAA;QAAMI,YAAAA,EAActI,OAAAA;gCACpCqE,GAAA,CAACE,MAAMgE,OAAO,EAAA;AACZ,YAAA,QAAA,gBAAAlE,GAAA,CAACtE,iBAAAA,EAAAA;AAAmB,gBAAA,GAAGsI,SAAS;gBAAErI,OAAAA,EAASA,OAAAA;gBAASkI,IAAAA,EAAMA;;;;AAIlE;;;;"}
|
|
@@ -7,7 +7,6 @@ require('byte-size');
|
|
|
7
7
|
require('date-fns');
|
|
8
8
|
var getTrad = require('../../../utils/getTrad.js');
|
|
9
9
|
require('qs');
|
|
10
|
-
require('../../../utils/typeFromMime.js');
|
|
11
10
|
require('../../../utils/urlYupSchema.js');
|
|
12
11
|
|
|
13
12
|
const EditFolderModalHeader = ({ isEditing = false })=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalHeader.js","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModalHeader.js","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":";;;;;;;;;;;MASaA,qBAAAA,GAAwB,CAAC,EAAEC,SAAAA,GAAY,KAAK,EAA8B,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,qBACEC,cAAA,CAACC,mBAAMC,MAAM,EAAA;gCACXF,cAAA,CAACC,mBAAME,KAAK,EAAA;AACTL,YAAAA,QAAAA,EAAAA,aAAAA,CACCD,SAAAA,GACI;AACEO,gBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,yBAAA,CAAA;gBACZC,cAAAA,EAAgB;aAClB,GACA;AACEF,gBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,2BAAA,CAAA;gBACZC,cAAAA,EAAgB;AAClB,aAAA;;;AAKd;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalHeader.mjs","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModalHeader.mjs","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":";;;;;;;;;MASaA,qBAAAA,GAAwB,CAAC,EAAEC,SAAAA,GAAY,KAAK,EAA8B,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,qBACEC,GAAA,CAACC,MAAMC,MAAM,EAAA;gCACXF,GAAA,CAACC,MAAME,KAAK,EAAA;AACTL,YAAAA,QAAAA,EAAAA,aAAAA,CACCD,SAAAA,GACI;AACEO,gBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,yBAAA,CAAA;gBACZC,cAAAA,EAAgB;aAClB,GACA;AACEF,gBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,2BAAA,CAAA;gBACZC,cAAAA,EAAgB;AAClB,aAAA;;;AAKd;;;;"}
|
|
@@ -8,7 +8,6 @@ var createAssetUrl = require('../../../utils/createAssetUrl.js');
|
|
|
8
8
|
require('byte-size');
|
|
9
9
|
require('date-fns');
|
|
10
10
|
require('qs');
|
|
11
|
-
require('../../../utils/typeFromMime.js');
|
|
12
11
|
require('../../../utils/urlYupSchema.js');
|
|
13
12
|
var icons = require('../../../utils/icons.js');
|
|
14
13
|
var AudioPreview = require('../../AssetCard/AudioPreview.js');
|
|
@@ -31,7 +30,7 @@ const AudioPreviewWrapper = styledComponents.styled(designSystem.Box)`
|
|
|
31
30
|
}
|
|
32
31
|
`;
|
|
33
32
|
const CarouselAsset = ({ asset })=>{
|
|
34
|
-
if (asset.mime?.includes(enums.
|
|
33
|
+
if (asset.mime?.includes(enums.ASSET_TYPES.Video)) {
|
|
35
34
|
return /*#__PURE__*/ jsxRuntime.jsx(VideoPreviewWrapper, {
|
|
36
35
|
height: "100%",
|
|
37
36
|
children: /*#__PURE__*/ jsxRuntime.jsx(VideoPreview.VideoPreview, {
|
|
@@ -41,7 +40,7 @@ const CarouselAsset = ({ asset })=>{
|
|
|
41
40
|
})
|
|
42
41
|
});
|
|
43
42
|
}
|
|
44
|
-
if (asset.mime?.includes(enums.
|
|
43
|
+
if (asset.mime?.includes(enums.ASSET_TYPES.Audio)) {
|
|
45
44
|
return /*#__PURE__*/ jsxRuntime.jsx(AudioPreviewWrapper, {
|
|
46
45
|
children: /*#__PURE__*/ jsxRuntime.jsx(AudioPreview.AudioPreview, {
|
|
47
46
|
url: createAssetUrl.createAssetUrl(asset, true),
|
|
@@ -49,7 +48,7 @@ const CarouselAsset = ({ asset })=>{
|
|
|
49
48
|
})
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
|
-
if (asset.mime?.includes(enums.
|
|
51
|
+
if (asset.mime?.includes(enums.ASSET_TYPES.Image)) {
|
|
53
52
|
const assetUrl = createAssetUrl.createAssetUrl(asset, true);
|
|
54
53
|
if (!assetUrl) return null;
|
|
55
54
|
// Adding a param to the url to bust the cache and force the refresh of the image when replaced
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselAsset.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport {
|
|
1
|
+
{"version":3,"file":"CarouselAsset.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { ASSET_TYPES } from '../../../enums';\nimport { createAssetUrl } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\nimport { AudioPreview } from '../../AssetCard/AudioPreview';\nimport { VideoPreview } from '../../AssetCard/VideoPreview';\n\nimport type { File as FileAsset } from '../../../../../shared/contracts/files';\n\nconst DocAsset = styled(Flex)`\n background: linear-gradient(180deg, #ffffff 0%, #f6f6f9 121.48%);\n`;\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n max-width: 100%;\n height: 124px;\n }\n`;\n\nconst AudioPreviewWrapper = styled(Box)`\n canvas,\n audio {\n max-width: 100%;\n }\n`;\n\nexport const CarouselAsset = ({ asset }: { asset: FileAsset }) => {\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return (\n <VideoPreviewWrapper height=\"100%\">\n <VideoPreview\n url={createAssetUrl(asset, true)!}\n mime={asset.mime}\n alt={asset.alternativeText || asset.name}\n />\n </VideoPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return (\n <AudioPreviewWrapper>\n <AudioPreview\n url={createAssetUrl(asset, true)!}\n alt={asset.alternativeText || asset.name}\n />\n </AudioPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n const assetUrl = createAssetUrl(asset, true);\n if (!assetUrl) return null;\n\n // Adding a param to the url to bust the cache and force the refresh of the image when replaced\n // Only add updatedAt parameter if the URL is not signed to prevent signature invalidation\n const cacheBustedUrl = asset.isUrlSigned\n ? assetUrl\n : `${assetUrl}${assetUrl.includes('?') ? '&' : '?'}updatedAt=${asset.updatedAt}`;\n\n return (\n <Box\n tag=\"img\"\n maxHeight=\"100%\"\n maxWidth=\"100%\"\n src={cacheBustedUrl}\n alt={asset.alternativeText || asset.name}\n />\n );\n }\n\n const IconComponent = getFileIconComponent(asset.ext);\n\n return (\n <DocAsset width=\"100%\" height=\"100%\" justifyContent=\"center\" hasRadius>\n <IconComponent aria-label={asset.alternativeText || asset.name} width=\"24px\" height=\"32px\" />\n </DocAsset>\n );\n};\n"],"names":["DocAsset","styled","Flex","VideoPreviewWrapper","Box","AudioPreviewWrapper","CarouselAsset","asset","mime","includes","ASSET_TYPES","Video","_jsx","height","VideoPreview","url","createAssetUrl","alt","alternativeText","name","Audio","AudioPreview","Image","assetUrl","cacheBustedUrl","isUrlSigned","updatedAt","tag","maxHeight","maxWidth","src","IconComponent","getFileIconComponent","ext","width","justifyContent","hasRadius","aria-label"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAMA,QAAAA,GAAWC,uBAAAA,CAAOC,iBAAAA,CAAK;;AAE7B,CAAC;AAED,MAAMC,mBAAAA,GAAsBF,uBAAAA,CAAOG,gBAAAA,CAAI;;;;;;AAMvC,CAAC;AAED,MAAMC,mBAAAA,GAAsBJ,uBAAAA,CAAOG,gBAAAA,CAAI;;;;;AAKvC,CAAC;AAEM,MAAME,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAwB,GAAA;AAC3D,IAAA,IAAIA,MAAMC,IAAI,EAAEC,QAAAA,CAASC,iBAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEC,cAAA,CAACT,mBAAAA,EAAAA;YAAoBU,MAAAA,EAAO,MAAA;AAC1B,YAAA,QAAA,gBAAAD,cAAA,CAACE,yBAAAA,EAAAA;AACCC,gBAAAA,GAAAA,EAAKC,8BAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBS,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,iBAAAA,CAAYU,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACER,cAAA,CAACP,mBAAAA,EAAAA;AACC,YAAA,QAAA,gBAAAO,cAAA,CAACS,yBAAAA,EAAAA;AACCN,gBAAAA,GAAAA,EAAKC,8BAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BU,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,iBAAAA,CAAYY,KAAK,CAAA,EAAG;QAC3C,MAAMC,QAAAA,GAAWP,8BAAeT,KAAAA,EAAO,IAAA,CAAA;QACvC,IAAI,CAACgB,UAAU,OAAO,IAAA;;;AAItB,QAAA,MAAMC,iBAAiBjB,KAAAA,CAAMkB,WAAW,GACpCF,QAAAA,GACA,GAAGA,QAAAA,CAAAA,EAAWA,QAAAA,CAASd,QAAQ,CAAC,OAAO,GAAA,GAAM,GAAA,CAAI,UAAU,EAAEF,KAAAA,CAAMmB,SAAS,CAAA,CAAE;AAElF,QAAA,qBACEd,cAAA,CAACR,gBAAAA,EAAAA;YACCuB,GAAAA,EAAI,KAAA;YACJC,SAAAA,EAAU,MAAA;YACVC,QAAAA,EAAS,MAAA;YACTC,GAAAA,EAAKN,cAAAA;AACLP,YAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;AAG1C,IAAA;IAEA,MAAMY,aAAAA,GAAgBC,0BAAAA,CAAqBzB,KAAAA,CAAM0B,GAAG,CAAA;AAEpD,IAAA,qBACErB,cAAA,CAACZ,QAAAA,EAAAA;QAASkC,KAAAA,EAAM,MAAA;QAAOrB,MAAAA,EAAO,MAAA;QAAOsB,cAAAA,EAAe,QAAA;QAASC,SAAS,EAAA,IAAA;AACpE,QAAA,QAAA,gBAAAxB,cAAA,CAACmB,aAAAA,EAAAA;AAAcM,YAAAA,YAAAA,EAAY9B,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY,IAAI;YAAEe,KAAAA,EAAM,MAAA;YAAOrB,MAAAA,EAAO;;;AAG1F;;;;"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { Flex, Box } from '@strapi/design-system';
|
|
3
3
|
import { styled } from 'styled-components';
|
|
4
|
-
import {
|
|
4
|
+
import { ASSET_TYPES } from '../../../enums.mjs';
|
|
5
5
|
import { createAssetUrl } from '../../../utils/createAssetUrl.mjs';
|
|
6
6
|
import 'byte-size';
|
|
7
7
|
import 'date-fns';
|
|
8
8
|
import 'qs';
|
|
9
|
-
import '../../../utils/typeFromMime.mjs';
|
|
10
9
|
import '../../../utils/urlYupSchema.mjs';
|
|
11
10
|
import { getFileIconComponent } from '../../../utils/icons.mjs';
|
|
12
11
|
import { AudioPreview } from '../../AssetCard/AudioPreview.mjs';
|
|
@@ -29,7 +28,7 @@ const AudioPreviewWrapper = styled(Box)`
|
|
|
29
28
|
}
|
|
30
29
|
`;
|
|
31
30
|
const CarouselAsset = ({ asset })=>{
|
|
32
|
-
if (asset.mime?.includes(
|
|
31
|
+
if (asset.mime?.includes(ASSET_TYPES.Video)) {
|
|
33
32
|
return /*#__PURE__*/ jsx(VideoPreviewWrapper, {
|
|
34
33
|
height: "100%",
|
|
35
34
|
children: /*#__PURE__*/ jsx(VideoPreview, {
|
|
@@ -39,7 +38,7 @@ const CarouselAsset = ({ asset })=>{
|
|
|
39
38
|
})
|
|
40
39
|
});
|
|
41
40
|
}
|
|
42
|
-
if (asset.mime?.includes(
|
|
41
|
+
if (asset.mime?.includes(ASSET_TYPES.Audio)) {
|
|
43
42
|
return /*#__PURE__*/ jsx(AudioPreviewWrapper, {
|
|
44
43
|
children: /*#__PURE__*/ jsx(AudioPreview, {
|
|
45
44
|
url: createAssetUrl(asset, true),
|
|
@@ -47,7 +46,7 @@ const CarouselAsset = ({ asset })=>{
|
|
|
47
46
|
})
|
|
48
47
|
});
|
|
49
48
|
}
|
|
50
|
-
if (asset.mime?.includes(
|
|
49
|
+
if (asset.mime?.includes(ASSET_TYPES.Image)) {
|
|
51
50
|
const assetUrl = createAssetUrl(asset, true);
|
|
52
51
|
if (!assetUrl) return null;
|
|
53
52
|
// Adding a param to the url to bust the cache and force the refresh of the image when replaced
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselAsset.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport {
|
|
1
|
+
{"version":3,"file":"CarouselAsset.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { ASSET_TYPES } from '../../../enums';\nimport { createAssetUrl } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\nimport { AudioPreview } from '../../AssetCard/AudioPreview';\nimport { VideoPreview } from '../../AssetCard/VideoPreview';\n\nimport type { File as FileAsset } from '../../../../../shared/contracts/files';\n\nconst DocAsset = styled(Flex)`\n background: linear-gradient(180deg, #ffffff 0%, #f6f6f9 121.48%);\n`;\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n max-width: 100%;\n height: 124px;\n }\n`;\n\nconst AudioPreviewWrapper = styled(Box)`\n canvas,\n audio {\n max-width: 100%;\n }\n`;\n\nexport const CarouselAsset = ({ asset }: { asset: FileAsset }) => {\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return (\n <VideoPreviewWrapper height=\"100%\">\n <VideoPreview\n url={createAssetUrl(asset, true)!}\n mime={asset.mime}\n alt={asset.alternativeText || asset.name}\n />\n </VideoPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return (\n <AudioPreviewWrapper>\n <AudioPreview\n url={createAssetUrl(asset, true)!}\n alt={asset.alternativeText || asset.name}\n />\n </AudioPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n const assetUrl = createAssetUrl(asset, true);\n if (!assetUrl) return null;\n\n // Adding a param to the url to bust the cache and force the refresh of the image when replaced\n // Only add updatedAt parameter if the URL is not signed to prevent signature invalidation\n const cacheBustedUrl = asset.isUrlSigned\n ? assetUrl\n : `${assetUrl}${assetUrl.includes('?') ? '&' : '?'}updatedAt=${asset.updatedAt}`;\n\n return (\n <Box\n tag=\"img\"\n maxHeight=\"100%\"\n maxWidth=\"100%\"\n src={cacheBustedUrl}\n alt={asset.alternativeText || asset.name}\n />\n );\n }\n\n const IconComponent = getFileIconComponent(asset.ext);\n\n return (\n <DocAsset width=\"100%\" height=\"100%\" justifyContent=\"center\" hasRadius>\n <IconComponent aria-label={asset.alternativeText || asset.name} width=\"24px\" height=\"32px\" />\n </DocAsset>\n );\n};\n"],"names":["DocAsset","styled","Flex","VideoPreviewWrapper","Box","AudioPreviewWrapper","CarouselAsset","asset","mime","includes","ASSET_TYPES","Video","_jsx","height","VideoPreview","url","createAssetUrl","alt","alternativeText","name","Audio","AudioPreview","Image","assetUrl","cacheBustedUrl","isUrlSigned","updatedAt","tag","maxHeight","maxWidth","src","IconComponent","getFileIconComponent","ext","width","justifyContent","hasRadius","aria-label"],"mappings":";;;;;;;;;;;;;AAWA,MAAMA,QAAAA,GAAWC,MAAAA,CAAOC,IAAAA,CAAK;;AAE7B,CAAC;AAED,MAAMC,mBAAAA,GAAsBF,MAAAA,CAAOG,GAAAA,CAAI;;;;;;AAMvC,CAAC;AAED,MAAMC,mBAAAA,GAAsBJ,MAAAA,CAAOG,GAAAA,CAAI;;;;;AAKvC,CAAC;AAEM,MAAME,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAwB,GAAA;AAC3D,IAAA,IAAIA,MAAMC,IAAI,EAAEC,QAAAA,CAASC,WAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEC,GAAA,CAACT,mBAAAA,EAAAA;YAAoBU,MAAAA,EAAO,MAAA;AAC1B,YAAA,QAAA,gBAAAD,GAAA,CAACE,YAAAA,EAAAA;AACCC,gBAAAA,GAAAA,EAAKC,eAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBS,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,WAAAA,CAAYU,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACER,GAAA,CAACP,mBAAAA,EAAAA;AACC,YAAA,QAAA,gBAAAO,GAAA,CAACS,YAAAA,EAAAA;AACCN,gBAAAA,GAAAA,EAAKC,eAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BU,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,WAAAA,CAAYY,KAAK,CAAA,EAAG;QAC3C,MAAMC,QAAAA,GAAWP,eAAeT,KAAAA,EAAO,IAAA,CAAA;QACvC,IAAI,CAACgB,UAAU,OAAO,IAAA;;;AAItB,QAAA,MAAMC,iBAAiBjB,KAAAA,CAAMkB,WAAW,GACpCF,QAAAA,GACA,GAAGA,QAAAA,CAAAA,EAAWA,QAAAA,CAASd,QAAQ,CAAC,OAAO,GAAA,GAAM,GAAA,CAAI,UAAU,EAAEF,KAAAA,CAAMmB,SAAS,CAAA,CAAE;AAElF,QAAA,qBACEd,GAAA,CAACR,GAAAA,EAAAA;YACCuB,GAAAA,EAAI,KAAA;YACJC,SAAAA,EAAU,MAAA;YACVC,QAAAA,EAAS,MAAA;YACTC,GAAAA,EAAKN,cAAAA;AACLP,YAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;AAG1C,IAAA;IAEA,MAAMY,aAAAA,GAAgBC,oBAAAA,CAAqBzB,KAAAA,CAAM0B,GAAG,CAAA;AAEpD,IAAA,qBACErB,GAAA,CAACZ,QAAAA,EAAAA;QAASkC,KAAAA,EAAM,MAAA;QAAOrB,MAAAA,EAAO,MAAA;QAAOsB,cAAAA,EAAe,QAAA;QAASC,SAAS,EAAA,IAAA;AACpE,QAAA,QAAA,gBAAAxB,GAAA,CAACmB,aAAAA,EAAAA;AAAcM,YAAAA,YAAAA,EAAY9B,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY,IAAI;YAAEe,KAAAA,EAAM,MAAA;YAAOrB,MAAAA,EAAO;;;AAG1F;;;;"}
|
|
@@ -9,7 +9,6 @@ require('byte-size');
|
|
|
9
9
|
require('date-fns');
|
|
10
10
|
var getTrad = require('../../../utils/getTrad.js');
|
|
11
11
|
require('qs');
|
|
12
|
-
require('../../../utils/typeFromMime.js');
|
|
13
12
|
require('../../../utils/urlYupSchema.js');
|
|
14
13
|
var CopyLinkButton = require('../../CopyLinkButton/CopyLinkButton.js');
|
|
15
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselAssetActions.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselAssetActions.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":";;;;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,KAAK,EACLC,aAAa,EACbC,UAAU,EACVC,WAAW,EACe,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,eAAA,CAACC,4BAAAA,EAAAA;;AACEL,YAAAA,UAAAA,kBACCM,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,kBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMZ,UAAAA,CAAWF,KAAAA,CAAAA;AAE1B,gBAAA,QAAA,gBAAAQ,cAAA,CAACO,UAAAA,EAAAA,EAAAA;;0BAILP,cAAA,CAACQ,6BAAAA,EAAAA;gBAAeC,GAAAA,EAAKC,uDAAAA,CAA4BlB,MAAMiB,GAAG;;AAEzDhB,YAAAA,aAAAA,kBACCO,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;oBACnBO,EAAAA,EAAI,eAAA;oBACJE,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMb,aAAAA,CAAcD,KAAAA,CAAAA;AAE7B,gBAAA,QAAA,gBAAAQ,cAAA,CAACW,WAAAA,EAAAA,EAAAA;;AAIJhB,YAAAA,WAAAA,kBACCK,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,mBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAC,OAAAA,EAASX,WAAAA;AAET,gBAAA,QAAA,gBAAAK,cAAA,CAACY,YAAAA,EAAAA,EAAAA;;;;AAKX;;;;"}
|
|
@@ -7,7 +7,6 @@ import 'byte-size';
|
|
|
7
7
|
import 'date-fns';
|
|
8
8
|
import { getTrad } from '../../../utils/getTrad.mjs';
|
|
9
9
|
import 'qs';
|
|
10
|
-
import '../../../utils/typeFromMime.mjs';
|
|
11
10
|
import '../../../utils/urlYupSchema.mjs';
|
|
12
11
|
import { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton.mjs';
|
|
13
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselAssetActions.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselAssetActions.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":";;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,KAAK,EACLC,aAAa,EACbC,UAAU,EACVC,WAAW,EACe,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,IAAA,CAACC,eAAAA,EAAAA;;AACEL,YAAAA,UAAAA,kBACCM,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,kBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMZ,UAAAA,CAAWF,KAAAA,CAAAA;AAE1B,gBAAA,QAAA,gBAAAQ,GAAA,CAACO,IAAAA,EAAAA,EAAAA;;0BAILP,GAAA,CAACQ,cAAAA,EAAAA;gBAAeC,GAAAA,EAAKC,2BAAAA,CAA4BlB,MAAMiB,GAAG;;AAEzDhB,YAAAA,aAAAA,kBACCO,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;oBACnBO,EAAAA,EAAI,eAAA;oBACJE,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMb,aAAAA,CAAcD,KAAAA,CAAAA;AAE7B,gBAAA,QAAA,gBAAAQ,GAAA,CAACW,KAAAA,EAAAA,EAAAA;;AAIJhB,YAAAA,WAAAA,kBACCK,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,mBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAC,OAAAA,EAASX,WAAAA;AAET,gBAAA,QAAA,gBAAAK,GAAA,CAACY,MAAAA,EAAAA,EAAAA;;;;AAKX;;;;"}
|
|
@@ -84,6 +84,7 @@ const CarouselAssets = /*#__PURE__*/ React__namespace.forwardRef(({ assets, disa
|
|
|
84
84
|
m: assets.length
|
|
85
85
|
}),
|
|
86
86
|
onDoubleClick: (event)=>{
|
|
87
|
+
if (disabled) return;
|
|
87
88
|
setIsEditingAsset(true);
|
|
88
89
|
onDoubleClickAsset(asset, event);
|
|
89
90
|
},
|
|
@@ -106,7 +107,7 @@ const CarouselAssets = /*#__PURE__*/ React__namespace.forwardRef(({ assets, disa
|
|
|
106
107
|
}
|
|
107
108
|
},
|
|
108
109
|
asset: currentAsset,
|
|
109
|
-
canUpdate:
|
|
110
|
+
canUpdate: !disabled,
|
|
110
111
|
canCopyLink: true,
|
|
111
112
|
canDownload: true,
|
|
112
113
|
trackedLocation: trackedLocation
|