@strapi/upload 5.37.0 → 5.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
- package/dist/admin/ai/components/AIAssetCard.mjs +1 -1
- package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.mjs +1 -1
- package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AudioAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/AudioAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AudioPreview.js.map +1 -1
- package/dist/admin/components/AssetCard/AudioPreview.mjs.map +1 -1
- package/dist/admin/components/AssetCard/DocAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/VideoPreview.js.map +1 -1
- package/dist/admin/components/AssetCard/VideoPreview.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.js.map +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/DialogFooter.js.map +1 -1
- package/dist/admin/components/AssetDialog/DialogFooter.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
- package/dist/admin/components/AssetGridList/AssetGridList.js.map +1 -1
- package/dist/admin/components/AssetGridList/AssetGridList.mjs.map +1 -1
- package/dist/admin/components/AssetGridList/Draggable.js.map +1 -1
- package/dist/admin/components/AssetGridList/Draggable.mjs.map +1 -1
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
- package/dist/admin/components/ContextInfo/ContextInfo.js.map +1 -1
- package/dist/admin/components/ContextInfo/ContextInfo.mjs.map +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/DialogHeader.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/DialogHeader.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +1 -4
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +1 -4
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs.map +1 -1
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +1 -1
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -1
- package/dist/admin/components/EmptyAssets/EmptyAssets.js.map +1 -1
- package/dist/admin/components/EmptyAssets/EmptyAssets.mjs.map +1 -1
- package/dist/admin/components/FilterList/FilterList.js.map +1 -1
- package/dist/admin/components/FilterList/FilterList.mjs.map +1 -1
- package/dist/admin/components/FilterList/FilterTag.js.map +1 -1
- package/dist/admin/components/FilterList/FilterTag.mjs.map +1 -1
- package/dist/admin/components/FilterPopover/FilterPopover.js.map +1 -1
- package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +1 -1
- package/dist/admin/components/FilterPopover/FilterValueInput.js.map +1 -1
- package/dist/admin/components/FilterPopover/FilterValueInput.mjs.map +1 -1
- package/dist/admin/components/FilterPopover/utils/getFilterList.js.map +1 -1
- package/dist/admin/components/FilterPopover/utils/getFilterList.mjs.map +1 -1
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +1 -1
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -1
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -1
- package/dist/admin/components/FolderCard/contexts/FolderCard.js.map +1 -1
- package/dist/admin/components/FolderCard/contexts/FolderCard.mjs.map +1 -1
- package/dist/admin/components/FolderGridList/FolderGridList.js.map +1 -1
- package/dist/admin/components/FolderGridList/FolderGridList.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -1
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
- package/dist/admin/components/SelectTree/Option.js.map +1 -1
- package/dist/admin/components/SelectTree/Option.mjs.map +1 -1
- package/dist/admin/components/SelectTree/SelectTree.js.map +1 -1
- package/dist/admin/components/SelectTree/SelectTree.mjs +1 -1
- package/dist/admin/components/SelectTree/SelectTree.mjs.map +1 -1
- package/dist/admin/components/SelectTree/utils/flattenTree.js.map +1 -1
- package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +1 -1
- package/dist/admin/components/SelectTree/utils/getOpenValues.js.map +1 -1
- package/dist/admin/components/SelectTree/utils/getOpenValues.mjs.map +1 -1
- package/dist/admin/components/SelectTree/utils/getValuesToClose.js.map +1 -1
- package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
- package/dist/admin/components/TableList/CellContent.js.map +1 -1
- package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
- package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
- package/dist/admin/components/TableList/PreviewCell.mjs +1 -1
- package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
- package/dist/admin/components/TableList/TableList.js.map +1 -1
- package/dist/admin/components/TableList/TableList.mjs +1 -1
- package/dist/admin/components/TableList/TableList.mjs.map +1 -1
- package/dist/admin/components/TableList/TableRows.js.map +1 -1
- package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -1
- package/dist/admin/components/UploadProgress/UploadProgress.js.map +1 -1
- package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +1 -1
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/future/App.js.map +1 -1
- package/dist/admin/future/App.mjs.map +1 -1
- package/dist/admin/future/components/Drawer.js +189 -0
- package/dist/admin/future/components/Drawer.js.map +1 -0
- package/dist/admin/future/components/Drawer.mjs +166 -0
- package/dist/admin/future/components/Drawer.mjs.map +1 -0
- package/dist/admin/future/components/UploadProgressDialog.js +60 -101
- package/dist/admin/future/components/UploadProgressDialog.js.map +1 -1
- package/dist/admin/future/components/UploadProgressDialog.mjs +62 -84
- package/dist/admin/future/components/UploadProgressDialog.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/AssetsPage.js +155 -100
- package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
- package/dist/admin/future/pages/Assets/AssetsPage.mjs +160 -105
- package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +406 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +384 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +215 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +194 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js +37 -8
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +38 -9
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.js +35 -5
- package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +37 -7
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/CreateFolderDialog.js +143 -0
- package/dist/admin/future/pages/Assets/components/CreateFolderDialog.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/CreateFolderDialog.mjs +141 -0
- package/dist/admin/future/pages/Assets/components/CreateFolderDialog.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js +127 -0
- package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs +106 -0
- package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/constants.js.map +1 -1
- package/dist/admin/future/pages/Assets/constants.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +1 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +1 -1
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -1
- package/dist/admin/future/services/api.js +181 -97
- package/dist/admin/future/services/api.js.map +1 -1
- package/dist/admin/future/services/api.mjs +181 -98
- package/dist/admin/future/services/api.mjs.map +1 -1
- package/dist/admin/future/services/assets.js +14 -1
- package/dist/admin/future/services/assets.js.map +1 -1
- package/dist/admin/future/services/assets.mjs +14 -2
- package/dist/admin/future/services/assets.mjs.map +1 -1
- package/dist/admin/future/services/folders.js +16 -1
- package/dist/admin/future/services/folders.js.map +1 -1
- package/dist/admin/future/services/folders.mjs +16 -2
- package/dist/admin/future/services/folders.mjs.map +1 -1
- package/dist/admin/future/store/hooks.js.map +1 -1
- package/dist/admin/future/store/hooks.mjs.map +1 -1
- package/dist/admin/future/store/uploadProgress.js +7 -4
- package/dist/admin/future/store/uploadProgress.js.map +1 -1
- package/dist/admin/future/store/uploadProgress.mjs +7 -4
- package/dist/admin/future/store/uploadProgress.mjs.map +1 -1
- package/dist/admin/future/utils/files.js +105 -3
- package/dist/admin/future/utils/files.js.map +1 -1
- package/dist/admin/future/utils/files.mjs +104 -4
- package/dist/admin/future/utils/files.mjs.map +1 -1
- package/dist/admin/future/utils/getAssetIcon.js +3 -3
- 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/translations.js.map +1 -1
- package/dist/admin/future/utils/translations.mjs.map +1 -1
- package/dist/admin/hooks/useAIMetadataJob.js.map +1 -1
- package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
- package/dist/admin/hooks/useAiAvailability.js.map +1 -1
- package/dist/admin/hooks/useAiAvailability.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.map +1 -1
- package/dist/admin/hooks/useBulkEdit.mjs.map +1 -1
- package/dist/admin/hooks/useBulkMove.js.map +1 -1
- package/dist/admin/hooks/useBulkMove.mjs.map +1 -1
- package/dist/admin/hooks/useBulkRemove.js.map +1 -1
- package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
- package/dist/admin/hooks/useConfig.js.map +1 -1
- package/dist/admin/hooks/useConfig.mjs.map +1 -1
- package/dist/admin/hooks/useCropImg.js.map +1 -1
- package/dist/admin/hooks/useCropImg.mjs.map +1 -1
- package/dist/admin/hooks/useEditAsset.js.map +1 -1
- package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
- package/dist/admin/hooks/useEditFolder.js.map +1 -1
- package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolder.js.map +1 -1
- package/dist/admin/hooks/useFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolderStructure.js.map +1 -1
- package/dist/admin/hooks/useFolderStructure.mjs.map +1 -1
- package/dist/admin/hooks/useFolders.js.map +1 -1
- package/dist/admin/hooks/useFolders.mjs.map +1 -1
- package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
- package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
- package/dist/admin/hooks/useModalQueryParams.js.map +1 -1
- package/dist/admin/hooks/useModalQueryParams.mjs.map +1 -1
- package/dist/admin/hooks/usePersistentState.js.map +1 -1
- package/dist/admin/hooks/usePersistentState.mjs.map +1 -1
- package/dist/admin/hooks/useRemoveAsset.js.map +1 -1
- package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
- package/dist/admin/hooks/useSelectionState.js.map +1 -1
- package/dist/admin/hooks/useSelectionState.mjs.map +1 -1
- package/dist/admin/hooks/useSettings.js.map +1 -1
- package/dist/admin/hooks/useSettings.mjs.map +1 -1
- package/dist/admin/hooks/useTracking.js.map +1 -1
- package/dist/admin/hooks/useTracking.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/hooks/utils/renameKeys.js.map +1 -1
- package/dist/admin/hooks/utils/renameKeys.mjs.map +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +1 -152
- package/dist/admin/package.json.js.map +1 -1
- package/dist/admin/package.json.mjs +2 -141
- package/dist/admin/package.json.mjs.map +1 -1
- package/dist/admin/pages/App/App.js.map +1 -1
- package/dist/admin/pages/App/App.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +3 -3
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actions.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/init.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/init.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs +1 -1
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs.map +1 -1
- package/dist/admin/pages/App/MediaLibrary.js +1 -1
- package/dist/admin/pages/App/MediaLibrary.js.map +1 -1
- package/dist/admin/pages/App/MediaLibrary.mjs +2 -2
- package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
- package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
- package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
- package/dist/admin/pages/App/components/BulkDeleteButton.js.map +1 -1
- package/dist/admin/pages/App/components/BulkDeleteButton.mjs.map +1 -1
- package/dist/admin/pages/App/components/BulkMoveButton.js.map +1 -1
- package/dist/admin/pages/App/components/BulkMoveButton.mjs.map +1 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
- package/dist/admin/pages/App/components/Filters.js.map +1 -1
- package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/App/components/Header.js.map +1 -1
- package/dist/admin/pages/App/components/Header.mjs +2 -2
- package/dist/admin/pages/App/components/Header.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/reducer.js.map +1 -1
- package/dist/admin/pages/SettingsPage/reducer.mjs.map +1 -1
- package/dist/admin/pluginId.js.map +1 -1
- package/dist/admin/pluginId.mjs.map +1 -1
- package/dist/admin/src/future/components/Drawer.d.ts +32 -0
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +8 -0
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetPreview.d.ts +6 -0
- package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +2 -1
- package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +2 -1
- package/dist/admin/src/future/pages/Assets/components/CreateFolderDialog.d.ts +8 -0
- package/dist/admin/src/future/pages/Assets/components/ImportFromUrlDialog.d.ts +7 -0
- package/dist/admin/src/future/services/api.d.ts +10 -1
- package/dist/admin/src/future/services/assets.d.ts +2 -2
- package/dist/admin/src/future/services/folders.d.ts +1 -1
- package/dist/admin/src/future/store/uploadProgress.d.ts +1 -1
- package/dist/admin/src/future/utils/files.d.ts +70 -0
- package/dist/admin/translations/en.json.js +35 -3
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +35 -3
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +1 -1
- package/dist/admin/translations/es.json.mjs +1 -1
- package/dist/admin/utils/appendSearchParamsToUrl.js.map +1 -1
- package/dist/admin/utils/appendSearchParamsToUrl.mjs.map +1 -1
- package/dist/admin/utils/containsAssetFilter.js.map +1 -1
- package/dist/admin/utils/containsAssetFilter.mjs.map +1 -1
- package/dist/admin/utils/createAssetUrl.js.map +1 -1
- package/dist/admin/utils/createAssetUrl.mjs.map +1 -1
- package/dist/admin/utils/displayedFilters.js.map +1 -1
- package/dist/admin/utils/displayedFilters.mjs.map +1 -1
- package/dist/admin/utils/downloadFile.js.map +1 -1
- package/dist/admin/utils/downloadFile.mjs.map +1 -1
- package/dist/admin/utils/findRecursiveFolderByValue.js.map +1 -1
- package/dist/admin/utils/findRecursiveFolderByValue.mjs.map +1 -1
- package/dist/admin/utils/formatBytes.js.map +1 -1
- package/dist/admin/utils/formatBytes.mjs.map +1 -1
- package/dist/admin/utils/formatDuration.js.map +1 -1
- package/dist/admin/utils/formatDuration.mjs.map +1 -1
- package/dist/admin/utils/getAPIInnerErrors.js.map +1 -1
- package/dist/admin/utils/getAPIInnerErrors.mjs.map +1 -1
- package/dist/admin/utils/getAllowedFiles.js.map +1 -1
- package/dist/admin/utils/getAllowedFiles.mjs.map +1 -1
- package/dist/admin/utils/getBreadcrumbDataCM.js.map +1 -1
- package/dist/admin/utils/getBreadcrumbDataCM.mjs.map +1 -1
- package/dist/admin/utils/getBreadcrumbDataML.js.map +1 -1
- package/dist/admin/utils/getBreadcrumbDataML.mjs.map +1 -1
- package/dist/admin/utils/getFileExtension.js.map +1 -1
- package/dist/admin/utils/getFileExtension.mjs.map +1 -1
- package/dist/admin/utils/getFolderParents.js.map +1 -1
- package/dist/admin/utils/getFolderParents.mjs.map +1 -1
- package/dist/admin/utils/getFolderURL.js.map +1 -1
- package/dist/admin/utils/getFolderURL.mjs.map +1 -1
- package/dist/admin/utils/getTrad.js.map +1 -1
- package/dist/admin/utils/getTrad.mjs.map +1 -1
- package/dist/admin/utils/icons.js.map +1 -1
- package/dist/admin/utils/icons.mjs +1 -1
- package/dist/admin/utils/icons.mjs.map +1 -1
- package/dist/admin/utils/moveElement.js.map +1 -1
- package/dist/admin/utils/moveElement.mjs.map +1 -1
- package/dist/admin/utils/normalizeAPIError.js.map +1 -1
- package/dist/admin/utils/normalizeAPIError.mjs.map +1 -1
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +1 -1
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
- package/dist/admin/utils/rawFileToAsset.js.map +1 -1
- package/dist/admin/utils/rawFileToAsset.mjs.map +1 -1
- package/dist/admin/utils/toSingularTypes.js.map +1 -1
- package/dist/admin/utils/toSingularTypes.mjs.map +1 -1
- package/dist/admin/utils/typeFromMime.js.map +1 -1
- package/dist/admin/utils/typeFromMime.mjs.map +1 -1
- package/dist/admin/utils/urlYupSchema.js.map +1 -1
- package/dist/admin/utils/urlYupSchema.mjs.map +1 -1
- package/dist/admin/utils/urlsToAssets.js.map +1 -1
- package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/constants.js.map +1 -1
- package/dist/server/constants.mjs.map +1 -1
- package/dist/server/content-types/file.js.map +1 -1
- package/dist/server/content-types/file.mjs.map +1 -1
- package/dist/server/content-types/folder.js.map +1 -1
- package/dist/server/content-types/folder.mjs +1 -1
- package/dist/server/content-types/folder.mjs.map +1 -1
- package/dist/server/content-types/index.js.map +1 -1
- package/dist/server/content-types/index.mjs.map +1 -1
- package/dist/server/controllers/admin-file.js.map +1 -1
- package/dist/server/controllers/admin-file.mjs +1 -1
- package/dist/server/controllers/admin-file.mjs.map +1 -1
- package/dist/server/controllers/admin-folder-file.js.map +1 -1
- package/dist/server/controllers/admin-folder-file.mjs +2 -2
- package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
- package/dist/server/controllers/admin-folder.js.map +1 -1
- package/dist/server/controllers/admin-folder.mjs +1 -1
- package/dist/server/controllers/admin-folder.mjs.map +1 -1
- package/dist/server/controllers/admin-settings.js.map +1 -1
- package/dist/server/controllers/admin-settings.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +144 -0
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +147 -3
- package/dist/server/controllers/admin-upload.mjs.map +1 -1
- package/dist/server/controllers/content-api.js.map +1 -1
- package/dist/server/controllers/content-api.mjs.map +1 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -1
- package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs.map +1 -1
- package/dist/server/controllers/utils/folders.js.map +1 -1
- package/dist/server/controllers/utils/folders.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/configureView.js.map +1 -1
- package/dist/server/controllers/validation/admin/configureView.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/folder-file.js.map +1 -1
- package/dist/server/controllers/validation/admin/folder-file.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/folder.js.map +1 -1
- package/dist/server/controllers/validation/admin/folder.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/settings.js.map +1 -1
- package/dist/server/controllers/validation/admin/settings.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/upload.js.map +1 -1
- package/dist/server/controllers/validation/admin/upload.mjs.map +1 -1
- package/dist/server/controllers/validation/admin/utils.js.map +1 -1
- package/dist/server/controllers/validation/admin/utils.mjs.map +1 -1
- package/dist/server/controllers/validation/content-api/upload.js.map +1 -1
- package/dist/server/controllers/validation/content-api/upload.mjs.map +1 -1
- package/dist/server/controllers/view-configuration.js.map +1 -1
- package/dist/server/controllers/view-configuration.mjs.map +1 -1
- package/dist/server/graphql.js.map +1 -1
- package/dist/server/graphql.mjs.map +1 -1
- package/dist/server/index.js +8 -8
- package/dist/server/middlewares/upload.js.map +1 -1
- package/dist/server/middlewares/upload.mjs.map +1 -1
- package/dist/server/models/ai-metadata-job.js.map +1 -1
- package/dist/server/models/ai-metadata-job.mjs.map +1 -1
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/admin.js +10 -0
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs +10 -0
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/routes/content-api.js.map +1 -1
- package/dist/server/routes/content-api.mjs.map +1 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs +4 -4
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/routes/validation/upload.js.map +1 -1
- package/dist/server/routes/validation/upload.mjs.map +1 -1
- package/dist/server/routes/view-configuration.js.map +1 -1
- package/dist/server/routes/view-configuration.mjs.map +1 -1
- package/dist/server/services/ai-metadata-jobs.js.map +1 -1
- package/dist/server/services/ai-metadata-jobs.mjs.map +1 -1
- package/dist/server/services/ai-metadata.js.map +1 -1
- package/dist/server/services/ai-metadata.mjs.map +1 -1
- package/dist/server/services/api-upload-folder.js.map +1 -1
- package/dist/server/services/api-upload-folder.mjs.map +1 -1
- package/dist/server/services/extensions/index.js.map +1 -1
- package/dist/server/services/extensions/index.mjs.map +1 -1
- package/dist/server/services/extensions/utils.js.map +1 -1
- package/dist/server/services/extensions/utils.mjs.map +1 -1
- package/dist/server/services/file.js +120 -1
- package/dist/server/services/file.js.map +1 -1
- package/dist/server/services/file.mjs +122 -3
- package/dist/server/services/file.mjs.map +1 -1
- package/dist/server/services/folder.js.map +1 -1
- package/dist/server/services/folder.mjs +1 -1
- package/dist/server/services/folder.mjs.map +1 -1
- package/dist/server/services/image-manipulation.js.map +1 -1
- package/dist/server/services/image-manipulation.mjs +1 -1
- package/dist/server/services/image-manipulation.mjs.map +1 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/metrics.js.map +1 -1
- package/dist/server/services/metrics.mjs.map +1 -1
- package/dist/server/services/provider.js.map +1 -1
- package/dist/server/services/provider.mjs.map +1 -1
- package/dist/server/services/upload.js.map +1 -1
- package/dist/server/services/upload.mjs +1 -1
- package/dist/server/services/upload.mjs.map +1 -1
- package/dist/server/services/weekly-metrics.js.map +1 -1
- package/dist/server/services/weekly-metrics.mjs.map +1 -1
- package/dist/server/src/controllers/admin-upload.d.ts +13 -0
- package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +1 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +2 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/services/file.d.ts +15 -0
- package/dist/server/src/services/file.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/utils/cron.js.map +1 -1
- package/dist/server/utils/cron.mjs.map +1 -1
- package/dist/server/utils/images.js.map +1 -1
- package/dist/server/utils/images.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/server/utils/mime-validation.js.map +1 -1
- package/dist/server/utils/mime-validation.mjs.map +1 -1
- package/dist/shared/contracts/files.d.ts +11 -0
- package/dist/shared/contracts/files.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
require('react');
|
|
5
|
-
var Dialog = require('@radix-ui/react-dialog');
|
|
6
5
|
var designSystem = require('@strapi/design-system');
|
|
7
6
|
var icons = require('@strapi/icons');
|
|
8
7
|
var reactIntl = require('react-intl');
|
|
@@ -11,25 +10,7 @@ var api = require('../services/api.js');
|
|
|
11
10
|
var hooks = require('../store/hooks.js');
|
|
12
11
|
var uploadProgress = require('../store/uploadProgress.js');
|
|
13
12
|
var translations = require('../utils/translations.js');
|
|
14
|
-
|
|
15
|
-
function _interopNamespaceDefault(e) {
|
|
16
|
-
var n = Object.create(null);
|
|
17
|
-
if (e) {
|
|
18
|
-
Object.keys(e).forEach(function (k) {
|
|
19
|
-
if (k !== 'default') {
|
|
20
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
21
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () { return e[k]; }
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
n.default = e;
|
|
29
|
-
return Object.freeze(n);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
var Dialog__namespace = /*#__PURE__*/_interopNamespaceDefault(Dialog);
|
|
13
|
+
var Drawer = require('./Drawer.js');
|
|
33
14
|
|
|
34
15
|
/* -------------------------------------------------------------------------------------------------
|
|
35
16
|
* DialogHeader
|
|
@@ -39,13 +20,13 @@ var Dialog__namespace = /*#__PURE__*/_interopNamespaceDefault(Dialog);
|
|
|
39
20
|
alignItems: "flex-start",
|
|
40
21
|
paddingLeft: 2,
|
|
41
22
|
children: [
|
|
42
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
23
|
+
/*#__PURE__*/ jsxRuntime.jsx(Drawer.Drawer.Title, {
|
|
43
24
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
44
25
|
variant: "omega",
|
|
45
26
|
children: title
|
|
46
27
|
})
|
|
47
28
|
}),
|
|
48
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
29
|
+
/*#__PURE__*/ jsxRuntime.jsx(Drawer.Drawer.Description, {
|
|
49
30
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
50
31
|
variant: "pi",
|
|
51
32
|
textColor: "neutral600",
|
|
@@ -64,11 +45,10 @@ const HeaderStatusIcon = styledComponents.styled(designSystem.Flex)`
|
|
|
64
45
|
width: 24px;
|
|
65
46
|
}
|
|
66
47
|
`;
|
|
67
|
-
const HeaderStatusWrapper = styledComponents.styled(
|
|
68
|
-
display: flex;
|
|
48
|
+
const HeaderStatusWrapper = styledComponents.styled(designSystem.Flex)`
|
|
69
49
|
align-items: center;
|
|
70
50
|
`;
|
|
71
|
-
const HeaderStatus = ({ status, progress, totalFiles })=>{
|
|
51
|
+
const HeaderStatus = ({ status, progress, totalFiles, successfulCount, errorCount })=>{
|
|
72
52
|
const { formatMessage } = reactIntl.useIntl();
|
|
73
53
|
if (status === 'error') {
|
|
74
54
|
return /*#__PURE__*/ jsxRuntime.jsxs(HeaderStatusWrapper, {
|
|
@@ -93,6 +73,18 @@ const HeaderStatus = ({ status, progress, totalFiles })=>{
|
|
|
93
73
|
});
|
|
94
74
|
}
|
|
95
75
|
if (status === 'success') {
|
|
76
|
+
const subtitle = errorCount > 0 ? formatMessage({
|
|
77
|
+
id: translations.getTranslationKey('upload.progress.success.subtitle.withErrors'),
|
|
78
|
+
defaultMessage: '{successCount} uploaded, {errorCount} failed'
|
|
79
|
+
}, {
|
|
80
|
+
successCount: successfulCount,
|
|
81
|
+
errorCount
|
|
82
|
+
}) : formatMessage({
|
|
83
|
+
id: translations.getTranslationKey('upload.progress.success.subtitle'),
|
|
84
|
+
defaultMessage: '{count} files uploaded successfully'
|
|
85
|
+
}, {
|
|
86
|
+
count: successfulCount
|
|
87
|
+
});
|
|
96
88
|
return /*#__PURE__*/ jsxRuntime.jsxs(HeaderStatusWrapper, {
|
|
97
89
|
children: [
|
|
98
90
|
/*#__PURE__*/ jsxRuntime.jsx(HeaderStatusIcon, {
|
|
@@ -106,12 +98,7 @@ const HeaderStatus = ({ status, progress, totalFiles })=>{
|
|
|
106
98
|
id: translations.getTranslationKey('upload.progress.success'),
|
|
107
99
|
defaultMessage: 'Upload successful!'
|
|
108
100
|
}),
|
|
109
|
-
subtitle:
|
|
110
|
-
id: translations.getTranslationKey('upload.progress.success.subtitle'),
|
|
111
|
-
defaultMessage: '{count} files uploaded successfully'
|
|
112
|
-
}, {
|
|
113
|
-
count: totalFiles
|
|
114
|
-
})
|
|
101
|
+
subtitle: subtitle
|
|
115
102
|
})
|
|
116
103
|
]
|
|
117
104
|
});
|
|
@@ -195,7 +182,10 @@ const DialogHeader = ({ handleClose })=>{
|
|
|
195
182
|
const isAllUploaded = isComplete && files.every((f)=>f.status !== 'uploading');
|
|
196
183
|
const isAllErrored = isComplete && files.length > 0 && files.every((f)=>f.status === 'error');
|
|
197
184
|
const hasCancelledFiles = files.some((f)=>f.status === 'cancelled');
|
|
198
|
-
const
|
|
185
|
+
const successfulCount = files.filter((f)=>f.status === 'complete').length;
|
|
186
|
+
const errorCount = files.filter((f)=>f.status === 'error').length;
|
|
187
|
+
// Success includes partial success (some files succeeded, even if some failed)
|
|
188
|
+
const isSuccess = isComplete && isAllUploaded && successfulCount > 0 && !hasCancelledFiles;
|
|
199
189
|
const status = (()=>{
|
|
200
190
|
if (isAllErrored) return 'error';
|
|
201
191
|
if (isSuccess) return 'success';
|
|
@@ -225,7 +215,9 @@ const DialogHeader = ({ handleClose })=>{
|
|
|
225
215
|
/*#__PURE__*/ jsxRuntime.jsx(HeaderStatus, {
|
|
226
216
|
status: status,
|
|
227
217
|
progress: progress,
|
|
228
|
-
totalFiles: totalFiles
|
|
218
|
+
totalFiles: totalFiles,
|
|
219
|
+
successfulCount: successfulCount,
|
|
220
|
+
errorCount: errorCount
|
|
229
221
|
}),
|
|
230
222
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
231
223
|
gap: 1,
|
|
@@ -258,14 +250,12 @@ const DialogHeader = ({ handleClose })=>{
|
|
|
258
250
|
children: /*#__PURE__*/ jsxRuntime.jsx(icons.ChevronDown, {})
|
|
259
251
|
})
|
|
260
252
|
}),
|
|
261
|
-
isComplete && /*#__PURE__*/ jsxRuntime.jsx(
|
|
262
|
-
|
|
253
|
+
isComplete && /*#__PURE__*/ jsxRuntime.jsx(Drawer.Drawer.CloseButton, {
|
|
254
|
+
onClose: handleClose,
|
|
263
255
|
label: formatMessage({
|
|
264
256
|
id: translations.getTranslationKey('upload.progress.close'),
|
|
265
257
|
defaultMessage: 'Close'
|
|
266
|
-
})
|
|
267
|
-
variant: "ghost",
|
|
268
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {})
|
|
258
|
+
})
|
|
269
259
|
})
|
|
270
260
|
]
|
|
271
261
|
})
|
|
@@ -398,38 +388,11 @@ const FileRowRenderer = ({ file })=>{
|
|
|
398
388
|
}
|
|
399
389
|
return null;
|
|
400
390
|
};
|
|
401
|
-
const DialogContent = styledComponents.styled(Dialog__namespace.Content)`
|
|
402
|
-
position: fixed;
|
|
403
|
-
bottom: ${({ theme })=>theme.spaces[4]};
|
|
404
|
-
right: ${({ theme })=>theme.spaces[4]};
|
|
405
|
-
width: 400px;
|
|
406
|
-
background-color: ${({ theme })=>theme.colors.neutral0};
|
|
407
|
-
border-radius: ${({ theme })=>theme.borderRadius};
|
|
408
|
-
box-shadow: ${({ theme })=>theme.shadows.popupShadow};
|
|
409
|
-
z-index: 1000;
|
|
410
|
-
overflow: hidden;
|
|
411
|
-
border: 1px solid ${({ theme })=>theme.colors.neutral150};
|
|
412
|
-
|
|
413
|
-
&:focus {
|
|
414
|
-
outline: none;
|
|
415
|
-
}
|
|
416
|
-
`;
|
|
417
391
|
const CompletedFilesList = styledComponents.styled(designSystem.Flex)`
|
|
418
|
-
max-height: 200px;
|
|
419
|
-
overflow-y: auto;
|
|
420
392
|
flex-direction: column;
|
|
421
393
|
gap: ${({ theme })=>theme.spaces[2]};
|
|
422
394
|
width: 100%;
|
|
423
395
|
`;
|
|
424
|
-
const AnimatedContent = styledComponents.styled.div`
|
|
425
|
-
display: grid;
|
|
426
|
-
grid-template-rows: ${({ $isVisible })=>$isVisible ? '1fr' : '0fr'};
|
|
427
|
-
transition: grid-template-rows 0.3s ease-in-out;
|
|
428
|
-
|
|
429
|
-
> div {
|
|
430
|
-
overflow: hidden;
|
|
431
|
-
}
|
|
432
|
-
`;
|
|
433
396
|
const UploadProgressDialog = ()=>{
|
|
434
397
|
const dispatch = hooks.useTypedDispatch();
|
|
435
398
|
const { isVisible, isMinimized, files } = hooks.useTypedSelector((state)=>state.uploadProgress);
|
|
@@ -448,44 +411,40 @@ const UploadProgressDialog = ()=>{
|
|
|
448
411
|
const handleClose = ()=>{
|
|
449
412
|
dispatch(uploadProgress.closeUploadProgress());
|
|
450
413
|
};
|
|
451
|
-
return /*#__PURE__*/ jsxRuntime.jsx(
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
children: /*#__PURE__*/ jsxRuntime.
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
file: file
|
|
481
|
-
}, file.index))
|
|
482
|
-
})
|
|
483
|
-
]
|
|
414
|
+
return /*#__PURE__*/ jsxRuntime.jsx(Drawer.Drawer.Root, {
|
|
415
|
+
isVisible: isVisible,
|
|
416
|
+
onClose: handleClose,
|
|
417
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(Drawer.Drawer.Body, {
|
|
418
|
+
animationDirection: "up",
|
|
419
|
+
width: "41.6rem",
|
|
420
|
+
maxHeight: "34.2rem",
|
|
421
|
+
children: [
|
|
422
|
+
/*#__PURE__*/ jsxRuntime.jsx(DialogHeader, {
|
|
423
|
+
handleClose: handleClose
|
|
424
|
+
}),
|
|
425
|
+
/*#__PURE__*/ jsxRuntime.jsx(Drawer.Drawer.ScrollableContent, {
|
|
426
|
+
isContentExpanded: !isMinimized,
|
|
427
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
428
|
+
direction: "column",
|
|
429
|
+
alignItems: "stretch",
|
|
430
|
+
gap: 4,
|
|
431
|
+
paddingTop: 4,
|
|
432
|
+
paddingBottom: 4,
|
|
433
|
+
paddingLeft: 4,
|
|
434
|
+
paddingRight: 4,
|
|
435
|
+
children: [
|
|
436
|
+
currentFile && /*#__PURE__*/ jsxRuntime.jsx(FileRowRenderer, {
|
|
437
|
+
file: currentFile
|
|
438
|
+
}),
|
|
439
|
+
completedFiles.length > 0 && /*#__PURE__*/ jsxRuntime.jsx(CompletedFilesList, {
|
|
440
|
+
children: completedFiles.map((file)=>/*#__PURE__*/ jsxRuntime.jsx(FileRowRenderer, {
|
|
441
|
+
file: file
|
|
442
|
+
}, file.index))
|
|
484
443
|
})
|
|
485
|
-
|
|
444
|
+
]
|
|
486
445
|
})
|
|
487
|
-
|
|
488
|
-
|
|
446
|
+
})
|
|
447
|
+
]
|
|
489
448
|
})
|
|
490
449
|
});
|
|
491
450
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadProgressDialog.js","sources":["../../../../admin/src/future/components/UploadProgressDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport { Box, Flex, IconButton, TextButton, Typography } from '@strapi/design-system';\nimport {\n ArrowsCounterClockwise,\n Check,\n CheckCircle,\n ChevronDown,\n Cross,\n CrossCircle,\n MinusCircle,\n Upload,\n} from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { abortUpload, useRetryCancelledFilesStreamMutation } from '../services/api';\nimport { useTypedDispatch, useTypedSelector } from '../store/hooks';\nimport { closeUploadProgress, toggleMinimize, cancelUpload } from '../store/uploadProgress';\nimport { getTranslationKey } from '../utils/translations';\n\nimport type { FileProgress, FileProgressStatus } from '../store/uploadProgress';\n\n/* -------------------------------------------------------------------------------------------------\n * DialogHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst HeaderStatusMessage = ({ title, subtitle }: { title: string; subtitle?: string }) => {\n return (\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingLeft={2}>\n <Dialog.Title>\n <Typography variant=\"omega\">{title}</Typography>\n </Dialog.Title>\n <Dialog.Description>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {subtitle}\n </Typography>\n </Dialog.Description>\n </Flex>\n );\n};\n\nconst HeaderStatusIcon = styled(Flex)`\n padding: ${({ theme }) => theme.spaces[3]};\n border-radius: ${({ theme }) => `${theme.borderRadius} 0 0 ${theme.borderRadius}`};\n\n > svg {\n height: 24px;\n width: 24px;\n }\n`;\n\nconst HeaderStatusWrapper = styled(Dialog.Title)`\n display: flex;\n align-items: center;\n`;\n\ntype HeaderStatusProps = {\n status: 'uploading' | 'success' | 'error' | 'canceled';\n progress?: number;\n totalFiles: number;\n};\n\nconst HeaderStatus = ({ status, progress, totalFiles }: HeaderStatusProps) => {\n const { formatMessage } = useIntl();\n\n if (status === 'error') {\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"danger200\">\n <Cross fill=\"danger700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage({\n id: getTranslationKey('upload.progress.failed'),\n defaultMessage: 'Upload failed',\n })}\n subtitle={formatMessage({\n id: getTranslationKey('upload.progress.failed.subtitle'),\n defaultMessage: 'Please try to upload files again',\n })}\n />\n </HeaderStatusWrapper>\n );\n }\n\n if (status === 'success') {\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"success200\">\n <Check fill=\"success700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage({\n id: getTranslationKey('upload.progress.success'),\n defaultMessage: 'Upload successful!',\n })}\n subtitle={formatMessage(\n {\n id: getTranslationKey('upload.progress.success.subtitle'),\n defaultMessage: '{count} files uploaded successfully',\n },\n { count: totalFiles }\n )}\n />\n </HeaderStatusWrapper>\n );\n }\n\n if (status === 'canceled') {\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"neutral200\">\n <MinusCircle fill=\"neutral700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage({\n id: getTranslationKey('upload.progress.canceled'),\n defaultMessage: 'Upload canceled',\n })}\n subtitle={formatMessage({\n id: getTranslationKey('upload.progress.canceled.subtitle'),\n defaultMessage: 'Some files were not uploaded',\n })}\n />\n </HeaderStatusWrapper>\n );\n }\n\n if (status === 'uploading') {\n const progressPercentage = progress ? Math.round(progress) : 0;\n\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"primary200\">\n <Upload fill=\"primary700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage(\n {\n id: getTranslationKey('upload.progress.uploading.withCount'),\n defaultMessage: 'Uploading {total} items ({percentage}%)',\n },\n {\n total: totalFiles,\n percentage: progressPercentage,\n }\n )}\n />\n </HeaderStatusWrapper>\n );\n }\n\n return null;\n};\n\nconst HeaderIconButton = styled(IconButton)`\n &:hover {\n background: transparent;\n }\n`;\n\nconst ChevronWrapper = styled.span<{ $isMinimized: boolean }>`\n display: flex;\n transition: transform 0.5s ease-in-out;\n transform: ${({ $isMinimized }) => ($isMinimized ? 'rotate(180deg)' : 'rotate(0deg)')};\n`;\n\nconst HEADER_COLOR_MAP = {\n uploading: { background: 'primary100' },\n canceled: { background: 'neutral100' },\n success: { background: 'success100' },\n error: { background: 'danger100' },\n} as const;\n\nconst DialogHeader = ({ handleClose }: { handleClose: () => void }) => {\n const { formatMessage } = useIntl();\n\n const { isMinimized, progress, files, uploadId, totalFiles } = useTypedSelector(\n (state) => state.uploadProgress\n );\n const dispatch = useTypedDispatch();\n const [retryCancelledFiles] = useRetryCancelledFilesStreamMutation();\n\n const isComplete = progress === 100;\n const isAllUploaded = isComplete && files.every((f) => f.status !== 'uploading');\n const isAllErrored = isComplete && files.length > 0 && files.every((f) => f.status === 'error');\n const hasCancelledFiles = files.some((f) => f.status === 'cancelled');\n const isSuccess = isComplete && isAllUploaded && !isAllErrored && !hasCancelledFiles;\n const status = ((): HeaderStatusProps['status'] => {\n if (isAllErrored) return 'error';\n if (isSuccess) return 'success';\n if (hasCancelledFiles) return 'canceled';\n\n return 'uploading';\n })();\n\n const handleCancel = () => {\n abortUpload(uploadId);\n dispatch(cancelUpload());\n };\n\n const handleRetry = async () => {\n try {\n await retryCancelledFiles().unwrap();\n } catch {\n // Error is already dispatched to store from the API queryFn\n }\n };\n\n const handleToggleMinimize = () => {\n dispatch(toggleMinimize());\n };\n\n return (\n <Flex\n background={HEADER_COLOR_MAP[status].background}\n justifyContent=\"space-between\"\n margin={1}\n hasRadius\n >\n <HeaderStatus status={status} progress={progress} totalFiles={totalFiles} />\n <Flex gap={1}>\n {!isAllUploaded && (\n <TextButton onClick={handleCancel} fontWeight=\"bold\">\n {formatMessage({\n id: getTranslationKey('upload.progress.cancel'),\n defaultMessage: 'Cancel',\n })}\n </TextButton>\n )}\n {hasCancelledFiles && (\n <TextButton onClick={handleRetry} fontWeight=\"bold\">\n {formatMessage({\n id: getTranslationKey('upload.progress.retry'),\n defaultMessage: 'Retry',\n })}\n </TextButton>\n )}\n <HeaderIconButton\n onClick={handleToggleMinimize}\n label={formatMessage({\n id: getTranslationKey(\n isMinimized ? 'upload.progress.maximize' : 'upload.progress.minimize'\n ),\n defaultMessage: isMinimized ? 'Maximize' : 'Minimize',\n })}\n variant=\"ghost\"\n >\n <ChevronWrapper $isMinimized={isMinimized}>\n <ChevronDown />\n </ChevronWrapper>\n </HeaderIconButton>\n {isComplete && (\n <HeaderIconButton\n onClick={handleClose}\n label={formatMessage({\n id: getTranslationKey('upload.progress.close'),\n defaultMessage: 'Close',\n })}\n variant=\"ghost\"\n >\n <Cross />\n </HeaderIconButton>\n )}\n </Flex>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UploadProgressDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst indeterminate = keyframes`\n 0% {\n transform: translateX(-100%);\n }\n 100% {\n transform: translateX(400%);\n }\n`;\n\nconst IndeterminateBar = styled.div`\n width: 100%;\n height: ${({ theme }) => theme.spaces[1]};\n background-color: ${({ theme }) => theme.colors.neutral200};\n border-radius: 4px;\n overflow: hidden;\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 25%;\n background-color: ${({ theme }) => theme.colors.primary700};\n border-radius: 4px;\n animation: ${indeterminate} 1.5s ease-in-out infinite;\n }\n`;\n\nconst FileRow = ({\n icon,\n fileName,\n children,\n}: {\n icon: React.ReactNode;\n fileName: string;\n children: React.ReactNode;\n}) => {\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" justifyContent=\"center\" gap={1} width=\"100%\">\n <Flex gap={2}>\n {icon}\n <Typography variant=\"omega\" fontWeight=\"semiBold\" ellipsis>\n {fileName}\n </Typography>\n </Flex>\n {children}\n </Flex>\n );\n};\n\nconst FileRowRenderer = ({ file }: { file: FileProgress }) => {\n const { formatMessage } = useIntl();\n const isError = file.status === 'error';\n const isCurrentFile = file.status === 'uploading';\n const isCompleted = file.status === 'complete';\n const isCancelled = file.status === 'cancelled';\n\n if (isCurrentFile) {\n return (\n <FileRow icon={<ArrowsCounterClockwise fill=\"secondary600\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslationKey('upload.progress.file.uploading'),\n defaultMessage: 'Uploading...',\n })}\n </Typography>\n <IndeterminateBar />\n </FileRow>\n );\n }\n\n if (isError) {\n return (\n <FileRow icon={<CrossCircle fill=\"danger500\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {file.error}\n </Typography>\n </FileRow>\n );\n }\n\n if (isCancelled) {\n return (\n <FileRow icon={<MinusCircle fill=\"neutral600\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslationKey('upload.progress.file.canceled'),\n defaultMessage: 'Canceled',\n })}\n </Typography>\n </FileRow>\n );\n }\n\n if (isCompleted) {\n return (\n <FileRow icon={<CheckCircle fill=\"success500\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslationKey('upload.progress.file.uploaded'),\n defaultMessage: 'Uploaded',\n })}\n </Typography>\n </FileRow>\n );\n }\n\n return null;\n};\n\nconst DialogContent = styled(Dialog.Content)`\n position: fixed;\n bottom: ${({ theme }) => theme.spaces[4]};\n right: ${({ theme }) => theme.spaces[4]};\n width: 400px;\n background-color: ${({ theme }) => theme.colors.neutral0};\n border-radius: ${({ theme }) => theme.borderRadius};\n box-shadow: ${({ theme }) => theme.shadows.popupShadow};\n z-index: 1000;\n overflow: hidden;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n\n &:focus {\n outline: none;\n }\n`;\n\nconst CompletedFilesList = styled(Flex)`\n max-height: 200px;\n overflow-y: auto;\n flex-direction: column;\n gap: ${({ theme }) => theme.spaces[2]};\n width: 100%;\n`;\n\nconst AnimatedContent = styled.div<{ $isVisible: boolean }>`\n display: grid;\n grid-template-rows: ${({ $isVisible }) => ($isVisible ? '1fr' : '0fr')};\n transition: grid-template-rows 0.3s ease-in-out;\n\n > div {\n overflow: hidden;\n }\n`;\n\nexport const UploadProgressDialog = () => {\n const dispatch = useTypedDispatch();\n const { isVisible, isMinimized, files } = useTypedSelector((state) => state.uploadProgress);\n\n const currentFile = files.find((f) => f.status === 'uploading');\n const completedFiles = files\n .filter((f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled')\n .sort((a, b) => {\n // Sort priority: error > cancelled > complete\n const priority: Record<FileProgressStatus, number> = {\n error: 0,\n cancelled: 1,\n complete: 2,\n uploading: 3,\n pending: 4,\n };\n return priority[a.status] - priority[b.status];\n });\n\n const handleClose = () => {\n dispatch(closeUploadProgress());\n };\n\n return (\n <Dialog.Root open={isVisible} modal={false}>\n <Dialog.Portal>\n <DialogContent\n // The accessible name is set by Dialog.Title and is dynamic,\n // use a data-testid to ensure a stable target for e2e tests\n data-testid=\"upload-progress-dialog\"\n >\n <DialogHeader handleClose={handleClose} />\n\n <AnimatedContent $isVisible={!isMinimized}>\n <Box>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={4}\n paddingRight={4}\n >\n {currentFile && <FileRowRenderer file={currentFile} />}\n\n {completedFiles.length > 0 && (\n <CompletedFilesList>\n {completedFiles.map((file) => (\n <FileRowRenderer key={file.index} file={file} />\n ))}\n </CompletedFilesList>\n )}\n </Flex>\n </Box>\n </AnimatedContent>\n </DialogContent>\n </Dialog.Portal>\n </Dialog.Root>\n );\n};\n"],"names":["HeaderStatusMessage","title","subtitle","_jsxs","Flex","direction","alignItems","paddingLeft","_jsx","Dialog","Title","Typography","variant","Description","textColor","HeaderStatusIcon","styled","theme","spaces","borderRadius","HeaderStatusWrapper","HeaderStatus","status","progress","totalFiles","formatMessage","useIntl","background","Cross","fill","id","getTranslationKey","defaultMessage","Check","count","MinusCircle","progressPercentage","Math","round","Upload","total","percentage","HeaderIconButton","IconButton","ChevronWrapper","span","$isMinimized","HEADER_COLOR_MAP","uploading","canceled","success","error","DialogHeader","handleClose","isMinimized","files","uploadId","useTypedSelector","state","uploadProgress","dispatch","useTypedDispatch","retryCancelledFiles","useRetryCancelledFilesStreamMutation","isComplete","isAllUploaded","every","f","isAllErrored","length","hasCancelledFiles","some","isSuccess","handleCancel","abortUpload","cancelUpload","handleRetry","unwrap","handleToggleMinimize","toggleMinimize","justifyContent","margin","hasRadius","gap","TextButton","onClick","fontWeight","label","ChevronDown","indeterminate","keyframes","IndeterminateBar","div","colors","neutral200","primary700","FileRow","icon","fileName","children","width","ellipsis","FileRowRenderer","file","isError","isCurrentFile","isCompleted","isCancelled","ArrowsCounterClockwise","name","CrossCircle","CheckCircle","DialogContent","Content","neutral0","shadows","popupShadow","neutral150","CompletedFilesList","AnimatedContent","$isVisible","UploadProgressDialog","isVisible","currentFile","find","completedFiles","filter","sort","a","b","priority","cancelled","complete","pending","closeUploadProgress","Root","open","modal","Portal","data-testid","Box","paddingTop","paddingBottom","paddingRight","map","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UploadProgressDialog.js","sources":["../../../../admin/src/future/components/UploadProgressDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, IconButton, TextButton, Typography } from '@strapi/design-system';\nimport {\n ArrowsCounterClockwise,\n Check,\n CheckCircle,\n ChevronDown,\n Cross,\n CrossCircle,\n MinusCircle,\n Upload,\n} from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { abortUpload, useRetryCancelledFilesStreamMutation } from '../services/api';\nimport { useTypedDispatch, useTypedSelector } from '../store/hooks';\nimport { closeUploadProgress, toggleMinimize, cancelUpload } from '../store/uploadProgress';\nimport { getTranslationKey } from '../utils/translations';\n\nimport { Drawer } from './Drawer';\n\nimport type { FileProgress, FileProgressStatus } from '../store/uploadProgress';\n\n/* -------------------------------------------------------------------------------------------------\n * DialogHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst HeaderStatusMessage = ({ title, subtitle }: { title: string; subtitle?: string }) => {\n return (\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingLeft={2}>\n <Drawer.Title>\n <Typography variant=\"omega\">{title}</Typography>\n </Drawer.Title>\n <Drawer.Description>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {subtitle}\n </Typography>\n </Drawer.Description>\n </Flex>\n );\n};\n\nconst HeaderStatusIcon = styled(Flex)`\n padding: ${({ theme }) => theme.spaces[3]};\n border-radius: ${({ theme }) => `${theme.borderRadius} 0 0 ${theme.borderRadius}`};\n\n > svg {\n height: 24px;\n width: 24px;\n }\n`;\n\nconst HeaderStatusWrapper = styled(Flex)`\n align-items: center;\n`;\n\ntype HeaderStatusProps = {\n status: 'uploading' | 'success' | 'error' | 'canceled';\n progress?: number;\n totalFiles: number;\n successfulCount: number;\n errorCount: number;\n};\n\nconst HeaderStatus = ({\n status,\n progress,\n totalFiles,\n successfulCount,\n errorCount,\n}: HeaderStatusProps) => {\n const { formatMessage } = useIntl();\n\n if (status === 'error') {\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"danger200\">\n <Cross fill=\"danger700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage({\n id: getTranslationKey('upload.progress.failed'),\n defaultMessage: 'Upload failed',\n })}\n subtitle={formatMessage({\n id: getTranslationKey('upload.progress.failed.subtitle'),\n defaultMessage: 'Please try to upload files again',\n })}\n />\n </HeaderStatusWrapper>\n );\n }\n\n if (status === 'success') {\n const subtitle =\n errorCount > 0\n ? formatMessage(\n {\n id: getTranslationKey('upload.progress.success.subtitle.withErrors'),\n defaultMessage: '{successCount} uploaded, {errorCount} failed',\n },\n { successCount: successfulCount, errorCount }\n )\n : formatMessage(\n {\n id: getTranslationKey('upload.progress.success.subtitle'),\n defaultMessage: '{count} files uploaded successfully',\n },\n { count: successfulCount }\n );\n\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"success200\">\n <Check fill=\"success700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage({\n id: getTranslationKey('upload.progress.success'),\n defaultMessage: 'Upload successful!',\n })}\n subtitle={subtitle}\n />\n </HeaderStatusWrapper>\n );\n }\n\n if (status === 'canceled') {\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"neutral200\">\n <MinusCircle fill=\"neutral700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage({\n id: getTranslationKey('upload.progress.canceled'),\n defaultMessage: 'Upload canceled',\n })}\n subtitle={formatMessage({\n id: getTranslationKey('upload.progress.canceled.subtitle'),\n defaultMessage: 'Some files were not uploaded',\n })}\n />\n </HeaderStatusWrapper>\n );\n }\n\n if (status === 'uploading') {\n const progressPercentage = progress ? Math.round(progress) : 0;\n\n return (\n <HeaderStatusWrapper>\n <HeaderStatusIcon background=\"primary200\">\n <Upload fill=\"primary700\" />\n </HeaderStatusIcon>\n <HeaderStatusMessage\n title={formatMessage(\n {\n id: getTranslationKey('upload.progress.uploading.withCount'),\n defaultMessage: 'Uploading {total} items ({percentage}%)',\n },\n {\n total: totalFiles,\n percentage: progressPercentage,\n }\n )}\n />\n </HeaderStatusWrapper>\n );\n }\n\n return null;\n};\n\nconst HeaderIconButton = styled(IconButton)`\n &:hover {\n background: transparent;\n }\n`;\n\nconst ChevronWrapper = styled.span<{ $isMinimized: boolean }>`\n display: flex;\n transition: transform 0.5s ease-in-out;\n transform: ${({ $isMinimized }) => ($isMinimized ? 'rotate(180deg)' : 'rotate(0deg)')};\n`;\n\nconst HEADER_COLOR_MAP = {\n uploading: { background: 'primary100' },\n canceled: { background: 'neutral100' },\n success: { background: 'success100' },\n error: { background: 'danger100' },\n} as const;\n\nconst DialogHeader = ({ handleClose }: { handleClose: () => void }) => {\n const { formatMessage } = useIntl();\n\n const { isMinimized, progress, files, uploadId, totalFiles } = useTypedSelector(\n (state) => state.uploadProgress\n );\n const dispatch = useTypedDispatch();\n const [retryCancelledFiles] = useRetryCancelledFilesStreamMutation();\n\n const isComplete = progress === 100;\n const isAllUploaded = isComplete && files.every((f) => f.status !== 'uploading');\n const isAllErrored = isComplete && files.length > 0 && files.every((f) => f.status === 'error');\n const hasCancelledFiles = files.some((f) => f.status === 'cancelled');\n const successfulCount = files.filter((f) => f.status === 'complete').length;\n const errorCount = files.filter((f) => f.status === 'error').length;\n // Success includes partial success (some files succeeded, even if some failed)\n const isSuccess = isComplete && isAllUploaded && successfulCount > 0 && !hasCancelledFiles;\n const status = ((): HeaderStatusProps['status'] => {\n if (isAllErrored) return 'error';\n if (isSuccess) return 'success';\n if (hasCancelledFiles) return 'canceled';\n\n return 'uploading';\n })();\n\n const handleCancel = () => {\n abortUpload(uploadId);\n dispatch(cancelUpload());\n };\n\n const handleRetry = async () => {\n try {\n await retryCancelledFiles().unwrap();\n } catch {\n // Error is already dispatched to store from the API queryFn\n }\n };\n\n const handleToggleMinimize = () => {\n dispatch(toggleMinimize());\n };\n\n return (\n <Flex\n background={HEADER_COLOR_MAP[status].background}\n justifyContent=\"space-between\"\n margin={1}\n hasRadius\n >\n <HeaderStatus\n status={status}\n progress={progress}\n totalFiles={totalFiles}\n successfulCount={successfulCount}\n errorCount={errorCount}\n />\n <Flex gap={1}>\n {!isAllUploaded && (\n <TextButton onClick={handleCancel} fontWeight=\"bold\">\n {formatMessage({\n id: getTranslationKey('upload.progress.cancel'),\n defaultMessage: 'Cancel',\n })}\n </TextButton>\n )}\n {hasCancelledFiles && (\n <TextButton onClick={handleRetry} fontWeight=\"bold\">\n {formatMessage({\n id: getTranslationKey('upload.progress.retry'),\n defaultMessage: 'Retry',\n })}\n </TextButton>\n )}\n <HeaderIconButton\n onClick={handleToggleMinimize}\n label={formatMessage({\n id: getTranslationKey(\n isMinimized ? 'upload.progress.maximize' : 'upload.progress.minimize'\n ),\n defaultMessage: isMinimized ? 'Maximize' : 'Minimize',\n })}\n variant=\"ghost\"\n >\n <ChevronWrapper $isMinimized={isMinimized}>\n <ChevronDown />\n </ChevronWrapper>\n </HeaderIconButton>\n {isComplete && (\n <Drawer.CloseButton\n onClose={handleClose}\n label={formatMessage({\n id: getTranslationKey('upload.progress.close'),\n defaultMessage: 'Close',\n })}\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UploadProgressDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst indeterminate = keyframes`\n 0% {\n transform: translateX(-100%);\n }\n 100% {\n transform: translateX(400%);\n }\n`;\n\nconst IndeterminateBar = styled.div`\n width: 100%;\n height: ${({ theme }) => theme.spaces[1]};\n background-color: ${({ theme }) => theme.colors.neutral200};\n border-radius: 4px;\n overflow: hidden;\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 25%;\n background-color: ${({ theme }) => theme.colors.primary700};\n border-radius: 4px;\n animation: ${indeterminate} 1.5s ease-in-out infinite;\n }\n`;\n\nconst FileRow = ({\n icon,\n fileName,\n children,\n}: {\n icon: React.ReactNode;\n fileName: string;\n children: React.ReactNode;\n}) => {\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" justifyContent=\"center\" gap={1} width=\"100%\">\n <Flex gap={2}>\n {icon}\n <Typography variant=\"omega\" fontWeight=\"semiBold\" ellipsis>\n {fileName}\n </Typography>\n </Flex>\n {children}\n </Flex>\n );\n};\n\nconst FileRowRenderer = ({ file }: { file: FileProgress }) => {\n const { formatMessage } = useIntl();\n const isError = file.status === 'error';\n const isCurrentFile = file.status === 'uploading';\n const isCompleted = file.status === 'complete';\n const isCancelled = file.status === 'cancelled';\n\n if (isCurrentFile) {\n return (\n <FileRow icon={<ArrowsCounterClockwise fill=\"secondary600\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslationKey('upload.progress.file.uploading'),\n defaultMessage: 'Uploading...',\n })}\n </Typography>\n <IndeterminateBar />\n </FileRow>\n );\n }\n\n if (isError) {\n return (\n <FileRow icon={<CrossCircle fill=\"danger500\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {file.error}\n </Typography>\n </FileRow>\n );\n }\n\n if (isCancelled) {\n return (\n <FileRow icon={<MinusCircle fill=\"neutral600\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslationKey('upload.progress.file.canceled'),\n defaultMessage: 'Canceled',\n })}\n </Typography>\n </FileRow>\n );\n }\n\n if (isCompleted) {\n return (\n <FileRow icon={<CheckCircle fill=\"success500\" />} fileName={file.name}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslationKey('upload.progress.file.uploaded'),\n defaultMessage: 'Uploaded',\n })}\n </Typography>\n </FileRow>\n );\n }\n\n return null;\n};\n\nconst CompletedFilesList = styled(Flex)`\n flex-direction: column;\n gap: ${({ theme }) => theme.spaces[2]};\n width: 100%;\n`;\n\nexport const UploadProgressDialog = () => {\n const dispatch = useTypedDispatch();\n const { isVisible, isMinimized, files } = useTypedSelector((state) => state.uploadProgress);\n\n const currentFile = files.find((f) => f.status === 'uploading');\n const completedFiles = files\n .filter((f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled')\n .sort((a, b) => {\n // Sort priority: error > cancelled > complete\n const priority: Record<FileProgressStatus, number> = {\n error: 0,\n cancelled: 1,\n complete: 2,\n uploading: 3,\n pending: 4,\n };\n return priority[a.status] - priority[b.status];\n });\n\n const handleClose = () => {\n dispatch(closeUploadProgress());\n };\n\n return (\n <Drawer.Root isVisible={isVisible} onClose={handleClose}>\n <Drawer.Body animationDirection=\"up\" width=\"41.6rem\" maxHeight=\"34.2rem\">\n <DialogHeader handleClose={handleClose} />\n <Drawer.ScrollableContent isContentExpanded={!isMinimized}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={4}\n paddingRight={4}\n >\n {currentFile && <FileRowRenderer file={currentFile} />}\n\n {completedFiles.length > 0 && (\n <CompletedFilesList>\n {completedFiles.map((file) => (\n <FileRowRenderer key={file.index} file={file} />\n ))}\n </CompletedFilesList>\n )}\n </Flex>\n </Drawer.ScrollableContent>\n </Drawer.Body>\n </Drawer.Root>\n );\n};\n"],"names":["HeaderStatusMessage","title","subtitle","_jsxs","Flex","direction","alignItems","paddingLeft","_jsx","Drawer","Title","Typography","variant","Description","textColor","HeaderStatusIcon","styled","theme","spaces","borderRadius","HeaderStatusWrapper","HeaderStatus","status","progress","totalFiles","successfulCount","errorCount","formatMessage","useIntl","background","Cross","fill","id","getTranslationKey","defaultMessage","successCount","count","Check","MinusCircle","progressPercentage","Math","round","Upload","total","percentage","HeaderIconButton","IconButton","ChevronWrapper","span","$isMinimized","HEADER_COLOR_MAP","uploading","canceled","success","error","DialogHeader","handleClose","isMinimized","files","uploadId","useTypedSelector","state","uploadProgress","dispatch","useTypedDispatch","retryCancelledFiles","useRetryCancelledFilesStreamMutation","isComplete","isAllUploaded","every","f","isAllErrored","length","hasCancelledFiles","some","filter","isSuccess","handleCancel","abortUpload","cancelUpload","handleRetry","unwrap","handleToggleMinimize","toggleMinimize","justifyContent","margin","hasRadius","gap","TextButton","onClick","fontWeight","label","ChevronDown","CloseButton","onClose","indeterminate","keyframes","IndeterminateBar","div","colors","neutral200","primary700","FileRow","icon","fileName","children","width","ellipsis","FileRowRenderer","file","isError","isCurrentFile","isCompleted","isCancelled","ArrowsCounterClockwise","name","CrossCircle","CheckCircle","CompletedFilesList","UploadProgressDialog","isVisible","currentFile","find","completedFiles","sort","a","b","priority","cancelled","complete","pending","closeUploadProgress","Root","Body","animationDirection","maxHeight","ScrollableContent","isContentExpanded","paddingTop","paddingBottom","paddingRight","map","index"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import 'react';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import { ChevronDown, Cross, ArrowsCounterClockwise, CrossCircle, MinusCircle, CheckCircle, Check, Upload } from '@strapi/icons';
|
|
3
|
+
import { Flex, IconButton, TextButton, Typography } from '@strapi/design-system';
|
|
4
|
+
import { ChevronDown, ArrowsCounterClockwise, CrossCircle, MinusCircle, CheckCircle, Cross, Check, Upload } from '@strapi/icons';
|
|
6
5
|
import { useIntl } from 'react-intl';
|
|
7
6
|
import { styled, keyframes } from 'styled-components';
|
|
8
7
|
import { useRetryCancelledFilesStreamMutation, abortUpload } from '../services/api.mjs';
|
|
9
8
|
import { useTypedDispatch, useTypedSelector } from '../store/hooks.mjs';
|
|
10
9
|
import { closeUploadProgress, cancelUpload, toggleMinimize } from '../store/uploadProgress.mjs';
|
|
11
10
|
import { getTranslationKey } from '../utils/translations.mjs';
|
|
11
|
+
import { Drawer } from './Drawer.mjs';
|
|
12
12
|
|
|
13
13
|
/* -------------------------------------------------------------------------------------------------
|
|
14
14
|
* DialogHeader
|
|
@@ -18,13 +18,13 @@ import { getTranslationKey } from '../utils/translations.mjs';
|
|
|
18
18
|
alignItems: "flex-start",
|
|
19
19
|
paddingLeft: 2,
|
|
20
20
|
children: [
|
|
21
|
-
/*#__PURE__*/ jsx(
|
|
21
|
+
/*#__PURE__*/ jsx(Drawer.Title, {
|
|
22
22
|
children: /*#__PURE__*/ jsx(Typography, {
|
|
23
23
|
variant: "omega",
|
|
24
24
|
children: title
|
|
25
25
|
})
|
|
26
26
|
}),
|
|
27
|
-
/*#__PURE__*/ jsx(
|
|
27
|
+
/*#__PURE__*/ jsx(Drawer.Description, {
|
|
28
28
|
children: /*#__PURE__*/ jsx(Typography, {
|
|
29
29
|
variant: "pi",
|
|
30
30
|
textColor: "neutral600",
|
|
@@ -43,11 +43,10 @@ const HeaderStatusIcon = styled(Flex)`
|
|
|
43
43
|
width: 24px;
|
|
44
44
|
}
|
|
45
45
|
`;
|
|
46
|
-
const HeaderStatusWrapper = styled(
|
|
47
|
-
display: flex;
|
|
46
|
+
const HeaderStatusWrapper = styled(Flex)`
|
|
48
47
|
align-items: center;
|
|
49
48
|
`;
|
|
50
|
-
const HeaderStatus = ({ status, progress, totalFiles })=>{
|
|
49
|
+
const HeaderStatus = ({ status, progress, totalFiles, successfulCount, errorCount })=>{
|
|
51
50
|
const { formatMessage } = useIntl();
|
|
52
51
|
if (status === 'error') {
|
|
53
52
|
return /*#__PURE__*/ jsxs(HeaderStatusWrapper, {
|
|
@@ -72,6 +71,18 @@ const HeaderStatus = ({ status, progress, totalFiles })=>{
|
|
|
72
71
|
});
|
|
73
72
|
}
|
|
74
73
|
if (status === 'success') {
|
|
74
|
+
const subtitle = errorCount > 0 ? formatMessage({
|
|
75
|
+
id: getTranslationKey('upload.progress.success.subtitle.withErrors'),
|
|
76
|
+
defaultMessage: '{successCount} uploaded, {errorCount} failed'
|
|
77
|
+
}, {
|
|
78
|
+
successCount: successfulCount,
|
|
79
|
+
errorCount
|
|
80
|
+
}) : formatMessage({
|
|
81
|
+
id: getTranslationKey('upload.progress.success.subtitle'),
|
|
82
|
+
defaultMessage: '{count} files uploaded successfully'
|
|
83
|
+
}, {
|
|
84
|
+
count: successfulCount
|
|
85
|
+
});
|
|
75
86
|
return /*#__PURE__*/ jsxs(HeaderStatusWrapper, {
|
|
76
87
|
children: [
|
|
77
88
|
/*#__PURE__*/ jsx(HeaderStatusIcon, {
|
|
@@ -85,12 +96,7 @@ const HeaderStatus = ({ status, progress, totalFiles })=>{
|
|
|
85
96
|
id: getTranslationKey('upload.progress.success'),
|
|
86
97
|
defaultMessage: 'Upload successful!'
|
|
87
98
|
}),
|
|
88
|
-
subtitle:
|
|
89
|
-
id: getTranslationKey('upload.progress.success.subtitle'),
|
|
90
|
-
defaultMessage: '{count} files uploaded successfully'
|
|
91
|
-
}, {
|
|
92
|
-
count: totalFiles
|
|
93
|
-
})
|
|
99
|
+
subtitle: subtitle
|
|
94
100
|
})
|
|
95
101
|
]
|
|
96
102
|
});
|
|
@@ -174,7 +180,10 @@ const DialogHeader = ({ handleClose })=>{
|
|
|
174
180
|
const isAllUploaded = isComplete && files.every((f)=>f.status !== 'uploading');
|
|
175
181
|
const isAllErrored = isComplete && files.length > 0 && files.every((f)=>f.status === 'error');
|
|
176
182
|
const hasCancelledFiles = files.some((f)=>f.status === 'cancelled');
|
|
177
|
-
const
|
|
183
|
+
const successfulCount = files.filter((f)=>f.status === 'complete').length;
|
|
184
|
+
const errorCount = files.filter((f)=>f.status === 'error').length;
|
|
185
|
+
// Success includes partial success (some files succeeded, even if some failed)
|
|
186
|
+
const isSuccess = isComplete && isAllUploaded && successfulCount > 0 && !hasCancelledFiles;
|
|
178
187
|
const status = (()=>{
|
|
179
188
|
if (isAllErrored) return 'error';
|
|
180
189
|
if (isSuccess) return 'success';
|
|
@@ -204,7 +213,9 @@ const DialogHeader = ({ handleClose })=>{
|
|
|
204
213
|
/*#__PURE__*/ jsx(HeaderStatus, {
|
|
205
214
|
status: status,
|
|
206
215
|
progress: progress,
|
|
207
|
-
totalFiles: totalFiles
|
|
216
|
+
totalFiles: totalFiles,
|
|
217
|
+
successfulCount: successfulCount,
|
|
218
|
+
errorCount: errorCount
|
|
208
219
|
}),
|
|
209
220
|
/*#__PURE__*/ jsxs(Flex, {
|
|
210
221
|
gap: 1,
|
|
@@ -237,14 +248,12 @@ const DialogHeader = ({ handleClose })=>{
|
|
|
237
248
|
children: /*#__PURE__*/ jsx(ChevronDown, {})
|
|
238
249
|
})
|
|
239
250
|
}),
|
|
240
|
-
isComplete && /*#__PURE__*/ jsx(
|
|
241
|
-
|
|
251
|
+
isComplete && /*#__PURE__*/ jsx(Drawer.CloseButton, {
|
|
252
|
+
onClose: handleClose,
|
|
242
253
|
label: formatMessage({
|
|
243
254
|
id: getTranslationKey('upload.progress.close'),
|
|
244
255
|
defaultMessage: 'Close'
|
|
245
|
-
})
|
|
246
|
-
variant: "ghost",
|
|
247
|
-
children: /*#__PURE__*/ jsx(Cross, {})
|
|
256
|
+
})
|
|
248
257
|
})
|
|
249
258
|
]
|
|
250
259
|
})
|
|
@@ -377,38 +386,11 @@ const FileRowRenderer = ({ file })=>{
|
|
|
377
386
|
}
|
|
378
387
|
return null;
|
|
379
388
|
};
|
|
380
|
-
const DialogContent = styled(Dialog.Content)`
|
|
381
|
-
position: fixed;
|
|
382
|
-
bottom: ${({ theme })=>theme.spaces[4]};
|
|
383
|
-
right: ${({ theme })=>theme.spaces[4]};
|
|
384
|
-
width: 400px;
|
|
385
|
-
background-color: ${({ theme })=>theme.colors.neutral0};
|
|
386
|
-
border-radius: ${({ theme })=>theme.borderRadius};
|
|
387
|
-
box-shadow: ${({ theme })=>theme.shadows.popupShadow};
|
|
388
|
-
z-index: 1000;
|
|
389
|
-
overflow: hidden;
|
|
390
|
-
border: 1px solid ${({ theme })=>theme.colors.neutral150};
|
|
391
|
-
|
|
392
|
-
&:focus {
|
|
393
|
-
outline: none;
|
|
394
|
-
}
|
|
395
|
-
`;
|
|
396
389
|
const CompletedFilesList = styled(Flex)`
|
|
397
|
-
max-height: 200px;
|
|
398
|
-
overflow-y: auto;
|
|
399
390
|
flex-direction: column;
|
|
400
391
|
gap: ${({ theme })=>theme.spaces[2]};
|
|
401
392
|
width: 100%;
|
|
402
393
|
`;
|
|
403
|
-
const AnimatedContent = styled.div`
|
|
404
|
-
display: grid;
|
|
405
|
-
grid-template-rows: ${({ $isVisible })=>$isVisible ? '1fr' : '0fr'};
|
|
406
|
-
transition: grid-template-rows 0.3s ease-in-out;
|
|
407
|
-
|
|
408
|
-
> div {
|
|
409
|
-
overflow: hidden;
|
|
410
|
-
}
|
|
411
|
-
`;
|
|
412
394
|
const UploadProgressDialog = ()=>{
|
|
413
395
|
const dispatch = useTypedDispatch();
|
|
414
396
|
const { isVisible, isMinimized, files } = useTypedSelector((state)=>state.uploadProgress);
|
|
@@ -427,44 +409,40 @@ const UploadProgressDialog = ()=>{
|
|
|
427
409
|
const handleClose = ()=>{
|
|
428
410
|
dispatch(closeUploadProgress());
|
|
429
411
|
};
|
|
430
|
-
return /*#__PURE__*/ jsx(
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
children: /*#__PURE__*/
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
file: file
|
|
460
|
-
}, file.index))
|
|
461
|
-
})
|
|
462
|
-
]
|
|
412
|
+
return /*#__PURE__*/ jsx(Drawer.Root, {
|
|
413
|
+
isVisible: isVisible,
|
|
414
|
+
onClose: handleClose,
|
|
415
|
+
children: /*#__PURE__*/ jsxs(Drawer.Body, {
|
|
416
|
+
animationDirection: "up",
|
|
417
|
+
width: "41.6rem",
|
|
418
|
+
maxHeight: "34.2rem",
|
|
419
|
+
children: [
|
|
420
|
+
/*#__PURE__*/ jsx(DialogHeader, {
|
|
421
|
+
handleClose: handleClose
|
|
422
|
+
}),
|
|
423
|
+
/*#__PURE__*/ jsx(Drawer.ScrollableContent, {
|
|
424
|
+
isContentExpanded: !isMinimized,
|
|
425
|
+
children: /*#__PURE__*/ jsxs(Flex, {
|
|
426
|
+
direction: "column",
|
|
427
|
+
alignItems: "stretch",
|
|
428
|
+
gap: 4,
|
|
429
|
+
paddingTop: 4,
|
|
430
|
+
paddingBottom: 4,
|
|
431
|
+
paddingLeft: 4,
|
|
432
|
+
paddingRight: 4,
|
|
433
|
+
children: [
|
|
434
|
+
currentFile && /*#__PURE__*/ jsx(FileRowRenderer, {
|
|
435
|
+
file: currentFile
|
|
436
|
+
}),
|
|
437
|
+
completedFiles.length > 0 && /*#__PURE__*/ jsx(CompletedFilesList, {
|
|
438
|
+
children: completedFiles.map((file)=>/*#__PURE__*/ jsx(FileRowRenderer, {
|
|
439
|
+
file: file
|
|
440
|
+
}, file.index))
|
|
463
441
|
})
|
|
464
|
-
|
|
442
|
+
]
|
|
465
443
|
})
|
|
466
|
-
|
|
467
|
-
|
|
444
|
+
})
|
|
445
|
+
]
|
|
468
446
|
})
|
|
469
447
|
});
|
|
470
448
|
};
|