synapse-react-client 4.0.1 → 4.0.3-b

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.
Files changed (289) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/assets/icons/AwardScroll.d.ts +5 -0
  3. package/dist/assets/icons/AwardScroll.d.ts.map +1 -0
  4. package/dist/assets/icons/AwardScroll.js +78 -0
  5. package/dist/assets/icons/AwardScroll.js.map +1 -0
  6. package/dist/assets/icons/Baseline.d.ts +5 -0
  7. package/dist/assets/icons/Baseline.d.ts.map +1 -0
  8. package/dist/assets/icons/Baseline.js +43 -0
  9. package/dist/assets/icons/Baseline.js.map +1 -0
  10. package/dist/assets/icons/Challenge.svg +13 -0
  11. package/dist/assets/icons/Challenge.svg.js +7 -0
  12. package/dist/assets/icons/Challenge.svg.js.map +1 -0
  13. package/dist/assets/icons/ClappingHands.d.ts +5 -0
  14. package/dist/assets/icons/ClappingHands.d.ts.map +1 -0
  15. package/dist/assets/icons/ClappingHands.js +106 -0
  16. package/dist/assets/icons/ClappingHands.js.map +1 -0
  17. package/dist/assets/icons/DNA_Two.svg +0 -0
  18. package/dist/assets/icons/Data2.svg +0 -0
  19. package/dist/assets/icons/HandWithMoney.d.ts +5 -0
  20. package/dist/assets/icons/HandWithMoney.d.ts.map +1 -0
  21. package/dist/assets/icons/HandWithMoney.js +15 -0
  22. package/dist/assets/icons/HandWithMoney.js.map +1 -0
  23. package/dist/assets/icons/MultiFile.d.ts +5 -0
  24. package/dist/assets/icons/MultiFile.d.ts.map +1 -0
  25. package/dist/assets/icons/MultiFile.js +8 -0
  26. package/dist/assets/icons/MultiFile.js.map +1 -0
  27. package/dist/assets/icons/MultiFile.svg +4 -0
  28. package/dist/assets/icons/MultiFile.svg.js +7 -0
  29. package/dist/assets/icons/MultiFile.svg.js.map +1 -0
  30. package/dist/assets/icons/OpenBook.d.ts +5 -0
  31. package/dist/assets/icons/OpenBook.d.ts.map +1 -0
  32. package/dist/assets/icons/OpenBook.js +99 -0
  33. package/dist/assets/icons/OpenBook.js.map +1 -0
  34. package/dist/assets/icons/Podium.d.ts +5 -0
  35. package/dist/assets/icons/Podium.d.ts.map +1 -0
  36. package/dist/assets/icons/Podium.js +36 -0
  37. package/dist/assets/icons/Podium.js.map +1 -0
  38. package/dist/assets/icons/RosetteRibbon.d.ts +5 -0
  39. package/dist/assets/icons/RosetteRibbon.d.ts.map +1 -0
  40. package/dist/assets/icons/RosetteRibbon.js +36 -0
  41. package/dist/assets/icons/RosetteRibbon.js.map +1 -0
  42. package/dist/assets/icons/StarTrophy.d.ts +5 -0
  43. package/dist/assets/icons/StarTrophy.d.ts.map +1 -0
  44. package/dist/assets/icons/StarTrophy.js +99 -0
  45. package/dist/assets/icons/StarTrophy.js.map +1 -0
  46. package/dist/assets/icons/ThreeStars.d.ts +5 -0
  47. package/dist/assets/icons/ThreeStars.d.ts.map +1 -0
  48. package/dist/assets/icons/ThreeStars.js +71 -0
  49. package/dist/assets/icons/ThreeStars.js.map +1 -0
  50. package/dist/assets/icons/UnpackagableFile.d.ts +5 -0
  51. package/dist/assets/icons/UnpackagableFile.d.ts.map +1 -0
  52. package/dist/assets/icons/UnpackagableFile.js +8 -0
  53. package/dist/assets/icons/UnpackagableFile.js.map +1 -0
  54. package/dist/assets/icons/UnpackagableFile.svg +4 -0
  55. package/dist/assets/icons/UnpackagableFile.svg.js +7 -0
  56. package/dist/assets/icons/UnpackagableFile.svg.js.map +1 -0
  57. package/dist/assets/mui_components/PackagableFile.d.ts.map +1 -1
  58. package/dist/assets/mui_components/PackagableFile.js +5 -4
  59. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  60. package/dist/assets/mui_components/PackagableFile.svg +3 -0
  61. package/dist/assets/mui_components/PackagableFile.svg.js +7 -0
  62. package/dist/assets/mui_components/PackagableFile.svg.js.map +1 -0
  63. package/dist/assets/themed_icons/index.d.ts +1 -2
  64. package/dist/assets/themed_icons/index.d.ts.map +1 -1
  65. package/dist/assets/themed_icons/index.js +8 -10
  66. package/dist/assets/themed_icons/index.js.map +1 -1
  67. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +4 -4
  68. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  69. package/dist/components/AddToDownloadListV2.js +10 -10
  70. package/dist/components/AddToDownloadListV2.js.map +1 -1
  71. package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
  72. package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -2
  73. package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
  74. package/dist/components/BasePortalCard/BasePortalCard.js +21 -28
  75. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  76. package/dist/components/BasePortalCard/BasePortalCard.module.scss +7 -1
  77. package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +11 -11
  78. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
  79. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +24 -24
  80. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  81. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +5 -1
  82. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  83. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  84. package/dist/components/CardContainerLogic/index.d.ts +1 -1
  85. package/dist/components/CardContainerLogic/index.d.ts.map +1 -1
  86. package/dist/components/CardDeck/TableQueryCardDeck.js +12 -9
  87. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  88. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +33 -33
  89. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  90. package/dist/components/ChangePassword/useChangePasswordFormState.js +5 -2
  91. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  92. package/dist/components/ComponentCollapse.d.ts +6 -10
  93. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  94. package/dist/components/ComponentCollapse.js +31 -35
  95. package/dist/components/ComponentCollapse.js.map +1 -1
  96. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +12 -9
  97. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  98. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +8 -3
  99. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  100. package/dist/components/DataGrid/SynapseGrid.js +8 -3
  101. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  102. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +8 -3
  103. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  104. package/dist/components/DirectDownload/DirectDownload.d.ts.map +1 -1
  105. package/dist/components/DirectDownload/DirectDownload.js +23 -23
  106. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  107. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts +6 -2
  108. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts.map +1 -1
  109. package/dist/components/DownloadCart/AvailableForDownloadTable.js +10 -8
  110. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  111. package/dist/components/DownloadCart/CreatePackageV2.css +1 -0
  112. package/dist/components/DownloadCart/CreatePackageV2.d.ts.map +1 -1
  113. package/dist/components/DownloadCart/CreatePackageV2.js +50 -46
  114. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  115. package/dist/components/DownloadCart/CreatePackageV2.module.scss +38 -0
  116. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js +14 -0
  117. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js.map +1 -0
  118. package/dist/components/DownloadCart/DownloadCartPage.css +1 -0
  119. package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
  120. package/dist/components/DownloadCart/DownloadCartPage.js +316 -186
  121. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  122. package/dist/components/DownloadCart/DownloadCartPage.module.scss +217 -0
  123. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js +48 -0
  124. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js.map +1 -0
  125. package/dist/components/DownloadCart/DownloadDetails.js +1 -1
  126. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  127. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +33 -33
  128. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  129. package/dist/components/DownloadCart/DownloadListTable.d.ts +4 -1
  130. package/dist/components/DownloadCart/DownloadListTable.d.ts.map +1 -1
  131. package/dist/components/DownloadCart/DownloadListTable.js +156 -236
  132. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  133. package/dist/components/DownloadCart/ShowDownloadV2.js +5 -5
  134. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  135. package/dist/components/Ecosystem/EcosystemSkeleton.js +8 -3
  136. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  137. package/dist/components/EntityDownloadButton/EntityDownloadButton.d.ts +3 -0
  138. package/dist/components/EntityDownloadButton/EntityDownloadButton.d.ts.map +1 -1
  139. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +113 -119
  140. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  141. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +3 -3
  142. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  143. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +6 -2
  144. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  145. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js +11 -8
  146. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  147. package/dist/components/FullWidthAlert/FullWidthAlert.d.ts +2 -2
  148. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  149. package/dist/components/GenericCard/GenericCard.d.ts +5 -5
  150. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  151. package/dist/components/GenericCard/GenericCard.js +117 -103
  152. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  153. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts +10 -0
  154. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts.map +1 -0
  155. package/dist/components/GenericCard/LabelMaybeWithIcon.js +33 -0
  156. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -0
  157. package/dist/components/GenericCard/SynapseCardLabel.d.ts +2 -1
  158. package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
  159. package/dist/components/GenericCard/SynapseCardLabel.js +86 -81
  160. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  161. package/dist/components/GenericCard/TableRowGenericCard.d.ts +7 -1
  162. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  163. package/dist/components/GenericCard/TableRowGenericCard.js +239 -202
  164. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  165. package/dist/components/HeaderCard.js +17 -13
  166. package/dist/components/HeaderCard.js.map +1 -1
  167. package/dist/components/Icon/Icon.js +52 -52
  168. package/dist/components/Icon/Icon.js.map +1 -1
  169. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  170. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  171. package/dist/components/IconSvg/IconSvg.js +215 -171
  172. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  173. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -0
  174. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  175. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +103 -102
  176. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  177. package/dist/components/StorybookComponentWrapper.js +6 -3
  178. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  179. package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
  180. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  181. package/dist/components/SynapseChat/SynapseChat.js +76 -67
  182. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  183. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +2 -1
  184. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  185. package/dist/components/SynapseChat/SynapseChatInteraction.js +83 -58
  186. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  187. package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
  188. package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
  189. package/dist/components/SynapseChat/SynapseChatMessage.js +16 -15
  190. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  191. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +12 -0
  192. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -0
  193. package/dist/components/SynapseChat/SynapsePortalChatDialog.js +30 -0
  194. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -0
  195. package/dist/components/SynapseChat/extractMessageFromTraceEvent.d.ts.map +1 -1
  196. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js +22 -16
  197. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  198. package/dist/components/SynapseChat/index.d.ts +2 -0
  199. package/dist/components/SynapseChat/index.d.ts.map +1 -1
  200. package/dist/components/SynapseChat/index.js +5 -3
  201. package/dist/components/SynapseChat/index.js.map +1 -1
  202. package/dist/components/SynapseChat/useChatState.d.ts +1 -1
  203. package/dist/components/SynapseChat/useChatState.d.ts.map +1 -1
  204. package/dist/components/SynapseChat/useChatState.js +10 -7
  205. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  206. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.d.ts.map +1 -1
  207. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +30 -32
  208. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  209. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.d.ts.map +1 -1
  210. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js +27 -30
  211. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  212. package/dist/components/SynapseHomepageV2/SynapseSearchChips.d.ts.map +1 -1
  213. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js +14 -17
  214. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  215. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  216. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +114 -115
  217. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  218. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.d.ts.map +1 -1
  219. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +39 -39
  220. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  221. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +18 -18
  222. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  223. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
  224. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +66 -64
  225. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  226. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +13 -13
  227. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  228. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js +9 -9
  229. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  230. package/dist/components/TextToComponentCollapse.d.ts +16 -0
  231. package/dist/components/TextToComponentCollapse.d.ts.map +1 -0
  232. package/dist/components/TextToComponentCollapse.js +29 -0
  233. package/dist/components/TextToComponentCollapse.js.map +1 -0
  234. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +8 -3
  235. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  236. package/dist/components/download_list/DownloadConfirmationUI.d.ts +1 -1
  237. package/dist/components/download_list/DownloadConfirmationUI.js +22 -22
  238. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  239. package/dist/components/download_list/DownloadConfirmationUtils.js +4 -4
  240. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  241. package/dist/components/index.js +85 -83
  242. package/dist/components/index.js.map +1 -1
  243. package/dist/components/row_renderers/ObservationCard.js +12 -11
  244. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  245. package/dist/components/row_renderers/utils/CardFooter.d.ts +1 -3
  246. package/dist/components/row_renderers/utils/CardFooter.d.ts.map +1 -1
  247. package/dist/components/row_renderers/utils/CardFooter.js +31 -45
  248. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  249. package/dist/components/table/CsvPreview/CsvPreview.js +8 -3
  250. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  251. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +8 -3
  252. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  253. package/dist/features/curator/GridPage/GridPage.js +8 -3
  254. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  255. package/dist/features/curator/GridPage/components/GridPageTitle.js +8 -3
  256. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  257. package/dist/index.js +137 -135
  258. package/dist/index.js.map +1 -1
  259. package/dist/style/abstracts/_functions.scss +0 -0
  260. package/dist/style/abstracts/_mixins.scss +0 -0
  261. package/dist/style/abstracts/_variables.scss +0 -0
  262. package/dist/style/base/_base.scss +0 -0
  263. package/dist/style/base/_fonts.scss +0 -0
  264. package/dist/style/base/_helpers.scss +0 -0
  265. package/dist/style/components/_all.scss +0 -1
  266. package/dist/style/components/_cards.scss +22 -0
  267. package/dist/style/components/_download-list-v2.scss +1 -1
  268. package/dist/style/components/_query-wrapper-plot-nav.scss +13 -0
  269. package/dist/style/main.css +1 -1
  270. package/dist/style/main.scss +0 -0
  271. package/dist/style/vendors/_normalize.scss +0 -0
  272. package/dist/tsconfig.build.tsbuildinfo +1 -1
  273. package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
  274. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  275. package/dist/utils/context/FullContextProvider.js +9 -9
  276. package/dist/utils/context/FullContextProvider.js.map +1 -1
  277. package/dist/utils/context/SynapseContext.d.ts.map +1 -1
  278. package/dist/utils/context/SynapseContext.js +1 -0
  279. package/dist/utils/context/SynapseContext.js.map +1 -1
  280. package/dist/utils/functions/SqlFunctions.d.ts +4 -0
  281. package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
  282. package/dist/utils/functions/SqlFunctions.js +25 -23
  283. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  284. package/package.json +25 -24
  285. package/dist/assets/themed_icons/Challenge.d.ts +0 -3
  286. package/dist/assets/themed_icons/Challenge.d.ts.map +0 -1
  287. package/dist/assets/themed_icons/Challenge.js +0 -25
  288. package/dist/assets/themed_icons/Challenge.js.map +0 -1
  289. package/dist/style/components/_download-cart-page.scss +0 -204
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadListTable.js","sources":["../../../src/components/DownloadCart/DownloadListTable.tsx"],"sourcesContent":["import {\n useGetAvailableFilesToDownloadInfinite,\n useRemoveFilesFromDownloadList,\n} from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Select, Tooltip } from '@mui/material'\nimport {\n AvailableFilter,\n DownloadListItem,\n DownloadListItemResult,\n Sort,\n SortField,\n} from '@sage-bionetworks/synapse-types'\nimport {\n CellContext,\n createColumnHelper,\n getCoreRowModel,\n Row,\n SortingState,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useErrorHandler } from 'react-error-boundary'\nimport FileEntityDirectDownload from '../DirectDownload/FileEntityDirectDownload'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { InteractiveCopyIdsIcon } from '../InteractiveCopyIdsIcon'\nimport { BlockingLoader, SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { SkeletonTable } from '../Skeleton'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { displayToast } from '../ToastMessage'\nimport { UserBadge } from '../UserCard/UserBadge'\nimport DirectProgrammaticDownload from './DirectProgrammaticDownload'\nimport DownloadListStats from './DownloadListStats'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\n\nexport const TESTING_TRASH_BTN_CLASS = 'TESTING_TRASH_BTN_CLASS'\n\nfunction notifyRemovedFromDownloadList(\n notificationTitle: string,\n fileName: string,\n) {\n displayToast(`${fileName} has been removed from your list.`, 'success', {\n title: notificationTitle,\n })\n}\n\nfunction RemoveFromDownloadListButton(props: {\n ctx: CellContext<DownloadListItemResult, any>\n}) {\n const { ctx } = props\n const { mutateAsync: removeFileFromDownloadList, isPending } =\n useRemoveFilesFromDownloadList({\n onSuccess: () =>\n displayToast(\n `${ctx.row.original.fileName} has been removed from your list.`,\n 'success',\n {\n title: 'File Removed',\n },\n ),\n })\n\n return (\n <Tooltip\n title=\"Remove from Download Cart\"\n placement=\"left\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <span className=\"removeItem\">\n <button\n className={TESTING_TRASH_BTN_CLASS}\n onClick={() => {\n void removeFileFromDownloadList({\n batchToRemove: [\n {\n fileEntityId: ctx.row.original.fileEntityId,\n versionNumber: ctx.row.original.versionNumber,\n },\n ],\n })\n }}\n >\n {isPending ? <SynapseSpinner /> : <IconSvg icon=\"removeCircle\" />}\n </button>\n </span>\n </Tooltip>\n )\n}\n\nconst columnHelper = createColumnHelper<DownloadListItemResult>()\nconst getColumns = (args: {\n removeItem: (item: DownloadListItem, fileName: string, title: string) => void\n onCopySynIds: () => void\n}) => {\n const { onCopySynIds, removeItem } = args\n return [\n columnHelper.accessor('isEligibleForPackaging', {\n header: () => <></>,\n cell: ctx => (\n <div>\n {ctx.getValue() && (\n <Tooltip\n title=\"Eligible for packaging\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"right\"\n >\n <span className=\"eligibileIcon\">\n <IconSvg wrap={false} icon=\"packagableFile\" />\n </span>\n </Tooltip>\n )}\n {!ctx.getValue() && (\n <Tooltip\n title=\"This file is ineligible for Web packaging because it is >100MB, or it is an external link, or it is not stored on Synapse native storage\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"right\"\n >\n <span className=\"ineligibileIcon\">\n <IconSvg wrap={false} icon=\"warningOutlined\" />\n </span>\n </Tooltip>\n )}\n </div>\n ),\n enableResizing: false,\n enableColumnFilter: false,\n size: 50,\n }),\n columnHelper.accessor('fileName', {\n header: props => <ColumnHeader {...props} title={'Name'} />,\n cell: ctx => (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${ctx.row.original.fileEntityId}.${ctx.row.original.versionNumber}`}\n >\n {ctx.getValue()}\n </a>\n ),\n enableColumnFilter: false,\n size: 160,\n }),\n columnHelper.accessor('fileSizeBytes', {\n header: props => <ColumnHeader {...props} title={'Size'} />,\n cell: ctx =>\n ctx.getValue() != null ? (\n calculateFriendlyFileSize(ctx.getValue())\n ) : (\n <></>\n ),\n enableColumnFilter: false,\n size: 100,\n }),\n columnHelper.accessor('fileEntityId', {\n header: props => (\n <ColumnHeader\n {...props}\n title={'SynID'}\n additionalButtons={\n <InteractiveCopyIdsIcon size={'small'} onCopy={onCopySynIds} />\n }\n />\n ),\n cell: ctx => `${ctx.getValue()}.${ctx.row.original.versionNumber}`,\n enableColumnFilter: false,\n size: 100,\n }),\n columnHelper.accessor('projectName', {\n header: props => <ColumnHeader {...props} title={'Project'} />,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('addedOn', {\n header: props => <ColumnHeader {...props} title={'Added On'} />,\n cell: ctx => formatDate(dayjs(ctx.getValue())),\n enableColumnFilter: false,\n }),\n columnHelper.accessor('createdBy', {\n header: props => <ColumnHeader {...props} title={'Created By'} />,\n cell: ctx => <UserBadge userId={ctx.getValue()} />,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('createdOn', {\n header: props => <ColumnHeader {...props} title={'Created On'} />,\n cell: ctx => formatDate(dayjs(ctx.getValue())),\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n cell: ctx => (\n <div className=\"actionsContainer\">\n <span className=\"downloadItem\">\n <FileEntityDirectDownload\n entityId={ctx.row.original.fileEntityId}\n entityVersionNumber={ctx.row.original.versionNumber}\n displayFileName={false}\n onClickCallback={(isExternalLink: boolean) => {\n // SWC-5944: remove the item from the download list, unless it's an external link.\n if (!isExternalLink) {\n removeItem(\n {\n fileEntityId: ctx.row.original.fileEntityId,\n versionNumber: ctx.row.original.versionNumber,\n },\n ctx.row.original.fileName,\n 'File Downloaded',\n )\n }\n }}\n />\n </span>\n <span className=\"programmaticAccessItem\">\n <DirectProgrammaticDownload\n entityId={ctx.row.original.fileEntityId}\n version={ctx.row.original.versionNumber}\n />\n </span>\n <RemoveFromDownloadListButton ctx={ctx} />\n </div>\n ),\n enableResizing: false,\n enableColumnFilter: false,\n size: 140,\n meta: {\n textAlign: 'center',\n },\n }),\n ]\n}\n\nfunction getSortApiRequestFromTableSortState(\n sortingState: SortingState,\n): Sort | undefined {\n if (sortingState.length === 0) {\n return undefined\n }\n const sort = sortingState[0]\n let field: SortField = 'addedOn'\n\n if (sort.id === 'fileName') {\n field = 'fileName'\n } else if (sort.id === 'fileSizeBytes') {\n field = 'fileSize'\n } else if (sort.id === 'fileEntityId') {\n field = 'synId'\n } else if (sort.id === 'projectName') {\n field = 'projectName'\n } else if (sort.id === 'addedOn') {\n field = 'addedOn'\n } else if (sort.id === 'createdBy') {\n field = 'createdBy'\n } else if (sort.id === 'createdOn') {\n field = 'createdOn'\n }\n\n return {\n field,\n direction: sort.desc ? 'DESC' : 'ASC',\n }\n}\n\nexport default function DownloadListTable() {\n const handleError = useErrorHandler()\n\n const [copyingAllSynapseIDs, setCopyingAllSynapseIDs] =\n useState<boolean>(false)\n const [tableSortState, setTableSortState] = useState<SortingState>([\n {\n desc: true,\n id: 'addedOn',\n },\n ])\n\n const [filter, setFilter] = useState<AvailableFilter | undefined>(undefined)\n const {\n data,\n status,\n isFetchingNextPage,\n isLoading,\n hasNextPage,\n fetchNextPage,\n isError,\n error: newError,\n } = useGetAvailableFilesToDownloadInfinite(\n getSortApiRequestFromTableSortState(tableSortState),\n filter,\n )\n\n useEffect(() => {\n if (isError && newError) {\n handleError(newError)\n }\n }, [isError, newError, handleError])\n\n const { mutateAsync: removeFileFromDownloadList } =\n useRemoveFilesFromDownloadList()\n\n const removeItem = useCallback(\n async (\n item: DownloadListItem,\n fileName: string,\n notificationTitle: string,\n ) => {\n await removeFileFromDownloadList({ batchToRemove: [item] })\n notifyRemovedFromDownloadList(notificationTitle, fileName)\n },\n [removeFileFromDownloadList],\n )\n\n const allRows = useMemo(\n () => data?.pages.flatMap(page => page.page) ?? [],\n [data?.pages],\n )\n\n const columns = useMemo(\n () =>\n getColumns({\n removeItem: (...args) => {\n void removeItem(...args)\n },\n onCopySynIds: () => {\n // trigger loading all pages of the download list table, and then copy all IDs to the clipboard\n setCopyingAllSynapseIDs(true)\n },\n }),\n [removeItem],\n )\n\n const table = useReactTable<DownloadListItemResult>({\n data: allRows,\n columns: columns,\n getCoreRowModel: getCoreRowModel(),\n manualSorting: true,\n onSortingChange: setTableSortState,\n state: {\n columnPinning: {\n right: ['actions'],\n },\n sorting: tableSortState,\n },\n columnResizeMode: 'onChange',\n meta: {\n getRowClassNames(row: Row<DownloadListItemResult>) {\n if (!row.original.isEligibleForPackaging) {\n return 'ineligibleForPackaging'\n }\n return ''\n },\n },\n })\n\n useEffect(() => {\n const copyAllSynapseIDs = () => {\n const synIDs = allRows\n .map((item: DownloadListItemResult) => {\n return `${item.fileEntityId}.${item.versionNumber}`\n })\n .join('\\n')\n copyStringToClipboard(synIDs).then(() => {\n displayToast('Successfully copied to clipboard')\n })\n setCopyingAllSynapseIDs(false)\n }\n\n if (\n status === 'success' &&\n !isFetchingNextPage &&\n hasNextPage &&\n fetchNextPage &&\n copyingAllSynapseIDs\n ) {\n void fetchNextPage()\n } else if (!hasNextPage && copyingAllSynapseIDs) {\n // We have all the data in allRows. Put it together and copy to the clipboard\n copyAllSynapseIDs()\n }\n }, [\n status,\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n copyingAllSynapseIDs,\n allRows,\n ])\n\n const getFilterDisplayText = (f: AvailableFilter) => {\n if (!f) {\n return 'All'\n } else if (f == 'eligibleForPackaging') {\n return 'Only Eligible'\n } else {\n return 'Only Ineligible'\n }\n }\n\n const availableFiltersArray: AvailableFilter[] = [\n undefined,\n 'eligibleForPackaging',\n 'ineligibleForPackaging',\n ]\n return (\n <div>\n <BlockingLoader show={copyingAllSynapseIDs} />\n <Box\n sx={{\n display: 'flex',\n flexDirection: {\n xs: 'column',\n md: 'row',\n },\n justifyContent: 'space-between',\n alignItems: 'center',\n py: '15px',\n rowGap: '15px',\n }}\n >\n <DownloadListStats />\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n alignItems: 'inherit',\n justifyContent: 'end',\n }}\n >\n <Box\n sx={{\n fontWeight: '700',\n fontSize: '14px',\n }}\n >\n Filter Files By\n </Box>\n <Box\n sx={{\n button: {\n width: '144px',\n },\n }}\n >\n <Select native fullWidth value={getFilterDisplayText(filter)}>\n {availableFiltersArray.map(availableFilter => (\n <option\n key={`${getFilterDisplayText(availableFilter)}-filter-option`}\n onClick={() => {\n setFilter(availableFilter)\n }}\n >\n {getFilterDisplayText(availableFilter)}\n </option>\n ))}\n </Select>\n </Box>\n </Box>\n </Box>\n {allRows.length > 0 && (\n <div className=\"DownloadListTableV2\">\n {/* TODO: This table can be very large, so it should be refactored to use row virtualization or discrete pagination */}\n <StyledTanStackTable table={table} fullWidth={false} />\n {hasNextPage && (\n <Box sx={{ display: 'flex', justifyContent: 'right' }}>\n <Button\n variant={'contained'}\n sx={{ my: 2, ml: 'auto' }}\n onClick={() => {\n void fetchNextPage()\n }}\n disabled={isFetchingNextPage}\n startIcon={isFetchingNextPage ? <SynapseSpinner /> : undefined}\n >\n {isFetchingNextPage ? 'Loading...' : 'Show More'}\n </Button>\n </Box>\n )}\n </div>\n )}\n {isLoading && <SkeletonTable numCols={5} numRows={3} />}\n </div>\n )\n}\n"],"names":["TESTING_TRASH_BTN_CLASS","notifyRemovedFromDownloadList","notificationTitle","fileName","displayToast","RemoveFromDownloadListButton","props","ctx","removeFileFromDownloadList","isPending","useRemoveFilesFromDownloadList","jsx","Tooltip","TOOLTIP_DELAY_SHOW","SynapseSpinner","IconSvg","columnHelper","createColumnHelper","getColumns","args","onCopySynIds","removeItem","Fragment","jsxs","ColumnHeader","PRODUCTION_ENDPOINT_CONFIG","calculateFriendlyFileSize","InteractiveCopyIdsIcon","formatDate","dayjs","UserBadge","FileEntityDirectDownload","isExternalLink","DirectProgrammaticDownload","getSortApiRequestFromTableSortState","sortingState","sort","field","DownloadListTable","handleError","useErrorHandler","copyingAllSynapseIDs","setCopyingAllSynapseIDs","useState","tableSortState","setTableSortState","filter","setFilter","data","status","isFetchingNextPage","isLoading","hasNextPage","fetchNextPage","isError","newError","useGetAvailableFilesToDownloadInfinite","useEffect","useCallback","item","allRows","useMemo","page","columns","table","useReactTable","getCoreRowModel","row","synIDs","copyStringToClipboard","getFilterDisplayText","f","availableFiltersArray","BlockingLoader","Box","DownloadListStats","Select","availableFilter","StyledTanStackTable","Button","SkeletonTable"],"mappings":"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"}
1
+ {"version":3,"file":"DownloadListTable.js","sources":["../../../src/components/DownloadCart/DownloadListTable.tsx"],"sourcesContent":["import {\n useGetAvailableFilesToDownloadInfinite,\n useRemoveFilesFromDownloadList,\n} from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Tooltip, Typography } from '@mui/material'\nimport {\n AvailableFilter,\n DownloadListItem,\n DownloadListItemResult,\n Sort,\n SortField,\n} from '@sage-bionetworks/synapse-types'\nimport {\n CellContext,\n createColumnHelper,\n getCoreRowModel,\n Row,\n SortingState,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useErrorHandler } from 'react-error-boundary'\nimport FileEntityDirectDownload from '../DirectDownload/FileEntityDirectDownload'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { InteractiveCopyIdsIcon } from '../InteractiveCopyIdsIcon'\nimport { BlockingLoader, SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { SkeletonTable } from '../Skeleton'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { displayToast } from '../ToastMessage'\nimport DirectProgrammaticDownload from './DirectProgrammaticDownload'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\n\nexport const TESTING_TRASH_BTN_CLASS = 'TESTING_TRASH_BTN_CLASS'\n\nfunction notifyRemovedFromDownloadList(\n notificationTitle: string,\n fileName: string,\n) {\n displayToast(`${fileName} has been removed from your list.`, 'success', {\n title: notificationTitle,\n })\n}\n\nfunction RemoveFromDownloadListButton(props: {\n ctx: CellContext<DownloadListItemResult, any>\n}) {\n const { ctx } = props\n const { mutateAsync: removeFileFromDownloadList, isPending } =\n useRemoveFilesFromDownloadList({\n onSuccess: () =>\n displayToast(\n `${ctx.row.original.fileName} has been removed from your list.`,\n 'success',\n {\n title: 'File Removed',\n },\n ),\n })\n\n return (\n <Tooltip\n title=\"Remove from Download List\"\n placement=\"left\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <span className=\"removeItem\">\n <button\n className={TESTING_TRASH_BTN_CLASS}\n onClick={() => {\n void removeFileFromDownloadList({\n batchToRemove: [\n {\n fileEntityId: ctx.row.original.fileEntityId,\n versionNumber: ctx.row.original.versionNumber,\n },\n ],\n })\n }}\n >\n {isPending ? <SynapseSpinner /> : <IconSvg icon=\"removeCircle\" />}\n </button>\n </span>\n </Tooltip>\n )\n}\n\nconst columnHelper = createColumnHelper<DownloadListItemResult>()\nconst getColumns = (args: {\n removeItem: (item: DownloadListItem, fileName: string, title: string) => void\n onCopySynIds: () => void\n}) => {\n const { onCopySynIds, removeItem } = args\n return [\n columnHelper.accessor('isEligibleForPackaging', {\n header: () => <></>,\n cell: ctx => (\n <div>\n {!ctx.getValue() && (\n <Tooltip\n title={\n <>\n This file can’t be packaged as a ZIP because it is {'>'}\n 100MB, or it is an external link, or it is not stored on\n Synapse native storage.\n <br />\n Try clicking the “download” icon at the end of the row, or\n download programmatically.\n </>\n }\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"right\"\n >\n <span className=\"ineligibileIcon\">\n <IconSvg wrap={false} icon=\"unpackagableFile\" />\n </span>\n </Tooltip>\n )}\n </div>\n ),\n enableResizing: false,\n enableColumnFilter: false,\n size: 50,\n }),\n columnHelper.accessor('fileName', {\n header: props => <ColumnHeader {...props} title={'Name'} />,\n cell: ctx => (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${ctx.row.original.fileEntityId}.${ctx.row.original.versionNumber}`}\n >\n {ctx.getValue()}\n </a>\n ),\n enableColumnFilter: false,\n size: 360,\n }),\n columnHelper.accessor('fileSizeBytes', {\n header: props => <ColumnHeader {...props} title={'Size'} />,\n cell: ctx =>\n ctx.getValue() != null && ctx.getValue() > 0 ? (\n calculateFriendlyFileSize(ctx.getValue())\n ) : (\n <Typography variant=\"smallText1\" sx={{ color: 'grey.600' }}>\n Unknown\n </Typography>\n ),\n enableColumnFilter: false,\n size: 117,\n }),\n columnHelper.accessor('fileEntityId', {\n header: props => (\n <ColumnHeader\n {...props}\n title={'SynID'}\n additionalButtons={\n <InteractiveCopyIdsIcon size={'small'} onCopy={onCopySynIds} />\n }\n />\n ),\n cell: ctx => `${ctx.getValue()}.${ctx.row.original.versionNumber}`,\n enableColumnFilter: false,\n size: 143,\n }),\n columnHelper.accessor('addedOn', {\n header: props => <ColumnHeader {...props} title={'Added On'} />,\n cell: ctx => formatDate(dayjs(ctx.getValue())),\n enableColumnFilter: false,\n size: 150,\n }),\n columnHelper.accessor('projectName', {\n header: props => <ColumnHeader {...props} title={'Project'} />,\n enableColumnFilter: false,\n size: 170,\n }),\n columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n cell: ctx => (\n <div className=\"actionsContainer\">\n <span className=\"downloadItem\">\n <FileEntityDirectDownload\n entityId={ctx.row.original.fileEntityId}\n entityVersionNumber={ctx.row.original.versionNumber}\n displayFileName={false}\n onClickCallback={(isExternalLink: boolean) => {\n // SWC-5944: remove the item from the download list, unless it's an external link.\n if (!isExternalLink) {\n removeItem(\n {\n fileEntityId: ctx.row.original.fileEntityId,\n versionNumber: ctx.row.original.versionNumber,\n },\n ctx.row.original.fileName,\n 'File Downloaded',\n )\n }\n }}\n />\n </span>\n <span className=\"programmaticAccessItem\">\n <DirectProgrammaticDownload\n entityId={ctx.row.original.fileEntityId}\n version={ctx.row.original.versionNumber}\n />\n </span>\n <RemoveFromDownloadListButton ctx={ctx} />\n </div>\n ),\n enableResizing: false,\n enableColumnFilter: false,\n size: 140,\n meta: {\n textAlign: 'center',\n },\n }),\n ]\n}\n\nfunction getSortApiRequestFromTableSortState(\n sortingState: SortingState,\n): Sort | undefined {\n if (sortingState.length === 0) {\n return undefined\n }\n const sort = sortingState[0]\n let field: SortField = 'addedOn'\n\n if (sort.id === 'fileName') {\n field = 'fileName'\n } else if (sort.id === 'fileSizeBytes') {\n field = 'fileSize'\n } else if (sort.id === 'fileEntityId') {\n field = 'synId'\n } else if (sort.id === 'projectName') {\n field = 'projectName'\n } else if (sort.id === 'addedOn') {\n field = 'addedOn'\n } else if (sort.id === 'createdBy') {\n field = 'createdBy'\n } else if (sort.id === 'createdOn') {\n field = 'createdOn'\n }\n\n return {\n field,\n direction: sort.desc ? 'DESC' : 'ASC',\n }\n}\n\nexport default function DownloadListTable({\n filter,\n}: {\n filter?: AvailableFilter\n}) {\n const handleError = useErrorHandler()\n\n const [copyingAllSynapseIDs, setCopyingAllSynapseIDs] =\n useState<boolean>(false)\n const [tableSortState, setTableSortState] = useState<SortingState>([\n {\n desc: true,\n id: 'addedOn',\n },\n ])\n\n const {\n data,\n status,\n isFetchingNextPage,\n isLoading,\n hasNextPage,\n fetchNextPage,\n isError,\n error: newError,\n } = useGetAvailableFilesToDownloadInfinite(\n getSortApiRequestFromTableSortState(tableSortState),\n filter,\n )\n\n useEffect(() => {\n if (isError && newError) {\n handleError(newError)\n }\n }, [isError, newError, handleError])\n\n const { mutateAsync: removeFileFromDownloadList } =\n useRemoveFilesFromDownloadList()\n\n const removeItem = useCallback(\n async (\n item: DownloadListItem,\n fileName: string,\n notificationTitle: string,\n ) => {\n await removeFileFromDownloadList({ batchToRemove: [item] })\n notifyRemovedFromDownloadList(notificationTitle, fileName)\n },\n [removeFileFromDownloadList],\n )\n\n const allRows = useMemo(\n () => data?.pages.flatMap(page => page.page) ?? [],\n [data?.pages],\n )\n\n const columns = useMemo(\n () =>\n getColumns({\n removeItem: (...args) => {\n void removeItem(...args)\n },\n onCopySynIds: () => {\n // trigger loading all pages of the download list table, and then copy all IDs to the clipboard\n setCopyingAllSynapseIDs(true)\n },\n }),\n [removeItem],\n )\n\n const table = useReactTable<DownloadListItemResult>({\n data: allRows,\n columns: columns,\n getCoreRowModel: getCoreRowModel(),\n manualSorting: true,\n onSortingChange: setTableSortState,\n state: {\n columnPinning: {\n right: ['actions'],\n },\n sorting: tableSortState,\n },\n columnResizeMode: 'onChange',\n meta: {\n getRowClassNames(row: Row<DownloadListItemResult>) {\n if (!row.original.isEligibleForPackaging) {\n return 'ineligibleForPackaging'\n }\n return ''\n },\n },\n })\n\n useEffect(() => {\n const copyAllSynapseIDs = () => {\n const synIDs = allRows\n .map((item: DownloadListItemResult) => {\n return `${item.fileEntityId}.${item.versionNumber}`\n })\n .join('\\n')\n copyStringToClipboard(synIDs).then(() => {\n displayToast('Successfully copied to clipboard')\n })\n setCopyingAllSynapseIDs(false)\n }\n\n if (\n status === 'success' &&\n !isFetchingNextPage &&\n hasNextPage &&\n fetchNextPage &&\n copyingAllSynapseIDs\n ) {\n void fetchNextPage()\n } else if (!hasNextPage && copyingAllSynapseIDs) {\n // We have all the data in allRows. Put it together and copy to the clipboard\n copyAllSynapseIDs()\n }\n }, [\n status,\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n copyingAllSynapseIDs,\n allRows,\n ])\n\n return (\n <div>\n <BlockingLoader show={copyingAllSynapseIDs} />\n {allRows.length > 0 && (\n <div className=\"DownloadListTableV2\">\n {/* TODO: This table can be very large, so it should be refactored to use row virtualization or discrete pagination */}\n <StyledTanStackTable table={table} fullWidth={false} />\n {hasNextPage && (\n <Box sx={{ display: 'flex', justifyContent: 'right' }}>\n <Button\n variant={'contained'}\n sx={{ my: 2, ml: 'auto' }}\n onClick={() => {\n void fetchNextPage()\n }}\n disabled={isFetchingNextPage}\n startIcon={isFetchingNextPage ? <SynapseSpinner /> : undefined}\n >\n {isFetchingNextPage ? 'Loading...' : 'Show More'}\n </Button>\n </Box>\n )}\n </div>\n )}\n {allRows.length === 0 && !isLoading && (\n <Typography variant=\"body1Italic\">\n You have no matching files in your download list.\n </Typography>\n )}\n {isLoading && <SkeletonTable numCols={5} numRows={3} />}\n </div>\n )\n}\n"],"names":["TESTING_TRASH_BTN_CLASS","notifyRemovedFromDownloadList","notificationTitle","fileName","displayToast","RemoveFromDownloadListButton","props","ctx","removeFileFromDownloadList","isPending","useRemoveFilesFromDownloadList","jsx","Tooltip","TOOLTIP_DELAY_SHOW","SynapseSpinner","IconSvg","columnHelper","createColumnHelper","getColumns","args","onCopySynIds","removeItem","Fragment","jsxs","ColumnHeader","PRODUCTION_ENDPOINT_CONFIG","calculateFriendlyFileSize","Typography","InteractiveCopyIdsIcon","formatDate","dayjs","FileEntityDirectDownload","isExternalLink","DirectProgrammaticDownload","getSortApiRequestFromTableSortState","sortingState","sort","field","DownloadListTable","filter","handleError","useErrorHandler","copyingAllSynapseIDs","setCopyingAllSynapseIDs","useState","tableSortState","setTableSortState","data","status","isFetchingNextPage","isLoading","hasNextPage","fetchNextPage","isError","newError","useGetAvailableFilesToDownloadInfinite","useEffect","useCallback","item","allRows","useMemo","page","columns","table","useReactTable","getCoreRowModel","row","synIDs","copyStringToClipboard","BlockingLoader","StyledTanStackTable","Box","Button","SkeletonTable"],"mappings":"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"}
@@ -11,8 +11,8 @@ import { SkeletonInlineBlock as C } from "../Skeleton/SkeletonInlineBlock.js";
11
11
  import "@mui/material/Skeleton";
12
12
  import "lodash-es";
13
13
  import { EmptyFallbackComponent as N } from "../error/ErrorBanner.js";
14
- function F({ to: r, className: m = "" }) {
15
- const { isAuthenticated: t } = h(), e = x(), s = "Click to view items in your download cart.", {
14
+ function F({ to: r, className: s = "" }) {
15
+ const { isAuthenticated: t } = h(), e = x(), m = "Click to view items in your download list.", {
16
16
  data: c,
17
17
  isLoading: p,
18
18
  isError: i,
@@ -28,11 +28,11 @@ function F({ to: r, className: m = "" }) {
28
28
  const d = /* @__PURE__ */ o(
29
29
  k,
30
30
  {
31
- title: s,
31
+ title: m,
32
32
  placement: "bottom",
33
33
  enterNextDelay: b,
34
34
  children: /* @__PURE__ */ f("span", { children: [
35
- /* @__PURE__ */ o("span", { className: "SRC-primary-text-color", children: /* @__PURE__ */ o(D, { icon: "cart" }) }),
35
+ /* @__PURE__ */ o("span", { className: "SRC-primary-text-color", children: /* @__PURE__ */ o(D, { icon: "download" }) }),
36
36
  /* @__PURE__ */ o("span", { className: "download-cart-size", children: a })
37
37
  ] })
38
38
  }
@@ -42,7 +42,7 @@ function F({ to: r, className: m = "" }) {
42
42
  {
43
43
  to: r,
44
44
  component: y,
45
- className: `Download-Link v2 ${m}`,
45
+ className: `Download-Link v2 ${s}`,
46
46
  children: d
47
47
  }
48
48
  );
@@ -1 +1 @@
1
- {"version":3,"file":"ShowDownloadV2.js","sources":["../../../src/components/DownloadCart/ShowDownloadV2.tsx"],"sourcesContent":["import { useGetDownloadListStatistics } from '@/synapse-queries/download/useDownloadList'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Link as MuiLink, Tooltip } from '@mui/material'\nimport { Suspense, useEffect } from 'react'\nimport { ErrorBoundary, useErrorHandler } from 'react-error-boundary'\nimport { Link } from 'react-router'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\nimport { SkeletonInlineBlock } from '../Skeleton'\nimport { EmptyFallbackComponent } from '../error'\n\nexport type ShowDownloadV2Props = {\n to: string\n className?: string\n}\n\n/**\n * Nav bar item, displayed when files have been added to the Download Cart.\n * This must be configured with the URL of a page dedicated to showing the Download Cart.\n */\nfunction ShowDownloadV2Internal({ to, className = '' }: ShowDownloadV2Props) {\n const { isAuthenticated } = useSynapseContext()\n const handleError = useErrorHandler()\n const tooltipText = 'Click to view items in your download cart.'\n\n const {\n data,\n isLoading,\n isError,\n error: newError,\n } = useGetDownloadListStatistics()\n\n useEffect(() => {\n if (isError && newError && isAuthenticated) {\n handleError(newError)\n }\n }, [isError, newError, handleError, isAuthenticated])\n\n if (!isAuthenticated || isLoading) {\n return <></>\n }\n\n const size = data?.totalNumberOfFiles ?? 0\n if (size === 0) {\n return <></>\n }\n const content = (\n <Tooltip\n title={tooltipText}\n placement=\"bottom\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <span>\n <span className=\"SRC-primary-text-color\">\n <IconSvg icon=\"cart\" />\n </span>\n <span className={`download-cart-size`}>{size}</span>\n </span>\n </Tooltip>\n )\n return (\n <MuiLink\n to={to}\n component={Link}\n className={`Download-Link v2 ${className}`}\n >\n {content}\n </MuiLink>\n )\n}\n\nexport function ShowDownloadV2(props: ShowDownloadV2Props) {\n return (\n <ErrorBoundary FallbackComponent={EmptyFallbackComponent}>\n <Suspense fallback={<SkeletonInlineBlock width={100} />}>\n <ShowDownloadV2Internal {...props} />\n </Suspense>\n </ErrorBoundary>\n )\n}\n\nexport default ShowDownloadV2\n"],"names":["ShowDownloadV2Internal","to","className","isAuthenticated","useSynapseContext","handleError","useErrorHandler","tooltipText","data","isLoading","isError","newError","useGetDownloadListStatistics","useEffect","jsx","Fragment","size","content","Tooltip","TOOLTIP_DELAY_SHOW","IconSvg","MuiLink","Link","ShowDownloadV2","props","ErrorBoundary","EmptyFallbackComponent","Suspense","SkeletonInlineBlock"],"mappings":";;;;;;;;;;;;;AAoBA,SAASA,EAAuB,EAAE,IAAAC,GAAI,WAAAC,IAAY,MAA2B;AAC3E,QAAM,EAAE,iBAAAC,EAAA,IAAoBC,EAAA,GACtBC,IAAcC,EAAA,GACdC,IAAc,8CAEd;AAAA,IACJ,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAOC;AAAA,EAAA,IACLC,EAAA;AAQJ,MANAC,EAAU,MAAM;AACd,IAAIH,KAAWC,KAAYR,KACzBE,EAAYM,CAAQ;AAAA,EAExB,GAAG,CAACD,GAASC,GAAUN,GAAaF,CAAe,CAAC,GAEhD,CAACA,KAAmBM;AACtB,WAAO,gBAAAK,EAAAC,GAAA,EAAE;AAGX,QAAMC,IAAOR,GAAM,sBAAsB;AACzC,MAAIQ,MAAS;AACX,WAAO,gBAAAF,EAAAC,GAAA,EAAE;AAEX,QAAME,IACJ,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,OAAOX;AAAA,MACP,WAAU;AAAA,MACV,gBAAgBY;AAAA,MAEhB,4BAAC,QAAA,EACC,UAAA;AAAA,QAAA,gBAAAL,EAAC,UAAK,WAAU,0BACd,4BAACM,GAAA,EAAQ,MAAK,QAAO,EAAA,CACvB;AAAA,QACA,gBAAAN,EAAC,QAAA,EAAK,WAAW,sBAAuB,UAAAE,EAAA,CAAK;AAAA,MAAA,EAAA,CAC/C;AAAA,IAAA;AAAA,EAAA;AAGJ,SACE,gBAAAF;AAAA,IAACO;AAAAA,IAAA;AAAA,MACC,IAAApB;AAAA,MACA,WAAWqB;AAAAA,MACX,WAAW,oBAAoBpB,CAAS;AAAA,MAEvC,UAAAe;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASM,EAAeC,GAA4B;AACzD,2BACGC,GAAA,EAAc,mBAAmBC,GAChC,UAAA,gBAAAZ,EAACa,KAAS,UAAU,gBAAAb,EAACc,GAAA,EAAoB,OAAO,KAAK,GACnD,UAAA,gBAAAd,EAACd,KAAwB,GAAGwB,EAAA,CAAO,GACrC,GACF;AAEJ;"}
1
+ {"version":3,"file":"ShowDownloadV2.js","sources":["../../../src/components/DownloadCart/ShowDownloadV2.tsx"],"sourcesContent":["import { useGetDownloadListStatistics } from '@/synapse-queries/download/useDownloadList'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Link as MuiLink, Tooltip } from '@mui/material'\nimport { Suspense, useEffect } from 'react'\nimport { ErrorBoundary, useErrorHandler } from 'react-error-boundary'\nimport { Link } from 'react-router'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\nimport { SkeletonInlineBlock } from '../Skeleton'\nimport { EmptyFallbackComponent } from '../error'\n\nexport type ShowDownloadV2Props = {\n to: string\n className?: string\n}\n\n/**\n * Nav bar item, displayed when files have been added to the Download List.\n * This must be configured with the URL of a page dedicated to showing the Download List.\n */\nfunction ShowDownloadV2Internal({ to, className = '' }: ShowDownloadV2Props) {\n const { isAuthenticated } = useSynapseContext()\n const handleError = useErrorHandler()\n const tooltipText = 'Click to view items in your download list.'\n\n const {\n data,\n isLoading,\n isError,\n error: newError,\n } = useGetDownloadListStatistics()\n\n useEffect(() => {\n if (isError && newError && isAuthenticated) {\n handleError(newError)\n }\n }, [isError, newError, handleError, isAuthenticated])\n\n if (!isAuthenticated || isLoading) {\n return <></>\n }\n\n const size = data?.totalNumberOfFiles ?? 0\n if (size === 0) {\n return <></>\n }\n const content = (\n <Tooltip\n title={tooltipText}\n placement=\"bottom\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n >\n <span>\n <span className=\"SRC-primary-text-color\">\n <IconSvg icon=\"download\" />\n </span>\n <span className={`download-cart-size`}>{size}</span>\n </span>\n </Tooltip>\n )\n return (\n <MuiLink\n to={to}\n component={Link}\n className={`Download-Link v2 ${className}`}\n >\n {content}\n </MuiLink>\n )\n}\n\nexport function ShowDownloadV2(props: ShowDownloadV2Props) {\n return (\n <ErrorBoundary FallbackComponent={EmptyFallbackComponent}>\n <Suspense fallback={<SkeletonInlineBlock width={100} />}>\n <ShowDownloadV2Internal {...props} />\n </Suspense>\n </ErrorBoundary>\n )\n}\n\nexport default ShowDownloadV2\n"],"names":["ShowDownloadV2Internal","to","className","isAuthenticated","useSynapseContext","handleError","useErrorHandler","tooltipText","data","isLoading","isError","newError","useGetDownloadListStatistics","useEffect","jsx","Fragment","size","content","Tooltip","TOOLTIP_DELAY_SHOW","IconSvg","MuiLink","Link","ShowDownloadV2","props","ErrorBoundary","EmptyFallbackComponent","Suspense","SkeletonInlineBlock"],"mappings":";;;;;;;;;;;;;AAoBA,SAASA,EAAuB,EAAE,IAAAC,GAAI,WAAAC,IAAY,MAA2B;AAC3E,QAAM,EAAE,iBAAAC,EAAA,IAAoBC,EAAA,GACtBC,IAAcC,EAAA,GACdC,IAAc,8CAEd;AAAA,IACJ,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAOC;AAAA,EAAA,IACLC,EAAA;AAQJ,MANAC,EAAU,MAAM;AACd,IAAIH,KAAWC,KAAYR,KACzBE,EAAYM,CAAQ;AAAA,EAExB,GAAG,CAACD,GAASC,GAAUN,GAAaF,CAAe,CAAC,GAEhD,CAACA,KAAmBM;AACtB,WAAO,gBAAAK,EAAAC,GAAA,EAAE;AAGX,QAAMC,IAAOR,GAAM,sBAAsB;AACzC,MAAIQ,MAAS;AACX,WAAO,gBAAAF,EAAAC,GAAA,EAAE;AAEX,QAAME,IACJ,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,OAAOX;AAAA,MACP,WAAU;AAAA,MACV,gBAAgBY;AAAA,MAEhB,4BAAC,QAAA,EACC,UAAA;AAAA,QAAA,gBAAAL,EAAC,UAAK,WAAU,0BACd,4BAACM,GAAA,EAAQ,MAAK,YAAW,EAAA,CAC3B;AAAA,QACA,gBAAAN,EAAC,QAAA,EAAK,WAAW,sBAAuB,UAAAE,EAAA,CAAK;AAAA,MAAA,EAAA,CAC/C;AAAA,IAAA;AAAA,EAAA;AAGJ,SACE,gBAAAF;AAAA,IAACO;AAAAA,IAAA;AAAA,MACC,IAAApB;AAAA,MACA,WAAWqB;AAAAA,MACX,WAAW,oBAAoBpB,CAAS;AAAA,MAEvC,UAAAe;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASM,EAAeC,GAA4B;AACzD,2BACGC,GAAA,EAAc,mBAAmBC,GAChC,UAAA,gBAAAZ,EAACa,KAAS,UAAU,gBAAAb,EAACc,GAAA,EAAoB,OAAO,KAAK,GACnD,UAAA,gBAAAd,EAACd,KAAwB,GAAGwB,EAAA,CAAO,GACrC,GACF;AAEJ;"}
@@ -55,11 +55,14 @@ import "@mui/material/SvgIcon";
55
55
  import "../../assets/icons/AccessPending.svg.js";
56
56
  import "../../assets/icons/AccessPendingCloud.svg.js";
57
57
  import "../../assets/icons/FileWithShield.svg.js";
58
+ import "../../assets/icons/MultiFile.svg.js";
59
+ import "../../assets/icons/UnpackagableFile.svg.js";
58
60
  import "../../assets/icons/bioChemicalPhysical.svg.js";
59
61
  import "../../assets/icons/computationalTool.svg.js";
60
62
  import "../../assets/icons/dataReuse.svg.js";
61
63
  import "../../assets/icons/inSilicoModel.svg.js";
62
64
  import "../../assets/icons/modelSystem.svg.js";
65
+ import "../../assets/mui_components/PackagableFile.svg.js";
63
66
  import "../../assets/icons/spatialProfiling.svg.js";
64
67
  import "../Authentication/AuthenticationMethodSelection.js";
65
68
  import "mui-one-time-password-input";
@@ -84,6 +87,7 @@ import "../../assets/icons/study-complete.svg.js";
84
87
  import "../../assets/icons/translational.svg.js";
85
88
  import "../../assets/icons/tree_horizontal.svg.js";
86
89
  import "../../assets/icons/standardDataModel.svg.js";
90
+ import "../../assets/icons/Challenge.svg.js";
87
91
  import "react-intersection-observer";
88
92
  import "@rjsf/utils";
89
93
  import "../SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js";
@@ -101,10 +105,10 @@ import "../../assets/icons/DoubleQuotes.svg.js";
101
105
  import "../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
102
106
  import "../QueryContext/QueryContext.js";
103
107
  import "../QueryVisualizationWrapper/QueryVisualizationContext.js";
108
+ import "react-share";
104
109
  import "../GenericCard/GenericCard.js";
105
110
  import "@mui/system";
106
111
  import "../GenericCard/Linkify.js";
107
- import "react-share";
108
112
  import "jotai";
109
113
  import "lodash-es/noop";
110
114
  import "../QueryWrapper/TableRowSelectionState.js";
@@ -203,6 +207,7 @@ import "lodash-es/set";
203
207
  import "lodash-es/trimStart";
204
208
  import "../SynapseForm/SynapseFormSubmissionGrid.js";
205
209
  import "../SynapseChat/AccessLevelMenu.js";
210
+ import "react-draggable";
206
211
  import "../TimelinePlot/phasesQueryResponseData.js";
207
212
  import "../EntityHeaderTable/EntityHeaderTable.js";
208
213
  import "../MuiContainer.js";
@@ -210,7 +215,7 @@ import "@mui/material/Grid";
210
215
  import "@mui/icons-material/ArrowForwardIos";
211
216
  import "../PortalAclEditor/PortalAclEditor.js";
212
217
  import "../SynapseHomepageV2/HomepageStyles.js";
213
- function pi() {
218
+ function li() {
214
219
  const o = /* @__PURE__ */ t(n, { width: "80%" }), r = /* @__PURE__ */ m(e, { gap: 2, py: 2, children: [
215
220
  /* @__PURE__ */ t(i, {}),
216
221
  /* @__PURE__ */ t(i, {}),
@@ -228,6 +233,6 @@ function pi() {
228
233
  );
229
234
  }
230
235
  export {
231
- pi as default
236
+ li as default
232
237
  };
233
238
  //# sourceMappingURL=EcosystemSkeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EcosystemSkeleton.js","sources":["../../../src/components/Ecosystem/EcosystemSkeleton.tsx"],"sourcesContent":["import EcosystemLayout from '@/components/Ecosystem/EcosystemLayout'\nimport { SkeletonParagraph } from '@/components/index'\nimport { Stack } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\n\nfunction EcosystemSkeleton() {\n const skeletonTitle = <Skeleton width={'80%'} />\n const skeletonContent = (\n <Stack gap={2} py={2}>\n <SkeletonParagraph />\n <SkeletonParagraph />\n <SkeletonParagraph />\n </Stack>\n )\n return (\n <EcosystemLayout\n config={[\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n ]}\n />\n )\n}\n\nexport default EcosystemSkeleton\n"],"names":["EcosystemSkeleton","skeletonTitle","jsx","Skeleton","skeletonContent","jsxs","Stack","SkeletonParagraph","EcosystemLayout"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAASA,KAAoB;AAC3B,QAAMC,IAAgB,gBAAAC,EAACC,GAAA,EAAS,OAAO,MAAA,CAAO,GACxCC,IACJ,gBAAAC,EAACC,GAAA,EAAM,KAAK,GAAG,IAAI,GACjB,UAAA;AAAA,IAAA,gBAAAJ,EAACK,GAAA,EAAkB;AAAA,sBAClBA,GAAA,EAAkB;AAAA,sBAClBA,GAAA,CAAA,CAAkB;AAAA,EAAA,GACrB;AAEF,SACE,gBAAAL;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,QACN,EAAE,OAAOP,GAAe,SAASG,EAAA;AAAA,QACjC,EAAE,OAAOH,GAAe,SAASG,EAAA;AAAA,QACjC,EAAE,OAAOH,GAAe,SAASG,EAAA;AAAA,MAAgB;AAAA,IACnD;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"EcosystemSkeleton.js","sources":["../../../src/components/Ecosystem/EcosystemSkeleton.tsx"],"sourcesContent":["import EcosystemLayout from '@/components/Ecosystem/EcosystemLayout'\nimport { SkeletonParagraph } from '@/components/index'\nimport { Stack } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\n\nfunction EcosystemSkeleton() {\n const skeletonTitle = <Skeleton width={'80%'} />\n const skeletonContent = (\n <Stack gap={2} py={2}>\n <SkeletonParagraph />\n <SkeletonParagraph />\n <SkeletonParagraph />\n </Stack>\n )\n return (\n <EcosystemLayout\n config={[\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n ]}\n />\n )\n}\n\nexport default EcosystemSkeleton\n"],"names":["EcosystemSkeleton","skeletonTitle","jsx","Skeleton","skeletonContent","jsxs","Stack","SkeletonParagraph","EcosystemLayout"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAASA,KAAoB;AAC3B,QAAMC,IAAgB,gBAAAC,EAACC,GAAA,EAAS,OAAO,MAAA,CAAO,GACxCC,IACJ,gBAAAC,EAACC,GAAA,EAAM,KAAK,GAAG,IAAI,GACjB,UAAA;AAAA,IAAA,gBAAAJ,EAACK,GAAA,EAAkB;AAAA,sBAClBA,GAAA,EAAkB;AAAA,sBAClBA,GAAA,CAAA,CAAkB;AAAA,EAAA,GACrB;AAEF,SACE,gBAAAL;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,QACN,EAAE,OAAOP,GAAe,SAASG,EAAA;AAAA,QACjC,EAAE,OAAOH,GAAe,SAASG,EAAA;AAAA,QACjC,EAAE,OAAOH,GAAe,SAASG,EAAA;AAAA,MAAgB;AAAA,IACnD;AAAA,EAAA;AAGN;"}
@@ -1,4 +1,5 @@
1
1
  import { EntityType } from '@sage-bionetworks/synapse-client';
2
+ import { RefObject } from 'react';
2
3
  export declare const PYTHON_CLIENT_IMPORT_AND_LOGIN = "import synapseclient\nsyn = synapseclient.Synapse()\nsyn.login(authToken=\"YOUR_TOKEN_HERE\")";
3
4
  export declare const R_CLIENT_IMPORT_AND_LOGIN = "library(synapser)\nsynLogin(authToken=\"YOUR_TOKEN_HERE\")";
4
5
  declare enum DownloadAction {
@@ -13,6 +14,8 @@ export declare function EntityDownloadButton(props: {
13
14
  entityId: string;
14
15
  name: string;
15
16
  entityType: EntityType;
17
+ downloadConfirmationContainer?: RefObject<HTMLElement | null>;
18
+ disabled?: boolean;
16
19
  }): import("react/jsx-runtime").JSX.Element;
17
20
  export {};
18
21
  //# sourceMappingURL=EntityDownloadButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityDownloadButton.d.ts","sourceRoot":"","sources":["../../../src/components/EntityDownloadButton/EntityDownloadButton.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAEL,UAAU,EACX,MAAM,kCAAkC,CAAA;AAqBzC,eAAO,MAAM,8BAA8B,kGAEJ,CAAA;AAGvC,eAAO,MAAM,yBAAyB,+DACA,CAAA;AA2DtC,aAAK,cAAc;IACjB,YAAY,IAAA;IACZ,SAAS,IAAA;IACT,kBAAkB,IAAA;IAClB,wBAAwB,IAAA;IACxB,WAAW,IAAA;CACZ;AAqHD,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,GACf,cAAc,EAAE,EAAE,CAkCpB;AA2ED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;CACvB,2CAuKA"}
1
+ {"version":3,"file":"EntityDownloadButton.d.ts","sourceRoot":"","sources":["../../../src/components/EntityDownloadButton/EntityDownloadButton.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAK7D,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAA;AAkB3C,eAAO,MAAM,8BAA8B,kGAEJ,CAAA;AAGvC,eAAO,MAAM,yBAAyB,+DACA,CAAA;AA2DtC,aAAK,cAAc;IACjB,YAAY,IAAA;IACZ,SAAS,IAAA;IACT,kBAAkB,IAAA;IAClB,wBAAwB,IAAA;IACxB,WAAW,IAAA;CACZ;AA6FD,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,GACf,cAAc,EAAE,EAAE,CAkCpB;AA2ED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,6BAA6B,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,2CAgLA"}