synapse-react-client 4.0.1 → 4.0.3
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/SWC.index.js +1 -1
- package/dist/assets/icons/AwardScroll.d.ts +5 -0
- package/dist/assets/icons/AwardScroll.d.ts.map +1 -0
- package/dist/assets/icons/AwardScroll.js +78 -0
- package/dist/assets/icons/AwardScroll.js.map +1 -0
- package/dist/assets/icons/Baseline.d.ts +5 -0
- package/dist/assets/icons/Baseline.d.ts.map +1 -0
- package/dist/assets/icons/Baseline.js +43 -0
- package/dist/assets/icons/Baseline.js.map +1 -0
- package/dist/assets/icons/Challenge.svg +13 -0
- package/dist/assets/icons/Challenge.svg.js +7 -0
- package/dist/assets/icons/Challenge.svg.js.map +1 -0
- package/dist/assets/icons/ClappingHands.d.ts +5 -0
- package/dist/assets/icons/ClappingHands.d.ts.map +1 -0
- package/dist/assets/icons/ClappingHands.js +106 -0
- package/dist/assets/icons/ClappingHands.js.map +1 -0
- package/dist/assets/icons/HandWithMoney.d.ts +5 -0
- package/dist/assets/icons/HandWithMoney.d.ts.map +1 -0
- package/dist/assets/icons/HandWithMoney.js +15 -0
- package/dist/assets/icons/HandWithMoney.js.map +1 -0
- package/dist/assets/icons/MultiFile.d.ts +5 -0
- package/dist/assets/icons/MultiFile.d.ts.map +1 -0
- package/dist/assets/icons/MultiFile.js +8 -0
- package/dist/assets/icons/MultiFile.js.map +1 -0
- package/dist/assets/icons/MultiFile.svg +4 -0
- package/dist/assets/icons/MultiFile.svg.js +7 -0
- package/dist/assets/icons/MultiFile.svg.js.map +1 -0
- package/dist/assets/icons/OpenBook.d.ts +5 -0
- package/dist/assets/icons/OpenBook.d.ts.map +1 -0
- package/dist/assets/icons/OpenBook.js +99 -0
- package/dist/assets/icons/OpenBook.js.map +1 -0
- package/dist/assets/icons/Podium.d.ts +5 -0
- package/dist/assets/icons/Podium.d.ts.map +1 -0
- package/dist/assets/icons/Podium.js +36 -0
- package/dist/assets/icons/Podium.js.map +1 -0
- package/dist/assets/icons/RosetteRibbon.d.ts +5 -0
- package/dist/assets/icons/RosetteRibbon.d.ts.map +1 -0
- package/dist/assets/icons/RosetteRibbon.js +36 -0
- package/dist/assets/icons/RosetteRibbon.js.map +1 -0
- package/dist/assets/icons/StarTrophy.d.ts +5 -0
- package/dist/assets/icons/StarTrophy.d.ts.map +1 -0
- package/dist/assets/icons/StarTrophy.js +99 -0
- package/dist/assets/icons/StarTrophy.js.map +1 -0
- package/dist/assets/icons/ThreeStars.d.ts +5 -0
- package/dist/assets/icons/ThreeStars.d.ts.map +1 -0
- package/dist/assets/icons/ThreeStars.js +71 -0
- package/dist/assets/icons/ThreeStars.js.map +1 -0
- package/dist/assets/icons/UnpackagableFile.d.ts +5 -0
- package/dist/assets/icons/UnpackagableFile.d.ts.map +1 -0
- package/dist/assets/icons/UnpackagableFile.js +8 -0
- package/dist/assets/icons/UnpackagableFile.js.map +1 -0
- package/dist/assets/icons/UnpackagableFile.svg +4 -0
- package/dist/assets/icons/UnpackagableFile.svg.js +7 -0
- package/dist/assets/icons/UnpackagableFile.svg.js.map +1 -0
- package/dist/assets/mui_components/PackagableFile.d.ts.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js +5 -4
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.svg +3 -0
- package/dist/assets/mui_components/PackagableFile.svg.js +7 -0
- package/dist/assets/mui_components/PackagableFile.svg.js.map +1 -0
- package/dist/assets/themed_icons/index.d.ts +1 -2
- package/dist/assets/themed_icons/index.d.ts.map +1 -1
- package/dist/assets/themed_icons/index.js +8 -10
- package/dist/assets/themed_icons/index.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +4 -4
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js +10 -10
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -2
- package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js +21 -28
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.module.scss +7 -1
- package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +11 -11
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +24 -24
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +5 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardContainerLogic/index.d.ts +1 -1
- package/dist/components/CardContainerLogic/index.d.ts.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js +12 -9
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +33 -33
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js +5 -2
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/ComponentCollapse.d.ts +6 -10
- package/dist/components/ComponentCollapse.d.ts.map +1 -1
- package/dist/components/ComponentCollapse.js +31 -35
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +12 -9
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +8 -3
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +8 -3
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +8 -3
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.d.ts.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js +23 -23
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts +6 -2
- package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js +10 -8
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.css +1 -0
- package/dist/components/DownloadCart/CreatePackageV2.d.ts.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js +50 -46
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.module.scss +38 -0
- package/dist/components/DownloadCart/CreatePackageV2.module.scss.js +14 -0
- package/dist/components/DownloadCart/CreatePackageV2.module.scss.js.map +1 -0
- package/dist/components/DownloadCart/DownloadCartPage.css +1 -0
- package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js +316 -186
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.module.scss +217 -0
- package/dist/components/DownloadCart/DownloadCartPage.module.scss.js +48 -0
- package/dist/components/DownloadCart/DownloadCartPage.module.scss.js.map +1 -0
- package/dist/components/DownloadCart/DownloadDetails.js +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +33 -33
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.d.ts +4 -1
- package/dist/components/DownloadCart/DownloadListTable.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js +156 -236
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js +5 -5
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js +8 -3
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.d.ts +3 -0
- package/dist/components/EntityDownloadButton/EntityDownloadButton.d.ts.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +113 -119
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +3 -3
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +6 -2
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js +11 -8
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.d.ts +2 -2
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.d.ts +5 -5
- package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCard.js +117 -103
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts +10 -0
- package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts.map +1 -0
- package/dist/components/GenericCard/LabelMaybeWithIcon.js +33 -0
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -0
- package/dist/components/GenericCard/SynapseCardLabel.d.ts +2 -1
- package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +86 -81
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts +7 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +239 -202
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/HeaderCard.js +17 -13
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/Icon/Icon.js +52 -52
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
- package/dist/components/IconSvg/IconSvg.js +215 -171
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -0
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +103 -102
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js +6 -3
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +76 -67
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +2 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js +83 -58
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js +16 -15
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +12 -0
- package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -0
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js +30 -0
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -0
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.d.ts.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js +22 -16
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/index.d.ts +2 -0
- package/dist/components/SynapseChat/index.d.ts.map +1 -1
- package/dist/components/SynapseChat/index.js +5 -3
- package/dist/components/SynapseChat/index.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.d.ts +1 -1
- package/dist/components/SynapseChat/useChatState.d.ts.map +1 -1
- package/dist/components/SynapseChat/useChatState.js +10 -7
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +30 -32
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js +27 -30
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js +14 -17
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +114 -115
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +66 -64
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +13 -13
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js +9 -9
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/TextToComponentCollapse.d.ts +16 -0
- package/dist/components/TextToComponentCollapse.d.ts.map +1 -0
- package/dist/components/TextToComponentCollapse.js +29 -0
- package/dist/components/TextToComponentCollapse.js.map +1 -0
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +8 -3
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.d.ts +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +22 -22
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js +4 -4
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/index.js +85 -83
- package/dist/components/index.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js +12 -11
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.d.ts +1 -3
- package/dist/components/row_renderers/utils/CardFooter.d.ts.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js +31 -45
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js +8 -3
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +8 -3
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js +8 -3
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js +8 -3
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/index.js +137 -135
- package/dist/index.js.map +1 -1
- package/dist/style/components/_all.scss +0 -1
- package/dist/style/components/_cards.scss +22 -0
- package/dist/style/components/_download-list-v2.scss +1 -1
- package/dist/style/components/_query-wrapper-plot-nav.scss +13 -0
- package/dist/style/main.css +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js +9 -9
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/SynapseContext.d.ts.map +1 -1
- package/dist/utils/context/SynapseContext.js +1 -0
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.d.ts +4 -0
- package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
- package/dist/utils/functions/SqlFunctions.js +25 -23
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/package.json +6 -6
- package/dist/assets/themed_icons/Challenge.d.ts +0 -3
- package/dist/assets/themed_icons/Challenge.d.ts.map +0 -1
- package/dist/assets/themed_icons/Challenge.js +0 -25
- package/dist/assets/themed_icons/Challenge.js.map +0 -1
- package/dist/style/components/_download-cart-page.scss +0 -204
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadCartPage.js","sources":["../../../src/components/DownloadCart/DownloadCartPage.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useGetDownloadListStatistics } from '@/synapse-queries/download/useDownloadList'\nimport { useGetFeatureFlag } from '@/synapse-queries/featureflags/useGetFeatureFlag'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { DeleteTwoTone } from '@mui/icons-material'\nimport { Button, Tooltip, Typography } from '@mui/material'\nimport { FeatureFlagEnum } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useState } from 'react'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport FullWidthAlert from '../FullWidthAlert/FullWidthAlert'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\nimport AvailableForDownloadTable from './AvailableForDownloadTable'\nimport { CreatePackageV2 } from './CreatePackageV2'\nimport { PYTHON_CLIENT_IMPORT_AND_LOGIN } from './DirectProgrammaticDownload'\nimport { DownloadIneligibleForPackagingFilesFromListButton } from './DownloadIneligibleForPackagingFilesFromListButton'\nimport {\n DownloadListActionsRequired,\n DownloadListActionsRequiredProps,\n} from './DownloadListActionsRequired'\n\nconst pythonDownloadCode = `${PYTHON_CLIENT_IMPORT_AND_LOGIN}\ndl_list_file_entities = syn.get_download_list()`\n\nconst cliDownloadCode = `synapse get-download-list`\n\n/**\n * Show the Download Cart page.\n */\nexport function DownloadCartPage(props: DownloadListActionsRequiredProps) {\n const { accessToken } = useSynapseContext()\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const [isShowingCreatePackageUI, setIsShowingCreatePackageUI] =\n useState<boolean>(false)\n const [isShowingModal, setIsShowingModal] = useState<boolean>(false)\n const [isShowingDownloadSuccessAlert, setIsShowingDownloadSuccessAlert] =\n useState(false)\n const [error, setError] = useState<Error>()\n const isDownloadAllEnabled = useGetFeatureFlag(\n FeatureFlagEnum.DOWNLOAD_CART_INELIGIBLE_FILE_DOWNLOADS,\n )\n const {\n data,\n isLoading,\n isError,\n error: newError,\n refetch,\n } = useGetDownloadListStatistics()\n useEffect(() => {\n if (isError && newError) {\n setError(newError)\n }\n }, [isError, newError])\n\n // SWC-5874: When arriving at the download cart when there are no ARs, the user should start in the Download list\n useEffect(() => {\n if (data && data.numberOfFilesRequiringAction == 0) {\n setSelectedTabIndex(1)\n }\n }, [data])\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n const clearDownloadList = async () => {\n await SynapseClient.clearDownloadListV2(accessToken)\n refetch()\n }\n return (\n <div className=\"DownloadCartPage\">\n <div>\n <div className=\"pageHeader\">\n <div className=\"grid\">\n <h3 className=\"pageHeaderTitle\">Your Download Cart</h3>\n <Tooltip\n title=\"Immediately removes all items from your download cart\"\n enterNextDelay={300}\n placement=\"right\"\n >\n <Button\n onClick={() => {\n clearDownloadList()\n }}\n variant=\"text\"\n color=\"primary\"\n startIcon={<DeleteTwoTone />}\n >\n Clear Your Download Cart\n </Button>\n </Tooltip>\n </div>\n <Typography\n className=\"description\"\n variant=\"body1\"\n sx={{\n display: { xs: 'none', md: 'block' },\n }}\n >\n Your added files can be found in the tabs below. Files requiring\n actions before download are listed in the Access Actions Required\n tab, while those ready for download can be found in the Download\n List tab.\n </Typography>\n </div>\n </div>\n <div className=\"tabs-container\">\n <div className=\"container\">\n <ul className=\"nav nav-tabs\">\n <li\n className={`nav-item ${selectedTabIndex == 0 ? 'active' : ''}`}\n aria-selected={selectedTabIndex == 0}\n >\n <button onClick={() => setSelectedTabIndex(0)}>\n Access Actions Required\n {!isError && !isLoading && data && (\n <span className=\"fileCount\">\n {data.totalNumberOfFiles -\n data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n <li\n className={`nav-item ${selectedTabIndex == 1 ? 'active' : ''}`}\n aria-selected={selectedTabIndex == 1}\n >\n <button onClick={() => setSelectedTabIndex(1)}>\n Download List\n {!isError && !isLoading && data && (\n <span className=\"fileCount\">\n {data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div\n style={{\n /*\n The DownloadListActionsRequired component stores actions in local state to track which actions are completed.\n\n Mount the actions required component and hide it with style to ensure actions stored in component state are persisted as the user switches tabs\n */\n display:\n selectedTabIndex == 0 && !isError && !isLoading && data\n ? 'block'\n : 'none',\n }}\n >\n {data?.numberOfFilesRequiringAction &&\n data.numberOfFilesRequiringAction > 0 && (\n // Unmount instead of hiding the DownloadListActionsRequired component when there are 0 actions required\n // The DownloadListActionsRequired cannot discern between a fulfilled action and an action that is no longer required because the\n // file was removed from the download cart.\n // In the typical case where the download cart is cleared, unmounting the component ensures that the actions are cleared out.\n <div>\n <div className=\"actionsRequiredContainer container\">\n <DownloadListActionsRequired {...props} />\n </div>\n </div>\n )}\n {data?.numberOfFilesRequiringAction === 0 && (\n <div className=\"placeholder\">\n <div>No actions are currently required.</div>\n </div>\n )}\n </div>\n\n {selectedTabIndex == 1 && !isError && !isLoading && data && (\n <div>\n {data.numberOfFilesAvailableForDownload > 0 && (\n <div className=\"DownloadListTabContent\">\n <div className=\"subSectionOverviewContainer\">\n <div className=\"subSectionOverview container\">\n <div>\n <div className=\"headlineWithHelp\">\n <Typography variant={'headline3'} sx={{ mb: 2 }}>\n <IconSvg icon=\"packagableFile\" /> Web Download\n </Typography>\n <HelpPopover\n markdownText=\"This will allow you to create a .zip file that contains eligible files. Files greater that 100 MB, external links, or files which are not stored on Synapse native storage are ineligible. In most cases, ineligible files can be downloaded individually. External links will require navigation to an external site, which may require a separate login process.\"\n helpUrl=\"https://help.synapse.org/docs/Downloading-Data-From-the-Synapse-UI.2004254837.html\"\n />\n </div>\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{\n mb: 2,\n display: { xs: 'none', md: 'block' },\n }}\n >\n <ul>\n <li>\n Eligible files will be added to .ZIP packages of up to\n 1GB in size\n </li>\n <li>\n If you have more than 1GB, you can create multiple\n packages\n </li>\n <li>\n Packages will only include files which are hosted on\n Synapse native storage\n </li>\n <li>\n Packages include a CSV manifest that contains file\n annotations and other information for each file\n </li>\n </ul>\n </Typography>\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging >\n 0 && (\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingCreatePackageUI(true)\n }}\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Download As .Zip Packages\n </Button>\n )}\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging ==\n 0 && (\n <Tooltip\n title=\"You cannot create a .zip package because there are no eligible files.\"\n enterNextDelay={300}\n placement=\"top\"\n >\n <span>\n <Button\n variant=\"contained\"\n disabled\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Download As .Zip Packages\n </Button>\n </span>\n </Tooltip>\n )}\n {isDownloadAllEnabled &&\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging <\n data.numberOfFilesAvailableForDownload && (\n <div style={{ marginTop: '1rem' }}>\n <DownloadIneligibleForPackagingFilesFromListButton />\n </div>\n )}\n </div>\n <div>\n <div className=\"headlineWithHelp\">\n <Typography variant={'headline3'} sx={{ mb: 2 }}>\n <IconSvg icon=\"code\" /> Programmatic Download\n </Typography>\n <HelpPopover\n markdownText=\"This will provide syntax which you can enter into your programmatic client. It is suitable for large files (>100 MB), for packages > 1GB, and for files which aren’t stored on Synapse native storage (e.g. in a special AWS S3 or Google Cloud bucket). External links will require navigation to an external site, which may require a separate login process.\"\n helpUrl=\"https://help.synapse.org/docs/Downloading-Data-Programmatically.2003796248.html\"\n />\n </div>\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{\n mb: 2,\n display: { xs: 'none', md: 'block' },\n }}\n >\n <ul>\n <li>\n Requires installation of a programmatic client (R,\n Python, CLI)\n </li>\n <li>\n No limit to the file size or the size of the package\n that can be downloaded\n </li>\n <li>\n Will include files which are hosted on and off Synapse\n native storage\n </li>\n <li>\n Packages include a CSV manifest that contains file\n annotations and other information for each file\n </li>\n </ul>\n </Typography>\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingModal(true)\n }}\n startIcon={<IconSvg icon=\"code\" wrap={false} />}\n >\n Create Programmatic Package\n </Button>\n </div>\n </div>\n </div>\n <div className=\"availableForDownloadTableContainer container\">\n {isShowingCreatePackageUI && (\n <CreatePackageV2\n onPackageCreation={() => {\n setIsShowingDownloadSuccessAlert(true)\n // we refetch the data because the backend will instantly remove the downloadable files from the download list after a package has been created\n refetch()\n }}\n />\n )}\n <AvailableForDownloadTable />\n </div>\n </div>\n )}\n {data.numberOfFilesAvailableForDownload === 0 && (\n <div className=\"placeholder\">\n <div>Your Download Cart is currently empty.</div>\n </div>\n )}\n </div>\n )}\n <FullWidthAlert\n show={isShowingDownloadSuccessAlert}\n variant=\"success\"\n title=\"Package Created\"\n description=\"A package has been created with eligible files. The items contained in this .zip file have been removed from your list. If your package is over 1GB, you will need to create multiple packages.\"\n autoCloseAfterDelayInSeconds={10}\n onClose={() => {\n setIsShowingDownloadSuccessAlert(false)\n }}\n />\n {isShowingModal && (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={() => setIsShowingModal(false)}\n title=\"Download Programmatically\"\n pythonCode={pythonDownloadCode}\n cliCode={cliDownloadCode}\n // rCode={rDownloadCode}\n />\n )}\n </div>\n )\n}\n\nexport default DownloadCartPage\n"],"names":["pythonDownloadCode","PYTHON_CLIENT_IMPORT_AND_LOGIN","cliDownloadCode","DownloadCartPage","props","accessToken","useSynapseContext","selectedTabIndex","setSelectedTabIndex","useState","isShowingCreatePackageUI","setIsShowingCreatePackageUI","isShowingModal","setIsShowingModal","isShowingDownloadSuccessAlert","setIsShowingDownloadSuccessAlert","error","setError","isDownloadAllEnabled","useGetFeatureFlag","FeatureFlagEnum","data","isLoading","isError","newError","refetch","useGetDownloadListStatistics","useEffect","jsx","ErrorBanner","clearDownloadList","SynapseClient","jsxs","Tooltip","Button","DeleteTwoTone","Typography","DownloadListActionsRequired","IconSvg","HelpPopover","DownloadIneligibleForPackagingFilesFromListButton","CreatePackageV2","AvailableForDownloadTable","FullWidthAlert","ProgrammaticInstructionsModal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DownloadCartPage.js","sources":["../../../src/components/DownloadCart/DownloadCartPage.tsx"],"sourcesContent":["import styles from './DownloadCartPage.module.scss'\nimport SynapseClient from '@/synapse-client'\nimport { useGetDownloadListStatistics } from '@/synapse-queries/download/useDownloadList'\nimport { useGetFeatureFlag } from '@/synapse-queries/featureflags/useGetFeatureFlag'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { DeleteTwoTone } from '@mui/icons-material'\nimport { Button, Tooltip, Typography } from '@mui/material'\nimport {\n AvailableFilter,\n FeatureFlagEnum,\n FilesStatisticsResponse,\n} from '@sage-bionetworks/synapse-types'\nimport { useEffect, useRef, useState } from 'react'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport FullWidthAlert from '../FullWidthAlert/FullWidthAlert'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\nimport AvailableForDownloadTable from './AvailableForDownloadTable'\nimport { CreatePackageV2 } from './CreatePackageV2'\nimport { PYTHON_CLIENT_IMPORT_AND_LOGIN } from './DirectProgrammaticDownload'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { DownloadIneligibleForPackagingFilesFromListButton } from './DownloadIneligibleForPackagingFilesFromListButton'\nimport {\n DownloadListActionsRequired,\n DownloadListActionsRequiredProps,\n} from './DownloadListActionsRequired'\nimport ComponentCollapse from '../ComponentCollapse'\n\nconst pythonDownloadCode = `${PYTHON_CLIENT_IMPORT_AND_LOGIN}\ndl_list_file_entities = syn.get_download_list()`\n\nconst cliDownloadCode = `synapse get-download-list`\n\nconst filterTabs: { label: string; filter: AvailableFilter }[] = [\n { label: 'All Files', filter: undefined },\n { label: 'Files included in ZIP', filter: 'eligibleForPackaging' },\n { label: 'Files not included in ZIP', filter: 'ineligibleForPackaging' },\n]\n\n/**\n * Show the Download Cart page.\n */\nexport function DownloadCartPage(props: DownloadListActionsRequiredProps) {\n const { accessToken } = useSynapseContext()\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const [selectedFilterTabIndex, setSelectedFilterTabIndex] =\n useState<number>(0)\n const selectedFilter = filterTabs[selectedFilterTabIndex].filter\n const [isShowingCreatePackageUI, setIsShowingCreatePackageUI] =\n useState<boolean>(false)\n const createPackageRef = useRef<HTMLDivElement>(null)\n // scroll to the CreatePackageV2 component when it is shown so that the user is aware of the next steps after clicking the button to create a package\n useEffect(() => {\n if (isShowingCreatePackageUI) {\n createPackageRef.current?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }, [isShowingCreatePackageUI])\n const [isShowingModal, setIsShowingModal] = useState<boolean>(false)\n const [isShowingDownloadSuccessAlert, setIsShowingDownloadSuccessAlert] =\n useState(false)\n const [error, setError] = useState<Error>()\n const isDownloadAllEnabled = useGetFeatureFlag(\n FeatureFlagEnum.DOWNLOAD_CART_INELIGIBLE_FILE_DOWNLOADS,\n )\n const {\n data,\n isLoading,\n isError,\n error: newError,\n refetch,\n } = useGetDownloadListStatistics()\n useEffect(() => {\n if (isError && newError) {\n setError(newError)\n }\n }, [isError, newError])\n\n const getFilterCount = (\n data: FilesStatisticsResponse,\n filter: AvailableFilter,\n ) => {\n if (filter === undefined) return data.numberOfFilesAvailableForDownload\n if (filter === 'eligibleForPackaging')\n return data.numberOfFilesAvailableForDownloadAndEligibleForPackaging\n return (\n data.numberOfFilesAvailableForDownload -\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging\n )\n }\n // SWC-5874: When arriving at the download cart when there are no ARs, the user should start in the Download list\n useEffect(() => {\n if (data && data.numberOfFilesRequiringAction == 0) {\n setSelectedTabIndex(1)\n }\n // also hide the Create Package UI if there are no files available for download\n if (\n data &&\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging === 0\n ) {\n setIsShowingCreatePackageUI(false)\n }\n }, [data])\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n const clearDownloadList = async () => {\n await SynapseClient.clearDownloadListV2(accessToken)\n refetch()\n }\n return (\n <div className={styles.DownloadCartPage}>\n <div>\n <div className={`${styles.pageHeader}`}>\n <div className=\"container\">\n <div className={styles.grid}>\n <h3 className=\"pageHeaderTitle\">Your Download List</h3>\n <Tooltip\n title=\"Immediately removes all items from your download list\"\n enterNextDelay={300}\n placement=\"right\"\n >\n <Button\n onClick={() => {\n clearDownloadList()\n }}\n variant=\"text\"\n color=\"primary\"\n startIcon={<DeleteTwoTone />}\n >\n Clear Your Download List\n </Button>\n </Tooltip>\n </div>\n </div>\n </div>\n </div>\n <div className={styles.tabsContainer}>\n <div className=\"container\">\n <ul className={styles.navTabs}>\n <li\n className={`${styles.navItem}${\n selectedTabIndex == 0 ? ` ${styles.active}` : ''\n }`}\n aria-selected={selectedTabIndex == 0}\n >\n <button onClick={() => setSelectedTabIndex(0)}>\n Access Actions Required\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {data.totalNumberOfFiles -\n data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n <li\n className={`${styles.navItem}${\n selectedTabIndex == 1 ? ` ${styles.active}` : ''\n }`}\n aria-selected={selectedTabIndex == 1}\n >\n <button onClick={() => setSelectedTabIndex(1)}>\n Download List\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {data.numberOfFilesAvailableForDownload}\n </span>\n )}\n </button>\n </li>\n </ul>\n </div>\n </div>\n\n <div\n className={\n /*\n The DownloadListActionsRequired component stores actions in local state to track which actions are completed.\n\n Mount the actions required component and hide it with style to ensure actions stored in component state are persisted as the user switches tabs\n */\n !(selectedTabIndex == 0 && !isError && !isLoading && data)\n ? styles.hidden\n : undefined\n }\n >\n {data?.numberOfFilesRequiringAction &&\n data.numberOfFilesRequiringAction > 0 && (\n // Unmount instead of hiding the DownloadListActionsRequired component when there are 0 actions required\n // The DownloadListActionsRequired cannot discern between a fulfilled action and an action that is no longer required because the\n // file was removed from the download cart.\n // In the typical case where the download cart is cleared, unmounting the component ensures that the actions are cleared out.\n <div>\n <div className=\"container\">\n <DownloadListActionsRequired {...props} />\n </div>\n </div>\n )}\n {data?.numberOfFilesRequiringAction === 0 && (\n <div className={styles.placeholder}>\n <div>No actions are currently required.</div>\n </div>\n )}\n </div>\n\n {selectedTabIndex == 1 && !isError && !isLoading && data && (\n <div>\n {data.numberOfFilesAvailableForDownload > 0 && (\n <div className={`container ${styles.DownloadListTabContent}`}>\n <h3 className={`${styles.sectionTitle} pageHeaderTitle`}>\n Bulk Download Options\n {data.sumOfFileSizesAvailableForDownload != null && (\n <Tooltip\n placement=\"right\"\n title={\n <>\n Total file size\n <br />\n Does not include files hosted outside Synapse\n </>\n }\n slotProps={{ tooltip: { sx: { maxWidth: 400 } } }}\n >\n <span className={styles.totalFileSize}>\n {calculateFriendlyFileSize(\n data.sumOfFileSizesAvailableForDownload,\n )}{' '}\n total*\n </span>\n </Tooltip>\n )}\n </h3>\n <div>\n <div className={styles.subSectionOverview}>\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"packagableFile\" /> Web Download (.ZIP)\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging >\n 0 && (\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingCreatePackageUI(true)\n }}\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Download Packages\n </Button>\n )}\n {data.numberOfFilesAvailableForDownloadAndEligibleForPackaging ==\n 0 && (\n <Tooltip\n title=\"You cannot create a .zip package because there are no eligible files.\"\n enterNextDelay={300}\n placement=\"top\"\n >\n <span>\n <Button\n variant=\"contained\"\n disabled\n startIcon={\n <IconSvg icon=\"download\" wrap={false} />\n }\n >\n Download Packages\n </Button>\n </span>\n </Tooltip>\n )}\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Only some files may be eligible for packaging as ZIP.\n Use the Individual Downloads tab, below, to download\n non-packageable files. \n <a\n href=\"https://help.synapse.org/docs/Downloading-Data-From-the-Synapse-UI.2004254837.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n More Information.\n </a>\n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n <ul>\n <li>Files are bundled into .ZIPs up to 1 GB each.</li>\n <li>\n Larger selections are split into multiple packages.\n </li>\n <li>\n Includes only files stored in Synapse native\n storage.\n </li>\n <li>\n Each package contains a CSV manifest with file\n annotations and metadata.\n </li>\n </ul>\n </Typography>\n </ComponentCollapse>\n </div>\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"code\" /> Programmatic Download\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n <Button\n variant=\"contained\"\n onClick={() => {\n setIsShowingModal(true)\n }}\n startIcon={<IconSvg icon=\"download\" wrap={false} />}\n >\n Get R / Python / CLI Code\n </Button>\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Use our Python, R, or command line clients to download\n files quickly. \n <a\n href=\"https://help.synapse.org/docs/Downloading-Data-Programmatically.2003796248.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n More Information.\n </a>\n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n <ul>\n <li>Requires a client (R, Python, or CLI).</li>\n <li>\n No limits on individual file size or total download\n size.\n </li>\n <li>\n Includes files stored both on and off Synapse native\n storage.\n </li>\n <li>\n Downloads include a CSV manifest with file\n annotations and metadata.\n </li>\n </ul>\n </Typography>\n </ComponentCollapse>\n </div>\n {isDownloadAllEnabled &&\n data.numberOfFilesAvailableForDownloadAndEligibleForPackaging <\n data.numberOfFilesAvailableForDownload && (\n <div className={styles.subSection}>\n <div className={styles.subSectionHeader}>\n <div className={styles.headline}>\n <Typography variant={'headline3'}>\n <IconSvg icon=\"multiFile\" /> Multi-file Download\n </Typography>\n </div>\n <div className={styles.subSectionActions}>\n <div className={styles.ineligibleDownloadContainer}>\n <DownloadIneligibleForPackagingFilesFromListButton />\n </div>\n </div>\n </div>\n <ComponentCollapse\n component={\n <Typography variant={'body1'} component={'div'}>\n Files which <strong>aren't</strong> included in a\n ZIP package may be downloaded as a multi-file\n download. \n </Typography>\n }\n collapseBoxSx={{\n backgroundColor: 'transparent',\n p: 0,\n mt: '15px',\n }}\n componentContainerSx={{\n backgroundColor: 'transparent',\n p: 0,\n }}\n iconSx={{ width: '25px', height: '25px' }}\n >\n <Typography\n variant={'body1'}\n component={'div'}\n sx={{ marginBottom: '15px' }}\n >\n Clicking “Start Multi-file Download” initiates a\n download of all files in your Download List that\n can’t be bundled into a ZIP—such as large files or\n external links—in one step. Files are saved one by\n one with clear progress updates, automatic handling\n of duplicate names, and retry support if something\n fails. You can cancel anytime.\n <br />\n <br />\n Note: in some browsers, files download individually\n to your default Downloads folder instead of a\n selected location.\n </Typography>\n </ComponentCollapse>\n </div>\n )}\n </div>\n </div>\n\n <div>\n {isShowingCreatePackageUI && (\n <div ref={createPackageRef}>\n <CreatePackageV2\n onPackageCreation={() => {\n setIsShowingDownloadSuccessAlert(true)\n }}\n />\n </div>\n )}\n <h3 className={`${styles.sectionTitle} pageHeaderTitle`}>\n Download Individual Files\n </h3>\n <div className={styles.tabsContainer}>\n <ul className={styles.navTabs}>\n <li className={styles.navLabel}>View:</li>\n {filterTabs.map((tab, index) => (\n <li\n key={tab.label}\n className={`${styles.navItem}${\n selectedFilterTabIndex === index\n ? ` ${styles.active}`\n : ''\n }`}\n aria-selected={selectedFilterTabIndex === index}\n >\n <button\n onClick={() => setSelectedFilterTabIndex(index)}\n >\n {tab.label}\n {!isError && !isLoading && data && (\n <span className={styles.fileCount}>\n {getFilterCount(data, tab.filter)}\n </span>\n )}\n </button>\n </li>\n ))}\n </ul>\n </div>\n\n <div className={styles.availableForDownloadTableContainer}>\n <AvailableForDownloadTable\n key={selectedFilter ?? 'all'}\n filter={selectedFilter}\n />\n </div>\n </div>\n </div>\n )}\n {data.numberOfFilesAvailableForDownload === 0 && (\n <div className={styles.placeholder}>\n <Typography variant=\"body1Italic\">\n Your Download List is currently empty.\n </Typography>\n </div>\n )}\n </div>\n )}\n <FullWidthAlert\n show={isShowingDownloadSuccessAlert}\n variant=\"success\"\n title=\"Package Created\"\n description=\"A package has been created with eligible files. The items contained in this .zip file have been removed from your list. If your package is over 1GB, you will need to create multiple packages.\"\n autoCloseAfterDelayInSeconds={10}\n onClose={() => {\n setIsShowingDownloadSuccessAlert(false)\n }}\n />\n {isShowingModal && (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={() => setIsShowingModal(false)}\n title=\"Download Programmatically\"\n pythonCode={pythonDownloadCode}\n cliCode={cliDownloadCode}\n // rCode={rDownloadCode}\n />\n )}\n </div>\n )\n}\n\nexport default DownloadCartPage\n"],"names":["pythonDownloadCode","PYTHON_CLIENT_IMPORT_AND_LOGIN","cliDownloadCode","filterTabs","DownloadCartPage","props","accessToken","useSynapseContext","selectedTabIndex","setSelectedTabIndex","useState","selectedFilterTabIndex","setSelectedFilterTabIndex","selectedFilter","isShowingCreatePackageUI","setIsShowingCreatePackageUI","createPackageRef","useRef","useEffect","isShowingModal","setIsShowingModal","isShowingDownloadSuccessAlert","setIsShowingDownloadSuccessAlert","error","setError","isDownloadAllEnabled","useGetFeatureFlag","FeatureFlagEnum","data","isLoading","isError","newError","refetch","useGetDownloadListStatistics","getFilterCount","filter","jsx","ErrorBanner","clearDownloadList","SynapseClient","jsxs","styles","Tooltip","Button","DeleteTwoTone","DownloadListActionsRequired","Fragment","calculateFriendlyFileSize","Typography","IconSvg","ComponentCollapse","DownloadIneligibleForPackagingFilesFromListButton","CreatePackageV2","tab","index","AvailableForDownloadTable","FullWidthAlert","ProgrammaticInstructionsModal"],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
@use '../../style/abstracts/mixins' as SrcMixins;
|
|
2
|
+
|
|
3
|
+
.DownloadCartPage {
|
|
4
|
+
.description {
|
|
5
|
+
max-width: 700px;
|
|
6
|
+
padding-top: 10px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.tabsContainer {
|
|
10
|
+
border-bottom: 4px solid #dcdcdc;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.pageHeader {
|
|
14
|
+
background-color: color-mix(
|
|
15
|
+
in srgb,
|
|
16
|
+
var(--synapse-secondary-action-color) 10%,
|
|
17
|
+
transparent
|
|
18
|
+
);
|
|
19
|
+
padding: 25px 0px 30px 0px;
|
|
20
|
+
.grid {
|
|
21
|
+
display: grid;
|
|
22
|
+
grid-template-columns: auto 235px;
|
|
23
|
+
|
|
24
|
+
* {
|
|
25
|
+
vertical-align: bottom;
|
|
26
|
+
align-self: center;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@media (max-width: 768px) {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.navTabs {
|
|
37
|
+
border-bottom: 0px;
|
|
38
|
+
padding-top: 20px;
|
|
39
|
+
margin-bottom: 0px;
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-wrap: nowrap;
|
|
42
|
+
height: 70px;
|
|
43
|
+
align-items: center;
|
|
44
|
+
list-style: none;
|
|
45
|
+
margin-block-start: 0;
|
|
46
|
+
padding-inline-start: 0px;
|
|
47
|
+
|
|
48
|
+
.active {
|
|
49
|
+
padding-top: 5px;
|
|
50
|
+
border-bottom: 5px solid;
|
|
51
|
+
border-bottom-color: var(--synapse-secondary-action-color);
|
|
52
|
+
|
|
53
|
+
button {
|
|
54
|
+
color: #515359;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.navLabel {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
font-size: 18px;
|
|
62
|
+
font-weight: 700;
|
|
63
|
+
white-space: nowrap;
|
|
64
|
+
height: 50px;
|
|
65
|
+
padding-bottom: 26px;
|
|
66
|
+
padding-right: 60px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.navItem {
|
|
70
|
+
color: var(--synapse-gray-700);
|
|
71
|
+
font-weight: bold;
|
|
72
|
+
height: 50px;
|
|
73
|
+
text-transform: uppercase;
|
|
74
|
+
text-align: center;
|
|
75
|
+
margin: 4px 50px 5px 0px;
|
|
76
|
+
padding-bottom: 50px;
|
|
77
|
+
button {
|
|
78
|
+
font-size: 18px;
|
|
79
|
+
border-width: 0;
|
|
80
|
+
//increase click area
|
|
81
|
+
width: 100%;
|
|
82
|
+
height: 100%;
|
|
83
|
+
padding-bottom: 10px;
|
|
84
|
+
|
|
85
|
+
.fileCount {
|
|
86
|
+
font-size: 14px;
|
|
87
|
+
font-weight: 400;
|
|
88
|
+
margin-left: 5px;
|
|
89
|
+
background-color: var(--synapse-gray-200);
|
|
90
|
+
border-radius: 6px;
|
|
91
|
+
padding: 2px 6px;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// make design adjustments for mobile
|
|
97
|
+
@media (max-width: 768px) {
|
|
98
|
+
height: auto;
|
|
99
|
+
flex-direction: column;
|
|
100
|
+
|
|
101
|
+
.navItem button {
|
|
102
|
+
font-size: 15px;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.sectionTitle {
|
|
108
|
+
padding-top: 30px;
|
|
109
|
+
padding-bottom: 20px;
|
|
110
|
+
|
|
111
|
+
.totalFileSize {
|
|
112
|
+
font-size: 18px;
|
|
113
|
+
font-weight: 400;
|
|
114
|
+
margin-left: 16px;
|
|
115
|
+
background-color: var(--synapse-secondary-action-color);
|
|
116
|
+
border-radius: 6px;
|
|
117
|
+
padding: 2px 6px;
|
|
118
|
+
color: white;
|
|
119
|
+
|
|
120
|
+
@media (max-width: 768px) {
|
|
121
|
+
display: block;
|
|
122
|
+
margin-left: 0;
|
|
123
|
+
margin-top: 8px;
|
|
124
|
+
text-align: center;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
.subSectionContainer {
|
|
129
|
+
display: flex;
|
|
130
|
+
|
|
131
|
+
.actionsRequiredTitle {
|
|
132
|
+
padding-top: 30px;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.DownloadListTabContent {
|
|
137
|
+
.subSectionOverview {
|
|
138
|
+
display: grid;
|
|
139
|
+
grid-template-columns: 1fr 1fr;
|
|
140
|
+
gap: 7px;
|
|
141
|
+
|
|
142
|
+
> *:nth-child(n + 3) {
|
|
143
|
+
grid-column: 1 / -1;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// make design adjustments for mobile
|
|
148
|
+
@media (max-width: 1000px) {
|
|
149
|
+
.subSectionOverview {
|
|
150
|
+
grid-template-columns: 1fr;
|
|
151
|
+
|
|
152
|
+
> *:nth-child(n + 3) {
|
|
153
|
+
grid-column: unset;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.headline {
|
|
157
|
+
font-size: 16px;
|
|
158
|
+
justify-content: center;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
:global(.MuiButton-root) {
|
|
162
|
+
display: flex;
|
|
163
|
+
margin: auto;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
&__explore-all {
|
|
170
|
+
text-align: center;
|
|
171
|
+
padding-top: 20px;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.placeholder {
|
|
175
|
+
@include SrcMixins.placeholder;
|
|
176
|
+
margin-top: 30px;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.subSection {
|
|
180
|
+
background-color: var(--synapse-gray-200);
|
|
181
|
+
padding: 30px;
|
|
182
|
+
display: flex;
|
|
183
|
+
flex-direction: column;
|
|
184
|
+
gap: 12px;
|
|
185
|
+
|
|
186
|
+
.subSectionHeader {
|
|
187
|
+
display: flex;
|
|
188
|
+
align-items: center;
|
|
189
|
+
justify-content: space-between;
|
|
190
|
+
gap: 16px;
|
|
191
|
+
|
|
192
|
+
@media (max-width: 768px) {
|
|
193
|
+
flex-direction: column;
|
|
194
|
+
align-items: flex-start;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.subSectionActions {
|
|
199
|
+
display: flex;
|
|
200
|
+
align-items: center;
|
|
201
|
+
gap: 8px;
|
|
202
|
+
flex-shrink: 0;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.hidden {
|
|
208
|
+
display: none;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.availableForDownloadTableContainer {
|
|
212
|
+
padding-top: 30px;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.ineligibleDownloadContainer {
|
|
216
|
+
margin-top: 1rem;
|
|
217
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import './DownloadCartPage.css';const e = "_DownloadCartPage_1kdiv_5", n = "_tabsContainer_1kdiv_9", i = "_pageHeader_1kdiv_12", o = "_grid_1kdiv_16", t = "_navTabs_1kdiv_30", a = "_active_1kdiv_42", _ = "_navLabel_1kdiv_50", d = "_navItem_1kdiv_60", l = "_fileCount_1kdiv_76", s = "_sectionTitle_1kdiv_93", c = "_totalFileSize_1kdiv_97", v = "_DownloadListTabContent_1kdiv_120", b = "_subSectionOverview_1kdiv_120", r = "_headline_1kdiv_135", k = "_placeholder_1kdiv_148", C = "_subSection_1kdiv_114", u = "_subSectionHeader_1kdiv_166", w = "_subSectionActions_1kdiv_178", S = "_hidden_1kdiv_185", g = "_availableForDownloadTableContainer_1kdiv_189", D = "_ineligibleDownloadContainer_1kdiv_193", T = {
|
|
2
|
+
DownloadCartPage: e,
|
|
3
|
+
tabsContainer: n,
|
|
4
|
+
pageHeader: i,
|
|
5
|
+
grid: o,
|
|
6
|
+
navTabs: t,
|
|
7
|
+
active: a,
|
|
8
|
+
navLabel: _,
|
|
9
|
+
navItem: d,
|
|
10
|
+
fileCount: l,
|
|
11
|
+
sectionTitle: s,
|
|
12
|
+
totalFileSize: c,
|
|
13
|
+
DownloadListTabContent: v,
|
|
14
|
+
subSectionOverview: b,
|
|
15
|
+
headline: r,
|
|
16
|
+
placeholder: k,
|
|
17
|
+
subSection: C,
|
|
18
|
+
subSectionHeader: u,
|
|
19
|
+
subSectionActions: w,
|
|
20
|
+
hidden: S,
|
|
21
|
+
availableForDownloadTableContainer: g,
|
|
22
|
+
ineligibleDownloadContainer: D
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
e as DownloadCartPage,
|
|
26
|
+
v as DownloadListTabContent,
|
|
27
|
+
a as active,
|
|
28
|
+
g as availableForDownloadTableContainer,
|
|
29
|
+
T as default,
|
|
30
|
+
l as fileCount,
|
|
31
|
+
o as grid,
|
|
32
|
+
r as headline,
|
|
33
|
+
S as hidden,
|
|
34
|
+
D as ineligibleDownloadContainer,
|
|
35
|
+
d as navItem,
|
|
36
|
+
_ as navLabel,
|
|
37
|
+
t as navTabs,
|
|
38
|
+
i as pageHeader,
|
|
39
|
+
k as placeholder,
|
|
40
|
+
s as sectionTitle,
|
|
41
|
+
C as subSection,
|
|
42
|
+
w as subSectionActions,
|
|
43
|
+
u as subSectionHeader,
|
|
44
|
+
b as subSectionOverview,
|
|
45
|
+
n as tabsContainer,
|
|
46
|
+
c as totalFileSize
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=DownloadCartPage.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DownloadCartPage.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -37,7 +37,7 @@ function y(m) {
|
|
|
37
37
|
s > 0 && /* @__PURE__ */ e(
|
|
38
38
|
f,
|
|
39
39
|
{
|
|
40
|
-
title: "This is the total size of all files in the Download
|
|
40
|
+
title: "This is the total size of all files in the Download List that are available to download.",
|
|
41
41
|
enterNextDelay: h,
|
|
42
42
|
placement: "top",
|
|
43
43
|
children: /* @__PURE__ */ e("span", { className: "item", children: d(s) })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadDetails.js","sources":["../../../src/components/DownloadCart/DownloadDetails.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { Box, Tooltip } from '@mui/material'\nimport pluralize from 'pluralize'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\nexport type DownloadDetailsProps = {\n numFiles: number\n numPackagableFiles: number\n numBytes: number\n}\n\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numPackagableFiles, numBytes } = props\n const numIneligibleFiles = numFiles - numPackagableFiles\n const isInactive = numFiles === 0\n const iconClassName = isInactive ? 'SRC-inactive' : 'SRC-primary-text-color'\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'start ',\n gap: '25px',\n fontWeight: 'bold',\n svg: {\n mr: '5px',\n },\n }}\n >\n <span>\n {!isInactive && (\n <>\n {numFiles.toLocaleString()} {pluralize('File', numFiles)}\n </>\n )}\n </span>\n <span>\n <span className={iconClassName}>\n <IconSvg wrap={false} icon=\"packagableFile\" />\n </span>\n {!isInactive && (\n <>\n {numPackagableFiles.toLocaleString()}{' '}\n {pluralize('File', numPackagableFiles)} eligible for packaging\n </>\n )}\n </span>\n {numBytes > 0 && (\n <Tooltip\n title=\"This is the total size of all files in the Download
|
|
1
|
+
{"version":3,"file":"DownloadDetails.js","sources":["../../../src/components/DownloadCart/DownloadDetails.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { Box, Tooltip } from '@mui/material'\nimport pluralize from 'pluralize'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\nexport type DownloadDetailsProps = {\n numFiles: number\n numPackagableFiles: number\n numBytes: number\n}\n\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numPackagableFiles, numBytes } = props\n const numIneligibleFiles = numFiles - numPackagableFiles\n const isInactive = numFiles === 0\n const iconClassName = isInactive ? 'SRC-inactive' : 'SRC-primary-text-color'\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'start ',\n gap: '25px',\n fontWeight: 'bold',\n svg: {\n mr: '5px',\n },\n }}\n >\n <span>\n {!isInactive && (\n <>\n {numFiles.toLocaleString()} {pluralize('File', numFiles)}\n </>\n )}\n </span>\n <span>\n <span className={iconClassName}>\n <IconSvg wrap={false} icon=\"packagableFile\" />\n </span>\n {!isInactive && (\n <>\n {numPackagableFiles.toLocaleString()}{' '}\n {pluralize('File', numPackagableFiles)} eligible for packaging\n </>\n )}\n </span>\n {numBytes > 0 && (\n <Tooltip\n title=\"This is the total size of all files in the Download List that are available to download.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span className=\"item\">{calculateFriendlyFileSize(numBytes)}</span>\n </Tooltip>\n )}\n {numIneligibleFiles > 0 && (\n <span className=\"item\">\n <span className={`SRC-warning-color`}>\n <IconSvg icon=\"warningOutlined\" />\n </span>\n {!isInactive && (\n <>\n {numIneligibleFiles.toLocaleString()}{' '}\n {pluralize('File', numIneligibleFiles)} ineligible for packaging\n </>\n )}\n </span>\n )}\n </Box>\n )\n}\n"],"names":["DownloadDetails","props","numFiles","numPackagableFiles","numBytes","numIneligibleFiles","isInactive","iconClassName","jsxs","Box","jsx","Fragment","pluralize","IconSvg","Tooltip","TOOLTIP_DELAY_SHOW","calculateFriendlyFileSize"],"mappings":";;;;;;AAYA,SAAwBA,EAAgBC,GAA6B;AACnE,QAAM,EAAE,UAAAC,GAAU,oBAAAC,GAAoB,UAAAC,EAAA,IAAaH,GAC7CI,IAAqBH,IAAWC,GAChCG,IAAaJ,MAAa,GAC1BK,IAAgBD,IAAa,iBAAiB;AACpD,SACE,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,KAAK;AAAA,QACL,YAAY;AAAA,QACZ,KAAK;AAAA,UACH,IAAI;AAAA,QAAA;AAAA,MACN;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAC,EAAC,QAAA,EACE,UAAA,CAACJ,KACA,gBAAAE,EAAAG,GAAA,EACG,UAAA;AAAA,UAAAT,EAAS,eAAA;AAAA,UAAiB;AAAA,UAAEU,EAAU,QAAQV,CAAQ;AAAA,QAAA,EAAA,CACzD,EAAA,CAEJ;AAAA,0BACC,QAAA,EACC,UAAA;AAAA,UAAA,gBAAAQ,EAAC,QAAA,EAAK,WAAWH,GACf,UAAA,gBAAAG,EAACG,KAAQ,MAAM,IAAO,MAAK,iBAAA,CAAiB,EAAA,CAC9C;AAAA,UACC,CAACP,KACA,gBAAAE,EAAAG,GAAA,EACG,UAAA;AAAA,YAAAR,EAAmB,eAAA;AAAA,YAAkB;AAAA,YACrCS,EAAU,QAAQT,CAAkB;AAAA,YAAE;AAAA,UAAA,EAAA,CACzC;AAAA,QAAA,GAEJ;AAAA,QACCC,IAAW,KACV,gBAAAM;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,gBAAgBC;AAAA,YAChB,WAAU;AAAA,YAEV,4BAAC,QAAA,EAAK,WAAU,QAAQ,UAAAC,EAA0BZ,CAAQ,EAAA,CAAE;AAAA,UAAA;AAAA,QAAA;AAAA,QAG/DC,IAAqB,KACpB,gBAAAG,EAAC,QAAA,EAAK,WAAU,QACd,UAAA;AAAA,UAAA,gBAAAE,EAAC,UAAK,WAAW,qBACf,4BAACG,GAAA,EAAQ,MAAK,mBAAkB,EAAA,CAClC;AAAA,UACC,CAACP,KACA,gBAAAE,EAAAG,GAAA,EACG,UAAA;AAAA,YAAAN,EAAmB,eAAA;AAAA,YAAkB;AAAA,YACrCO,EAAU,QAAQP,CAAkB;AAAA,YAAE;AAAA,UAAA,EAAA,CACzC;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsxs as I, Fragment as
|
|
1
|
+
import { jsxs as I, Fragment as T, jsx as h } from "react/jsx-runtime";
|
|
2
2
|
import "../../utils/PermissionLevelToAccessType.js";
|
|
3
3
|
import "../../utils/SynapseConstants.js";
|
|
4
|
-
import { useState as X, useRef as ee, useCallback as
|
|
4
|
+
import { useState as X, useRef as ee, useCallback as C } from "react";
|
|
5
5
|
import { getFiles as te } from "../../synapse-client/SynapseClient.js";
|
|
6
6
|
import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
|
|
7
7
|
import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
|
|
@@ -17,7 +17,7 @@ import "@tanstack/query-core";
|
|
|
17
17
|
import "lodash-es/isEmpty";
|
|
18
18
|
import "lodash-es/isEqual";
|
|
19
19
|
import "lodash-es/xorWith";
|
|
20
|
-
import { Button as oe, Typography as
|
|
20
|
+
import { Button as oe, Typography as B, LinearProgress as re } from "@mui/material";
|
|
21
21
|
import { useGetAvailableFilesToDownloadInfinite as pe, useRemoveFilesFromDownloadList as he, useGetDownloadListStatistics as be } from "../../synapse-queries/download/useDownloadList.js";
|
|
22
22
|
import { useGetEntityQueryOptions as ge } from "../../synapse-queries/entity/useEntity.js";
|
|
23
23
|
import { implementsExternalFileHandleInterface as Fe } from "../../utils/types/IsType.js";
|
|
@@ -40,10 +40,10 @@ function ke(E) {
|
|
|
40
40
|
}
|
|
41
41
|
const ne = 50;
|
|
42
42
|
function dt(E) {
|
|
43
|
-
const { buttonText: le = "
|
|
43
|
+
const { buttonText: le = "Start Multi-file Download", variant: ie = "contained" } = E, { accessToken: k, isAuthenticated: N } = ye(), A = me(), q = ge(), [H, u] = X(!1), w = ee(!1), p = ee(!1), [i, b] = X(null), { data: U, status: j, hasNextPage: O, fetchNextPage: P, error: se } = pe(), { mutateAsync: K } = he(), { refetch: M } = be(), Q = C(
|
|
44
44
|
async (c) => {
|
|
45
45
|
if (!w.current) {
|
|
46
|
-
if (!c || !
|
|
46
|
+
if (!c || !N) {
|
|
47
47
|
u(!1);
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
@@ -56,9 +56,9 @@ function dt(E) {
|
|
|
56
56
|
f("No non-packageable files available to download", "info"), u(!1), w.current = !1;
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
|
-
const
|
|
59
|
+
const G = ke(window);
|
|
60
60
|
let $;
|
|
61
|
-
if (
|
|
61
|
+
if (G) {
|
|
62
62
|
const e = window;
|
|
63
63
|
try {
|
|
64
64
|
$ = await e.showDirectoryPicker({
|
|
@@ -149,7 +149,7 @@ function dt(E) {
|
|
|
149
149
|
bytesDownloaded: 0,
|
|
150
150
|
totalBytes: 0
|
|
151
151
|
} : null
|
|
152
|
-
), !
|
|
152
|
+
), !G) {
|
|
153
153
|
const r = await z(
|
|
154
154
|
o,
|
|
155
155
|
l
|
|
@@ -178,8 +178,8 @@ function dt(E) {
|
|
|
178
178
|
let Z = 0;
|
|
179
179
|
try {
|
|
180
180
|
for (; ; ) {
|
|
181
|
-
const { done:
|
|
182
|
-
if (
|
|
181
|
+
const { done: S, value: J } = await g.read();
|
|
182
|
+
if (S) break;
|
|
183
183
|
Z += J.length, await v.write(J), b(
|
|
184
184
|
(V) => V ? {
|
|
185
185
|
...V,
|
|
@@ -187,8 +187,8 @@ function dt(E) {
|
|
|
187
187
|
} : null
|
|
188
188
|
);
|
|
189
189
|
}
|
|
190
|
-
} catch (
|
|
191
|
-
throw await v.abort(),
|
|
190
|
+
} catch (S) {
|
|
191
|
+
throw await v.abort(), S;
|
|
192
192
|
} finally {
|
|
193
193
|
await v.close();
|
|
194
194
|
}
|
|
@@ -297,7 +297,7 @@ function dt(E) {
|
|
|
297
297
|
versionNumber: e.versionNumber
|
|
298
298
|
})
|
|
299
299
|
)
|
|
300
|
-
}), await
|
|
300
|
+
}), await M(), window.scrollTo({ top: 0, behavior: "smooth" })), p.current ? f(
|
|
301
301
|
`Download cancelled. ${y} file${y !== 1 ? "s were" : " was"} downloaded before cancellation.`,
|
|
302
302
|
"info"
|
|
303
303
|
) : y > 0 ? f(
|
|
@@ -315,22 +315,22 @@ function dt(E) {
|
|
|
315
315
|
},
|
|
316
316
|
[
|
|
317
317
|
k,
|
|
318
|
-
|
|
318
|
+
N,
|
|
319
319
|
A,
|
|
320
320
|
q,
|
|
321
321
|
K,
|
|
322
|
-
|
|
322
|
+
M
|
|
323
323
|
]
|
|
324
|
-
), ce =
|
|
325
|
-
if (!
|
|
324
|
+
), ce = C(async () => {
|
|
325
|
+
if (!H) {
|
|
326
326
|
u(!0);
|
|
327
327
|
try {
|
|
328
328
|
let c = O, s = U;
|
|
329
|
-
for (; c &&
|
|
330
|
-
const n = await
|
|
329
|
+
for (; c && P; ) {
|
|
330
|
+
const n = await P();
|
|
331
331
|
c = n.hasNextPage, n.data && (s = n.data);
|
|
332
332
|
}
|
|
333
|
-
j === "success" && s ?
|
|
333
|
+
j === "success" && s ? Q(s) : (u(!1), w.current = !1, f(
|
|
334
334
|
"Failed to load download list. Please try again.",
|
|
335
335
|
"danger"
|
|
336
336
|
));
|
|
@@ -341,27 +341,27 @@ function dt(E) {
|
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
343
|
}, [
|
|
344
|
-
P,
|
|
345
|
-
O,
|
|
346
344
|
H,
|
|
345
|
+
O,
|
|
346
|
+
P,
|
|
347
347
|
j,
|
|
348
348
|
U,
|
|
349
|
-
|
|
350
|
-
]),
|
|
349
|
+
Q
|
|
350
|
+
]), W = C(() => {
|
|
351
351
|
p.current = !0, b(null), u(!1), w.current = !1;
|
|
352
352
|
}, []);
|
|
353
|
-
return se ? null : /* @__PURE__ */ I(
|
|
353
|
+
return se ? null : /* @__PURE__ */ I(T, { children: [
|
|
354
354
|
/* @__PURE__ */ h(
|
|
355
355
|
ve,
|
|
356
356
|
{
|
|
357
357
|
open: !!i,
|
|
358
358
|
title: "Downloading Files",
|
|
359
359
|
hasCloseButton: !1,
|
|
360
|
-
onCancel:
|
|
360
|
+
onCancel: W,
|
|
361
361
|
maxWidth: "sm",
|
|
362
|
-
content: i ? /* @__PURE__ */ I(
|
|
362
|
+
content: i ? /* @__PURE__ */ I(T, { children: [
|
|
363
363
|
/* @__PURE__ */ I(
|
|
364
|
-
|
|
364
|
+
B,
|
|
365
365
|
{
|
|
366
366
|
variant: "body2",
|
|
367
367
|
color: "text.secondary",
|
|
@@ -376,8 +376,8 @@ function dt(E) {
|
|
|
376
376
|
]
|
|
377
377
|
}
|
|
378
378
|
),
|
|
379
|
-
/* @__PURE__ */ h(
|
|
380
|
-
i.totalBytes > 0 && /* @__PURE__ */ I(
|
|
379
|
+
/* @__PURE__ */ h(B, { variant: "body2", noWrap: !0, gutterBottom: !0, children: i.currentFile }),
|
|
380
|
+
i.totalBytes > 0 && /* @__PURE__ */ I(T, { children: [
|
|
381
381
|
/* @__PURE__ */ h(
|
|
382
382
|
re,
|
|
383
383
|
{
|
|
@@ -388,7 +388,7 @@ function dt(E) {
|
|
|
388
388
|
}
|
|
389
389
|
),
|
|
390
390
|
/* @__PURE__ */ I(
|
|
391
|
-
|
|
391
|
+
B,
|
|
392
392
|
{
|
|
393
393
|
variant: "body2",
|
|
394
394
|
color: "text.secondary",
|
|
@@ -407,7 +407,7 @@ function dt(E) {
|
|
|
407
407
|
] }),
|
|
408
408
|
i.totalBytes === 0 && /* @__PURE__ */ h(re, { sx: { my: 2 }, "aria-label": "Download progress" })
|
|
409
409
|
] }) : null,
|
|
410
|
-
actions: /* @__PURE__ */ h(oe, { variant: "outlined", color: "error", onClick:
|
|
410
|
+
actions: /* @__PURE__ */ h(oe, { variant: "outlined", color: "error", onClick: W, children: "Cancel" }),
|
|
411
411
|
DialogProps: {
|
|
412
412
|
"aria-describedby": "download-progress-description",
|
|
413
413
|
disableEscapeKeyDown: !1
|
|
@@ -421,7 +421,7 @@ function dt(E) {
|
|
|
421
421
|
onClick: () => {
|
|
422
422
|
ce();
|
|
423
423
|
},
|
|
424
|
-
loading:
|
|
424
|
+
loading: H,
|
|
425
425
|
startIcon: /* @__PURE__ */ h(De, {}),
|
|
426
426
|
children: le
|
|
427
427
|
}
|