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,32 +1,20 @@
1
1
  import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
- import { formatDate as u } from "../../utils/functions/DateFormatter.js";
3
- import { getEndpoint as m, BackendDestinationEnum as c } from "../../utils/functions/getEndpoint.js";
4
- import { useInView as I } from "react-intersection-observer";
5
- import { Update as T, ArticleOutlined as g, InfoOutline as w, DashboardTwoTone as D } from "@mui/icons-material";
6
- import { styled as N, Box as r, Link as s, Chip as S, Stack as C, Typography as n, Paper as M } from "@mui/material";
7
- import O from "dayjs";
8
- import { EntityTypeIcon as E } from "../EntityIcon.js";
9
- import { EntityType as R } from "@sage-bionetworks/synapse-client";
10
- import b from "../favorites/FavoriteButton.js";
11
- import { EntityDownloadButton as L } from "../EntityDownloadButton/EntityDownloadButton.js";
12
- import { HasAccessChip as P } from "./HasAccessChip.js";
13
- import { searchResultsCardChipStyles as B } from "./chipStyles.js";
14
- import a from "./SynapseSearchResultsCard.module.scss.js";
15
- import { calculateFriendlyFileSize as $ } from "../../utils/functions/calculateFriendlyFileSize.js";
16
2
  import "../../synapse-client/SynapseClient.js";
17
3
  import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
18
4
  import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
19
5
  import "@sage-bionetworks/synapse-client/util/SynapseClientError";
20
6
  import "@sage-bionetworks/synapse-types";
21
7
  import "../../utils/functions/EntityTypeUtils.js";
8
+ import { getEndpoint as c, BackendDestinationEnum as s } from "../../utils/functions/getEndpoint.js";
22
9
  import "lodash-es";
23
10
  import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
24
11
  import "@tanstack/react-query";
25
12
  import "../../utils/PermissionLevelToAccessType.js";
26
13
  import "../../utils/SynapseConstants.js";
27
- import "react";
14
+ import { useRef as I } from "react";
28
15
  import "../../utils/context/SynapseContext.js";
29
16
  import "use-deep-compare-effect";
17
+ import { styled as T, Box as n, Link as p, Chip as g, Stack as w, Typography as r, Paper as D } from "@mui/material";
30
18
  import "../../utils/hooks/useCookiePreferences.js";
31
19
  import "../../utils/hooks/useSourceAppConfigs.js";
32
20
  import "universal-cookie";
@@ -39,12 +27,24 @@ import "lodash-es/isEmpty";
39
27
  import "lodash-es/isEqual";
40
28
  import "lodash-es/xorWith";
41
29
  import "react-router";
30
+ import { EntityType as N } from "@sage-bionetworks/synapse-client";
42
31
  import "../../utils/types/IsType.js";
43
- import { useGetEntityBundle as k } from "../../synapse-queries/entity/useEntityBundle.js";
44
- import { HighlightedTypography as p } from "./HighlightedTypography.js";
45
- import { markdownToPlainText as z } from "../Markdown/MarkdownUtils.js";
46
- const F = N(
47
- M,
32
+ import { useGetEntityBundle as S } from "../../synapse-queries/entity/useEntityBundle.js";
33
+ import { calculateFriendlyFileSize as C } from "../../utils/functions/calculateFriendlyFileSize.js";
34
+ import { formatDate as M } from "../../utils/functions/DateFormatter.js";
35
+ import { Update as R, ArticleOutlined as O, InfoOutline as E, DashboardTwoTone as b } from "@mui/icons-material";
36
+ import L from "dayjs";
37
+ import { useInView as P } from "react-intersection-observer";
38
+ import { EntityDownloadButton as B } from "../EntityDownloadButton/EntityDownloadButton.js";
39
+ import { EntityTypeIcon as $ } from "../EntityIcon.js";
40
+ import k from "../favorites/FavoriteButton.js";
41
+ import { markdownToPlainText as v } from "../Markdown/MarkdownUtils.js";
42
+ import { searchResultsCardChipStyles as z } from "./chipStyles.js";
43
+ import { HasAccessChip as F } from "./HasAccessChip.js";
44
+ import { HighlightedTypography as y } from "./HighlightedTypography.js";
45
+ import a from "./SynapseSearchResultsCard.module.scss.js";
46
+ const H = T(
47
+ D,
48
48
  {
49
49
  label: "SynapseSearchResultsCardContainer"
50
50
  }
@@ -57,21 +57,21 @@ const F = N(
57
57
  padding: "32px",
58
58
  gap: "15px"
59
59
  });
60
- function Re(e) {
61
- const { ref: y, inView: h } = I({
60
+ function Le(e) {
61
+ const o = I(null), { ref: f, inView: h } = P({
62
62
  triggerOnce: !0,
63
63
  rootMargin: "250px 0px"
64
- }), { data: x } = k(
64
+ }), { data: x } = S(
65
65
  e.entityId,
66
66
  void 0,
67
67
  { includeFileHandles: !0 },
68
- { enabled: e.entityType === R.file && h }
69
- ), o = x?.fileHandles.find(
70
- (f) => f.isPreview !== !0
71
- ), d = o?.contentSize ? $(o?.contentSize) : "", l = e.description ? z(e.description) : "";
72
- return /* @__PURE__ */ i(F, { ref: y, children: [
68
+ { enabled: e.entityType === N.file && h }
69
+ ), d = x?.fileHandles.find(
70
+ (u) => u.isPreview !== !0
71
+ ), l = d?.contentSize ? C(d?.contentSize) : "", m = e.description ? v(e.description) : "";
72
+ return /* @__PURE__ */ i(H, { ref: f, children: [
73
73
  /* @__PURE__ */ i(
74
- r,
74
+ n,
75
75
  {
76
76
  sx: {
77
77
  display: "flex",
@@ -81,17 +81,17 @@ function Re(e) {
81
81
  },
82
82
  children: [
83
83
  /* @__PURE__ */ t(
84
- s,
84
+ p,
85
85
  {
86
- href: `${m(
87
- c.PORTAL_ENDPOINT
86
+ href: `${c(
87
+ s.PORTAL_ENDPOINT
88
88
  )}Synapse:${e.entityId}`,
89
89
  sx: {
90
90
  textDecoration: "underline 2px",
91
91
  textUnderlineOffset: "9px"
92
92
  },
93
93
  children: /* @__PURE__ */ t(
94
- p,
94
+ y,
95
95
  {
96
96
  className: a.cardTitle,
97
97
  variant: "headline3",
@@ -102,7 +102,7 @@ function Re(e) {
102
102
  }
103
103
  ),
104
104
  /* @__PURE__ */ i(
105
- r,
105
+ n,
106
106
  {
107
107
  sx: {
108
108
  display: "flex",
@@ -110,13 +110,14 @@ function Re(e) {
110
110
  alignItems: "center"
111
111
  },
112
112
  children: [
113
- /* @__PURE__ */ t(b, { entityId: e.entityId }),
113
+ /* @__PURE__ */ t(k, { entityId: e.entityId }),
114
114
  /* @__PURE__ */ t(
115
- L,
115
+ B,
116
116
  {
117
117
  entityId: e.entityId,
118
118
  name: e.name,
119
- entityType: e.entityType
119
+ entityType: e.entityType,
120
+ downloadConfirmationContainer: o
120
121
  }
121
122
  )
122
123
  ]
@@ -125,8 +126,9 @@ function Re(e) {
125
126
  ]
126
127
  }
127
128
  ),
129
+ /* @__PURE__ */ t("div", { ref: o }),
128
130
  /* @__PURE__ */ i(
129
- r,
131
+ n,
130
132
  {
131
133
  sx: {
132
134
  display: "flex",
@@ -134,10 +136,10 @@ function Re(e) {
134
136
  },
135
137
  children: [
136
138
  /* @__PURE__ */ t(
137
- S,
139
+ g,
138
140
  {
139
141
  icon: /* @__PURE__ */ t(
140
- E,
142
+ $,
141
143
  {
142
144
  type: e.entityType,
143
145
  wrap: !1,
@@ -145,59 +147,59 @@ function Re(e) {
145
147
  }
146
148
  ),
147
149
  label: e.entityType,
148
- sx: { ...B }
150
+ sx: { ...z }
149
151
  }
150
152
  ),
151
- /* @__PURE__ */ t(P, { entityId: e.entityId })
153
+ /* @__PURE__ */ t(F, { entityId: e.entityId })
152
154
  ]
153
155
  }
154
156
  ),
155
157
  /* @__PURE__ */ t(
156
- r,
158
+ n,
157
159
  {
158
160
  sx: {
159
161
  display: "flex",
160
162
  flexDirection: "row",
161
163
  gap: "8px"
162
164
  },
163
- children: /* @__PURE__ */ i(C, { sx: { gap: "20px", minWidth: 0, width: "100%" }, children: [
164
- /* @__PURE__ */ i(r, { sx: { display: "flex" }, children: [
165
- /* @__PURE__ */ t(T, { className: a.cardMetadataIcon }),
166
- /* @__PURE__ */ i(n, { className: a.cardMetadataTypographyWithIcon, children: [
165
+ children: /* @__PURE__ */ i(w, { sx: { gap: "20px", minWidth: 0, width: "100%" }, children: [
166
+ /* @__PURE__ */ i(n, { sx: { display: "flex" }, children: [
167
+ /* @__PURE__ */ t(R, { className: a.cardMetadataIcon }),
168
+ /* @__PURE__ */ i(r, { className: a.cardMetadataTypographyWithIcon, children: [
167
169
  "Last updated:",
168
170
  " ",
169
- u(O.unix(e.modifiedOn), "M/D/YYYY")
171
+ M(L.unix(e.modifiedOn), "M/D/YYYY")
170
172
  ] })
171
173
  ] }),
172
- l && /* @__PURE__ */ i(r, { sx: { display: "flex" }, children: [
173
- /* @__PURE__ */ t(g, { className: a.cardMetadataIcon }),
174
+ m && /* @__PURE__ */ i(n, { sx: { display: "flex" }, children: [
175
+ /* @__PURE__ */ t(O, { className: a.cardMetadataIcon }),
174
176
  /* @__PURE__ */ t(
175
- p,
177
+ y,
176
178
  {
177
179
  className: `${a.cardMetadataTypographyWithIcon} ${a.cardDescription}`,
178
- text: l,
180
+ text: m,
179
181
  searchTerms: e.searchTerms ?? []
180
182
  }
181
183
  )
182
184
  ] }),
183
- d && /* @__PURE__ */ i(r, { sx: { display: "flex" }, children: [
184
- /* @__PURE__ */ t(w, { className: a.cardMetadataIcon }),
185
- /* @__PURE__ */ i(n, { className: a.cardMetadataTypographyWithIcon, children: [
185
+ l && /* @__PURE__ */ i(n, { sx: { display: "flex" }, children: [
186
+ /* @__PURE__ */ t(E, { className: a.cardMetadataIcon }),
187
+ /* @__PURE__ */ i(r, { className: a.cardMetadataTypographyWithIcon, children: [
186
188
  "File size: ",
187
- /* @__PURE__ */ t("b", { children: d })
189
+ /* @__PURE__ */ t("b", { children: l })
188
190
  ] })
189
191
  ] }),
190
192
  e.locatedIn && /* @__PURE__ */ i(
191
- r,
193
+ n,
192
194
  {
193
195
  sx: { display: "flex", marginLeft: "24px", alignItems: "center" },
194
196
  children: [
195
- /* @__PURE__ */ i(n, { className: a.cardMetadataTypographyWithIcon, children: [
197
+ /* @__PURE__ */ i(r, { className: a.cardMetadataTypographyWithIcon, children: [
196
198
  "Located in:",
197
199
  " "
198
200
  ] }),
199
201
  /* @__PURE__ */ t(
200
- D,
202
+ b,
201
203
  {
202
204
  className: a.cardMetadataIcon,
203
205
  sx: {
@@ -206,11 +208,11 @@ function Re(e) {
206
208
  }
207
209
  ),
208
210
  /* @__PURE__ */ t(
209
- s,
211
+ p,
210
212
  {
211
213
  className: a.locatedInLink,
212
- href: `${m(
213
- c.PORTAL_ENDPOINT
214
+ href: `${c(
215
+ s.PORTAL_ENDPOINT
214
216
  )}Synapse:${e.locatedIn?.id}`,
215
217
  children: e.locatedIn?.name
216
218
  }
@@ -224,7 +226,7 @@ function Re(e) {
224
226
  ] });
225
227
  }
226
228
  export {
227
- Re as SynapseSearchResultsCard,
228
- Re as default
229
+ Le as SynapseSearchResultsCard,
230
+ Le as default
229
231
  };
230
232
  //# sourceMappingURL=SynapseSearchResultsCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseSearchResultsCard.js","sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { useInView } from 'react-intersection-observer'\nimport { StyledComponent } from '@emotion/styled'\nimport {\n ArticleOutlined,\n DashboardTwoTone,\n InfoOutline,\n Update as UpdateIcon,\n} from '@mui/icons-material'\nimport {\n Box,\n Chip,\n Link,\n Paper,\n PaperProps,\n Stack,\n styled,\n Typography,\n} from '@mui/material'\nimport dayjs from 'dayjs'\nimport { EntityTypeIcon } from '../EntityIcon'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport FavoriteButton from '../favorites/FavoriteButton'\nimport { EntityDownloadButton } from '../EntityDownloadButton/EntityDownloadButton'\nimport HasAccessChip from './HasAccessChip'\nimport { searchResultsCardChipStyles } from './chipStyles'\nimport styles from './SynapseSearchResultsCard.module.scss'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { FileHandleWithPreview } from '../EntityFinder/details/view/table/TableCellTypes'\nimport { HighlightedTypography } from './HighlightedTypography'\nimport { markdownToPlainText } from '../Markdown/MarkdownUtils'\n\nexport type SynapseSearchResultsCardProps = {\n entityId: string\n name: string\n description?: string\n entityType: EntityType\n modifiedOn: number\n locatedIn?: { name: string; id: string }\n searchTerms?: string[]\n}\n\nconst SynapseSearchResultsCardContainer: StyledComponent<PaperProps> = styled(\n Paper,\n {\n label: 'SynapseSearchResultsCardContainer',\n },\n)({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '250px',\n width: '100%',\n borderRadius: '10px',\n padding: '32px',\n gap: '15px',\n})\n\nexport function SynapseSearchResultsCard(props: SynapseSearchResultsCardProps) {\n const { ref, inView } = useInView({\n triggerOnce: true,\n rootMargin: '250px 0px',\n })\n\n const { data: entityBundle } = useGetEntityBundle(\n props.entityId,\n undefined,\n { includeFileHandles: true },\n { enabled: props.entityType === EntityType.file && inView },\n )\n\n const file = entityBundle?.fileHandles.find(\n (file: FileHandleWithPreview) => file.isPreview !== true,\n )\n\n const friendlySize = file?.contentSize\n ? calculateFriendlyFileSize(file?.contentSize)\n : ''\n\n const plainDescription = props.description\n ? markdownToPlainText(props.description)\n : ''\n\n return (\n <SynapseSearchResultsCardContainer ref={ref}>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <Link\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.entityId}`}\n sx={{\n textDecoration: 'underline 2px',\n textUnderlineOffset: '9px',\n }}\n >\n <HighlightedTypography\n className={styles.cardTitle}\n variant=\"headline3\"\n text={props.name}\n searchTerms={props.searchTerms ?? []}\n />\n </Link>\n\n <Box\n sx={{\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }}\n >\n <FavoriteButton entityId={props.entityId} />\n <EntityDownloadButton\n entityId={props.entityId}\n name={props.name}\n entityType={props.entityType}\n />\n </Box>\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Chip\n icon={\n <EntityTypeIcon\n type={props.entityType}\n wrap={false}\n sx={{ color: '#265149', width: '18px' }}\n />\n }\n label={props.entityType}\n sx={{ ...searchResultsCardChipStyles }}\n />\n <HasAccessChip entityId={props.entityId} />\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n }}\n >\n <Stack sx={{ gap: '20px', minWidth: 0, width: '100%' }}>\n <Box sx={{ display: 'flex' }}>\n <UpdateIcon className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Last updated:{' '}\n {formatDate(dayjs.unix(props.modifiedOn), 'M/D/YYYY')}\n </Typography>\n </Box>\n {plainDescription && (\n <Box sx={{ display: 'flex' }}>\n <ArticleOutlined className={styles.cardMetadataIcon} />\n <HighlightedTypography\n className={`${styles.cardMetadataTypographyWithIcon} ${styles.cardDescription}`}\n text={plainDescription}\n searchTerms={props.searchTerms ?? []}\n />\n </Box>\n )}\n\n {friendlySize && (\n <Box sx={{ display: 'flex' }}>\n <InfoOutline className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n File size: <b>{friendlySize}</b>\n </Typography>\n </Box>\n )}\n {props.locatedIn && (\n <Box\n sx={{ display: 'flex', marginLeft: '24px', alignItems: 'center' }}\n >\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Located in:{' '}\n </Typography>\n <DashboardTwoTone\n className={styles.cardMetadataIcon}\n sx={{\n marginRight: '4px',\n }}\n />\n <Link\n className={styles.locatedInLink}\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.locatedIn?.id}`}\n >\n {props.locatedIn?.name}\n </Link>\n </Box>\n )}\n </Stack>\n </Box>\n </SynapseSearchResultsCardContainer>\n )\n}\n\nexport default SynapseSearchResultsCard\n"],"names":["SynapseSearchResultsCardContainer","styled","Paper","SynapseSearchResultsCard","props","ref","inView","useInView","entityBundle","useGetEntityBundle","EntityType","file","friendlySize","calculateFriendlyFileSize","plainDescription","markdownToPlainText","jsxs","Box","jsx","Link","getEndpoint","BackendDestinationEnum","HighlightedTypography","styles","FavoriteButton","EntityDownloadButton","Chip","EntityTypeIcon","searchResultsCardChipStyles","HasAccessChip","Stack","UpdateIcon","Typography","formatDate","dayjs","ArticleOutlined","InfoOutline","DashboardTwoTone"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseSearchResultsCard.js","sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { StyledComponent } from '@emotion/styled'\nimport {\n ArticleOutlined,\n DashboardTwoTone,\n InfoOutline,\n Update as UpdateIcon,\n} from '@mui/icons-material'\nimport {\n Box,\n Chip,\n Link,\n Paper,\n PaperProps,\n Stack,\n styled,\n Typography,\n} from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { useRef } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport { EntityDownloadButton } from '../EntityDownloadButton/EntityDownloadButton'\nimport { FileHandleWithPreview } from '../EntityFinder/details/view/table/TableCellTypes'\nimport { EntityTypeIcon } from '../EntityIcon'\nimport FavoriteButton from '../favorites/FavoriteButton'\nimport { markdownToPlainText } from '../Markdown/MarkdownUtils'\nimport { searchResultsCardChipStyles } from './chipStyles'\nimport HasAccessChip from './HasAccessChip'\nimport { HighlightedTypography } from './HighlightedTypography'\nimport styles from './SynapseSearchResultsCard.module.scss'\n\nexport type SynapseSearchResultsCardProps = {\n entityId: string\n name: string\n description?: string\n entityType: EntityType\n modifiedOn: number\n locatedIn?: { name: string; id: string }\n searchTerms?: string[]\n}\n\nconst SynapseSearchResultsCardContainer: StyledComponent<PaperProps> = styled(\n Paper,\n {\n label: 'SynapseSearchResultsCardContainer',\n },\n)({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '250px',\n width: '100%',\n borderRadius: '10px',\n padding: '32px',\n gap: '15px',\n})\n\nexport function SynapseSearchResultsCard(props: SynapseSearchResultsCardProps) {\n const downloadConfirmationRef = useRef<HTMLDivElement>(null)\n\n const { ref, inView } = useInView({\n triggerOnce: true,\n rootMargin: '250px 0px',\n })\n\n const { data: entityBundle } = useGetEntityBundle(\n props.entityId,\n undefined,\n { includeFileHandles: true },\n { enabled: props.entityType === EntityType.file && inView },\n )\n\n const file = entityBundle?.fileHandles.find(\n (file: FileHandleWithPreview) => file.isPreview !== true,\n )\n\n const friendlySize = file?.contentSize\n ? calculateFriendlyFileSize(file?.contentSize)\n : ''\n\n const plainDescription = props.description\n ? markdownToPlainText(props.description)\n : ''\n\n return (\n <SynapseSearchResultsCardContainer ref={ref}>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <Link\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.entityId}`}\n sx={{\n textDecoration: 'underline 2px',\n textUnderlineOffset: '9px',\n }}\n >\n <HighlightedTypography\n className={styles.cardTitle}\n variant=\"headline3\"\n text={props.name}\n searchTerms={props.searchTerms ?? []}\n />\n </Link>\n\n <Box\n sx={{\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }}\n >\n <FavoriteButton entityId={props.entityId} />\n <EntityDownloadButton\n entityId={props.entityId}\n name={props.name}\n entityType={props.entityType}\n downloadConfirmationContainer={downloadConfirmationRef}\n />\n </Box>\n </Box>\n {/* Portal target for EntityDownloadButton's download confirmation dialog */}\n <div ref={downloadConfirmationRef} />\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Chip\n icon={\n <EntityTypeIcon\n type={props.entityType}\n wrap={false}\n sx={{ color: '#265149', width: '18px' }}\n />\n }\n label={props.entityType}\n sx={{ ...searchResultsCardChipStyles }}\n />\n <HasAccessChip entityId={props.entityId} />\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n }}\n >\n <Stack sx={{ gap: '20px', minWidth: 0, width: '100%' }}>\n <Box sx={{ display: 'flex' }}>\n <UpdateIcon className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Last updated:{' '}\n {formatDate(dayjs.unix(props.modifiedOn), 'M/D/YYYY')}\n </Typography>\n </Box>\n {plainDescription && (\n <Box sx={{ display: 'flex' }}>\n <ArticleOutlined className={styles.cardMetadataIcon} />\n <HighlightedTypography\n className={`${styles.cardMetadataTypographyWithIcon} ${styles.cardDescription}`}\n text={plainDescription}\n searchTerms={props.searchTerms ?? []}\n />\n </Box>\n )}\n\n {friendlySize && (\n <Box sx={{ display: 'flex' }}>\n <InfoOutline className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n File size: <b>{friendlySize}</b>\n </Typography>\n </Box>\n )}\n {props.locatedIn && (\n <Box\n sx={{ display: 'flex', marginLeft: '24px', alignItems: 'center' }}\n >\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Located in:{' '}\n </Typography>\n <DashboardTwoTone\n className={styles.cardMetadataIcon}\n sx={{\n marginRight: '4px',\n }}\n />\n <Link\n className={styles.locatedInLink}\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.locatedIn?.id}`}\n >\n {props.locatedIn?.name}\n </Link>\n </Box>\n )}\n </Stack>\n </Box>\n </SynapseSearchResultsCardContainer>\n )\n}\n\nexport default SynapseSearchResultsCard\n"],"names":["SynapseSearchResultsCardContainer","styled","Paper","SynapseSearchResultsCard","props","downloadConfirmationRef","useRef","ref","inView","useInView","entityBundle","useGetEntityBundle","EntityType","file","friendlySize","calculateFriendlyFileSize","plainDescription","markdownToPlainText","jsxs","Box","jsx","Link","getEndpoint","BackendDestinationEnum","HighlightedTypography","styles","FavoriteButton","EntityDownloadButton","Chip","EntityTypeIcon","searchResultsCardChipStyles","HasAccessChip","Stack","UpdateIcon","Typography","formatDate","dayjs","ArticleOutlined","InfoOutline","DashboardTwoTone"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { jsx as o, jsxs as x, Fragment as M } from "react/jsx-runtime";
2
- import _ from "../../download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js";
3
- import { useGetAddToDownloadListRequestForCurrentQuery as g } from "../../QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js";
1
+ import { jsx as o, jsxs as x, Fragment as L } from "react/jsx-runtime";
2
+ import M from "../../download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js";
3
+ import { useGetAddToDownloadListRequestForCurrentQuery as _ } from "../../QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js";
4
4
  import "../../../synapse-client/SynapseClient.js";
5
5
  import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
6
6
  import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
@@ -12,8 +12,8 @@ import "lodash-es";
12
12
  import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
13
13
  import "@tanstack/react-query";
14
14
  import "../../../utils/PermissionLevelToAccessType.js";
15
- import { useState as D } from "react";
16
- import { useSynapseContext as L } from "../../../utils/context/SynapseContext.js";
15
+ import { useState as g } from "react";
16
+ import { useSynapseContext as D } from "../../../utils/context/SynapseContext.js";
17
17
  import "use-deep-compare-effect";
18
18
  import { Button as a, Box as E } from "@mui/material";
19
19
  import "../../../utils/hooks/useCookiePreferences.js";
@@ -45,12 +45,12 @@ import { RowSelectionUI as j } from "./RowSelectionUI.js";
45
45
  import { SignInRequiredModal as U } from "../../SignInRequiredModal/SignInRequiredModal.js";
46
46
  const Y = "SendToAnalysisPlatformRowSelectionControlButton";
47
47
  function Qo(d) {
48
- const { customControls: p = [], remount: e } = d, { isAuthenticated: u } = L(), [c, n] = D(!1), { entityId: i, versionNumber: f, getCurrentQueryRequest: A } = q(), { data: w } = N(i, f), { data: m } = G(), [r, s] = b(F), S = g(), {
48
+ const { customControls: p = [], remount: e } = d, { isAuthenticated: u } = D(), [c, n] = g(!1), { entityId: i, versionNumber: f, getCurrentQueryRequest: A } = q(), { data: w } = N(i, f), { data: s } = G(), [r, m] = b(F), S = _(), {
49
49
  setIsShowingExportToAnalysisPlatformModal: C,
50
50
  enabledExternalAnalysisPlatforms: T
51
51
  } = Q(), y = T.length > 0, h = () => {
52
- s([]), e && e();
53
- }, I = O(m?.columnModels), R = B(
52
+ m([]), e && e();
53
+ }, I = O(s?.columnModels), R = B(
54
54
  w,
55
55
  I
56
56
  );
@@ -59,15 +59,15 @@ function Qo(d) {
59
59
  {
60
60
  show: r.length > 0,
61
61
  selectedRowCount: r.length,
62
- onClearSelection: () => s([]),
63
- customControls: /* @__PURE__ */ x(M, { children: [
62
+ onClearSelection: () => m([]),
63
+ customControls: /* @__PURE__ */ x(L, { children: [
64
64
  p.map((t) => /* @__PURE__ */ o(
65
65
  k,
66
66
  {
67
67
  variant: "contained",
68
68
  callbackData: {
69
69
  tableId: i,
70
- queryMetadata: m,
70
+ queryMetadata: s,
71
71
  selectedRows: r,
72
72
  refresh: h,
73
73
  request: A()
@@ -108,7 +108,7 @@ function Qo(d) {
108
108
  width: "100%"
109
109
  },
110
110
  children: /* @__PURE__ */ o(
111
- _,
111
+ M,
112
112
  {
113
113
  addToDownloadListRequest: S,
114
114
  onClose: () => {
@@ -124,7 +124,7 @@ function Qo(d) {
124
124
  );
125
125
  },
126
126
  startIcon: /* @__PURE__ */ o(P, {}),
127
- children: "Add to Download Cart"
127
+ children: "Add to Download List"
128
128
  }
129
129
  )
130
130
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionControls.js","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import AddToDownloadListConfirmationAlert from '@/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\nimport { useGetAddToDownloadListRequestForCurrentQuery } from '@/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery'\nimport { useGetEntity } from '@/synapse-queries'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Button } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useAtom } from 'jotai'\nimport { useState } from 'react'\nimport { toast } from 'react-hot-toast'\nimport { useSynapseContext } from '@/utils'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { selectedRowsAtom } from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport {\n getFileColumnModelId,\n SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE,\n} from '../SynapseTableUtils'\nimport { CustomControlButton } from '../CustomControls/CustomControlButton'\nimport { CustomControl } from '../TopLevelControls/TopLevelControls'\nimport { RowSelectionUI } from './RowSelectionUI'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\n\nconst SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID =\n 'SendToAnalysisPlatformRowSelectionControlButton'\n\nexport type RowSelectionControlsProps = {\n customControls?: CustomControl[]\n remount?: () => void\n}\n\n/**\n * This component is responsible for rendering the RowSelectionUI and the custom controls. Must be wrapped in a\n * QueryContext and a QueryVisualizationContext.\n * @param props\n * @constructor\n */\nexport function RowSelectionControls(props: RowSelectionControlsProps) {\n const { customControls = [], remount } = props\n const { isAuthenticated } = useSynapseContext()\n const [showLoginModal, setShowLoginModal] = useState(false)\n const { entityId, versionNumber, getCurrentQueryRequest } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n const [selectedRows, setSelectedRows] = useAtom(selectedRowsAtom)\n\n const addToDownloadListRequest =\n useGetAddToDownloadListRequestForCurrentQuery()\n\n const {\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n const showExportToAnalysisPlatformButton =\n enabledExternalAnalysisPlatforms.length > 0\n\n const refresh = () => {\n // clear selection\n setSelectedRows([])\n if (remount) {\n remount()\n }\n }\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n return (\n <RowSelectionUI\n show={selectedRows.length > 0}\n selectedRowCount={selectedRows.length}\n onClearSelection={() => setSelectedRows([])}\n customControls={\n <>\n {customControls.map(customControl => {\n return (\n <CustomControlButton\n key={customControl.buttonText}\n variant=\"contained\"\n callbackData={{\n tableId: entityId!,\n queryMetadata: queryMetadata,\n selectedRows,\n refresh,\n request: getCurrentQueryRequest(),\n }}\n control={customControl}\n startIcon={customControl.icon}\n />\n )\n })}\n {/* TODO: Generic button */}\n {showExportToAnalysisPlatformButton && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (isAuthenticated) {\n setIsShowingExportToAnalysisPlatformModal(true)\n } else {\n setShowLoginModal(true)\n }\n }}\n id={SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID}\n >\n Send to Analysis Platform\n </Button>\n )}\n {showLoginModal && (\n <SignInRequiredModal\n onHide={() => setShowLoginModal(false)}\n content={SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE}\n />\n )}\n {showAddToDownloadCart && (\n <Button\n variant=\"contained\"\n onClick={() => {\n const toastId = toast.custom(\n <Box\n sx={{\n width: '100%',\n }}\n >\n <AddToDownloadListConfirmationAlert\n addToDownloadListRequest={addToDownloadListRequest}\n onClose={() => {\n toast.dismiss(toastId)\n }}\n />\n </Box>,\n {\n duration: Infinity,\n },\n )\n }}\n startIcon={<GetAppTwoTone />}\n >\n Add to Download Cart\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"names":["SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID","RowSelectionControls","props","customControls","remount","isAuthenticated","useSynapseContext","showLoginModal","setShowLoginModal","useState","entityId","versionNumber","getCurrentQueryRequest","useQueryContext","entity","useGetEntity","queryMetadata","useGetQueryMetadata","selectedRows","setSelectedRows","useAtom","selectedRowsAtom","addToDownloadListRequest","useGetAddToDownloadListRequestForCurrentQuery","setIsShowingExportToAnalysisPlatformModal","enabledExternalAnalysisPlatforms","useQueryVisualizationContext","showExportToAnalysisPlatformButton","refresh","fileColumnId","getFileColumnModelId","showAddToDownloadCart","canTableQueryBeAddedToDownloadList","jsx","RowSelectionUI","jsxs","Fragment","customControl","CustomControlButton","Button","SignInRequiredModal","SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE","toastId","toast","Box","AddToDownloadListConfirmationAlert","GetAppTwoTone"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,IACJ;AAaK,SAASC,GAAqBC,GAAkC;AACrE,QAAM,EAAE,gBAAAC,IAAiB,IAAI,SAAAC,MAAYF,GACnC,EAAE,iBAAAG,EAAA,IAAoBC,EAAA,GACtB,CAACC,GAAgBC,CAAiB,IAAIC,EAAS,EAAK,GACpD,EAAE,UAAAC,GAAU,eAAAC,GAAe,wBAAAC,EAAA,IAA2BC,EAAA,GACtD,EAAE,MAAMC,EAAA,IAAWC,EAAoBL,GAAUC,CAAa,GAC9D,EAAE,MAAMK,EAAA,IAAkBC,EAAA,GAC1B,CAACC,GAAcC,CAAe,IAAIC,EAAQC,CAAgB,GAE1DC,IACJC,EAAA,GAEI;AAAA,IACJ,2CAAAC;AAAA,IACA,kCAAAC;AAAA,EAAA,IACEC,EAAA,GAEEC,IACJF,EAAiC,SAAS,GAEtCG,IAAU,MAAM;AAEpB,IAAAT,EAAgB,CAAA,CAAE,GACdf,KACFA,EAAA;AAAA,EAEJ,GACMyB,IAAeC,EAAqBd,GAAe,YAAY,GAC/De,IAAwBC;AAAA,IAC5BlB;AAAA,IACAe;AAAA,EAAA;AAGF,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMhB,EAAa,SAAS;AAAA,MAC5B,kBAAkBA,EAAa;AAAA,MAC/B,kBAAkB,MAAMC,EAAgB,EAAE;AAAA,MAC1C,gBACE,gBAAAgB,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAjC,EAAe,IAAI,CAAAkC,MAEhB,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YAEC,SAAQ;AAAA,YACR,cAAc;AAAA,cACZ,SAAS5B;AAAA,cACT,eAAAM;AAAA,cACA,cAAAE;AAAA,cACA,SAAAU;AAAA,cACA,SAAShB,EAAA;AAAA,YAAuB;AAAA,YAElC,SAASyB;AAAA,YACT,WAAWA,EAAc;AAAA,UAAA;AAAA,UAVpBA,EAAc;AAAA,QAAA,CAaxB;AAAA,QAEAV,KACC,gBAAAM;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,cAAIlC,IACFmB,EAA0C,EAAI,IAE9ChB,EAAkB,EAAI;AAAA,YAE1B;AAAA,YACA,IAAIR;AAAA,YACL,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIFO,KACC,gBAAA0B;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,QAAQ,MAAMhC,EAAkB,EAAK;AAAA,YACrC,SAASiC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGZV,KACC,gBAAAE;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,oBAAMG,IAAUC,EAAM;AAAA,gBACpB,gBAAAV;AAAA,kBAACW;AAAA,kBAAA;AAAA,oBACC,IAAI;AAAA,sBACF,OAAO;AAAA,oBAAA;AAAA,oBAGT,UAAA,gBAAAX;AAAA,sBAACY;AAAA,sBAAA;AAAA,wBACC,0BAAAvB;AAAA,wBACA,SAAS,MAAM;AACb,0BAAAqB,EAAM,QAAQD,CAAO;AAAA,wBACvB;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,gBAEF;AAAA,kBACE,UAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,YAEJ;AAAA,YACA,6BAAYI,GAAA,EAAc;AAAA,YAC3B,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"RowSelectionControls.js","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import AddToDownloadListConfirmationAlert from '@/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\nimport { useGetAddToDownloadListRequestForCurrentQuery } from '@/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery'\nimport { useGetEntity } from '@/synapse-queries'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Button } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useAtom } from 'jotai'\nimport { useState } from 'react'\nimport { toast } from 'react-hot-toast'\nimport { useSynapseContext } from '@/utils'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { selectedRowsAtom } from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport {\n getFileColumnModelId,\n SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE,\n} from '../SynapseTableUtils'\nimport { CustomControlButton } from '../CustomControls/CustomControlButton'\nimport { CustomControl } from '../TopLevelControls/TopLevelControls'\nimport { RowSelectionUI } from './RowSelectionUI'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\n\nconst SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID =\n 'SendToAnalysisPlatformRowSelectionControlButton'\n\nexport type RowSelectionControlsProps = {\n customControls?: CustomControl[]\n remount?: () => void\n}\n\n/**\n * This component is responsible for rendering the RowSelectionUI and the custom controls. Must be wrapped in a\n * QueryContext and a QueryVisualizationContext.\n * @param props\n * @constructor\n */\nexport function RowSelectionControls(props: RowSelectionControlsProps) {\n const { customControls = [], remount } = props\n const { isAuthenticated } = useSynapseContext()\n const [showLoginModal, setShowLoginModal] = useState(false)\n const { entityId, versionNumber, getCurrentQueryRequest } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n const [selectedRows, setSelectedRows] = useAtom(selectedRowsAtom)\n\n const addToDownloadListRequest =\n useGetAddToDownloadListRequestForCurrentQuery()\n\n const {\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n const showExportToAnalysisPlatformButton =\n enabledExternalAnalysisPlatforms.length > 0\n\n const refresh = () => {\n // clear selection\n setSelectedRows([])\n if (remount) {\n remount()\n }\n }\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n return (\n <RowSelectionUI\n show={selectedRows.length > 0}\n selectedRowCount={selectedRows.length}\n onClearSelection={() => setSelectedRows([])}\n customControls={\n <>\n {customControls.map(customControl => {\n return (\n <CustomControlButton\n key={customControl.buttonText}\n variant=\"contained\"\n callbackData={{\n tableId: entityId!,\n queryMetadata: queryMetadata,\n selectedRows,\n refresh,\n request: getCurrentQueryRequest(),\n }}\n control={customControl}\n startIcon={customControl.icon}\n />\n )\n })}\n {/* TODO: Generic button */}\n {showExportToAnalysisPlatformButton && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (isAuthenticated) {\n setIsShowingExportToAnalysisPlatformModal(true)\n } else {\n setShowLoginModal(true)\n }\n }}\n id={SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID}\n >\n Send to Analysis Platform\n </Button>\n )}\n {showLoginModal && (\n <SignInRequiredModal\n onHide={() => setShowLoginModal(false)}\n content={SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE}\n />\n )}\n {showAddToDownloadCart && (\n <Button\n variant=\"contained\"\n onClick={() => {\n const toastId = toast.custom(\n <Box\n sx={{\n width: '100%',\n }}\n >\n <AddToDownloadListConfirmationAlert\n addToDownloadListRequest={addToDownloadListRequest}\n onClose={() => {\n toast.dismiss(toastId)\n }}\n />\n </Box>,\n {\n duration: Infinity,\n },\n )\n }}\n startIcon={<GetAppTwoTone />}\n >\n Add to Download List\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"names":["SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID","RowSelectionControls","props","customControls","remount","isAuthenticated","useSynapseContext","showLoginModal","setShowLoginModal","useState","entityId","versionNumber","getCurrentQueryRequest","useQueryContext","entity","useGetEntity","queryMetadata","useGetQueryMetadata","selectedRows","setSelectedRows","useAtom","selectedRowsAtom","addToDownloadListRequest","useGetAddToDownloadListRequestForCurrentQuery","setIsShowingExportToAnalysisPlatformModal","enabledExternalAnalysisPlatforms","useQueryVisualizationContext","showExportToAnalysisPlatformButton","refresh","fileColumnId","getFileColumnModelId","showAddToDownloadCart","canTableQueryBeAddedToDownloadList","jsx","RowSelectionUI","jsxs","Fragment","customControl","CustomControlButton","Button","SignInRequiredModal","SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE","toastId","toast","Box","AddToDownloadListConfirmationAlert","GetAppTwoTone"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,IACJ;AAaK,SAASC,GAAqBC,GAAkC;AACrE,QAAM,EAAE,gBAAAC,IAAiB,IAAI,SAAAC,MAAYF,GACnC,EAAE,iBAAAG,EAAA,IAAoBC,EAAA,GACtB,CAACC,GAAgBC,CAAiB,IAAIC,EAAS,EAAK,GACpD,EAAE,UAAAC,GAAU,eAAAC,GAAe,wBAAAC,EAAA,IAA2BC,EAAA,GACtD,EAAE,MAAMC,EAAA,IAAWC,EAAoBL,GAAUC,CAAa,GAC9D,EAAE,MAAMK,EAAA,IAAkBC,EAAA,GAC1B,CAACC,GAAcC,CAAe,IAAIC,EAAQC,CAAgB,GAE1DC,IACJC,EAAA,GAEI;AAAA,IACJ,2CAAAC;AAAA,IACA,kCAAAC;AAAA,EAAA,IACEC,EAAA,GAEEC,IACJF,EAAiC,SAAS,GAEtCG,IAAU,MAAM;AAEpB,IAAAT,EAAgB,CAAA,CAAE,GACdf,KACFA,EAAA;AAAA,EAEJ,GACMyB,IAAeC,EAAqBd,GAAe,YAAY,GAC/De,IAAwBC;AAAA,IAC5BlB;AAAA,IACAe;AAAA,EAAA;AAGF,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMhB,EAAa,SAAS;AAAA,MAC5B,kBAAkBA,EAAa;AAAA,MAC/B,kBAAkB,MAAMC,EAAgB,EAAE;AAAA,MAC1C,gBACE,gBAAAgB,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAjC,EAAe,IAAI,CAAAkC,MAEhB,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YAEC,SAAQ;AAAA,YACR,cAAc;AAAA,cACZ,SAAS5B;AAAA,cACT,eAAAM;AAAA,cACA,cAAAE;AAAA,cACA,SAAAU;AAAA,cACA,SAAShB,EAAA;AAAA,YAAuB;AAAA,YAElC,SAASyB;AAAA,YACT,WAAWA,EAAc;AAAA,UAAA;AAAA,UAVpBA,EAAc;AAAA,QAAA,CAaxB;AAAA,QAEAV,KACC,gBAAAM;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,cAAIlC,IACFmB,EAA0C,EAAI,IAE9ChB,EAAkB,EAAI;AAAA,YAE1B;AAAA,YACA,IAAIR;AAAA,YACL,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIFO,KACC,gBAAA0B;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,QAAQ,MAAMhC,EAAkB,EAAK;AAAA,YACrC,SAASiC;AAAA,UAAA;AAAA,QAAA;AAAA,QAGZV,KACC,gBAAAE;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,oBAAMG,IAAUC,EAAM;AAAA,gBACpB,gBAAAV;AAAA,kBAACW;AAAA,kBAAA;AAAA,oBACC,IAAI;AAAA,sBACF,OAAO;AAAA,oBAAA;AAAA,oBAGT,UAAA,gBAAAX;AAAA,sBAACY;AAAA,sBAAA;AAAA,wBACC,0BAAAvB;AAAA,wBACA,SAAS,MAAM;AACb,0BAAAqB,EAAM,QAAQD,CAAO;AAAA,wBACvB;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,gBAEF;AAAA,kBACE,UAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,YAEJ;AAAA,YACA,6BAAYI,GAAA,EAAc;AAAA,YAC3B,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -1,13 +1,13 @@
1
1
  import u from "pluralize";
2
2
  import { upperFirst as A } from "lodash-es";
3
- const f = "to Download Cart";
4
- function d(r, o, e) {
3
+ const f = "to Download List";
4
+ function i(r, o, e) {
5
5
  return r ? o.length : e;
6
6
  }
7
- function $(r, o, e, l, n) {
7
+ function s(r, o, e, l, n) {
8
8
  if (!r && !o)
9
9
  return `all ${u(n)}`;
10
- const t = d(
10
+ const t = i(
11
11
  o,
12
12
  e,
13
13
  l
@@ -17,12 +17,12 @@ function $(r, o, e, l, n) {
17
17
  t
18
18
  )}` : u(n);
19
19
  }
20
- function c(r, o, e, l, n) {
20
+ function $(r, o, e, l, n) {
21
21
  if (!r && !o)
22
22
  return `Add All ${A(
23
23
  u(n)
24
24
  )} ${f}`;
25
- const t = d(
25
+ const t = i(
26
26
  o,
27
27
  e,
28
28
  l
@@ -32,8 +32,8 @@ function c(r, o, e, l, n) {
32
32
  )} ${f}` : `Add ${f}`;
33
33
  }
34
34
  export {
35
- c as getNumberOfResultsToAddToDownloadListCopy,
36
- d as getNumberOfResultsToInvokeAction,
37
- $ as getNumberOfResultsToInvokeActionCopy
35
+ $ as getNumberOfResultsToAddToDownloadListCopy,
36
+ i as getNumberOfResultsToInvokeAction,
37
+ s as getNumberOfResultsToInvokeActionCopy
38
38
  };
39
39
  //# sourceMappingURL=TopLevelControlsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopLevelControlsUtils.js","sources":["../../../../src/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.ts"],"sourcesContent":["import { QueryContextType } from '../../QueryContext'\nimport { QueryVisualizationContextType } from '../../QueryVisualizationWrapper'\nimport pluralize from 'pluralize'\nimport { upperFirst } from 'lodash-es'\nimport { Row } from '@sage-bionetworks/synapse-types'\n\nconst TO_DOWNLOAD_CART = 'to Download Cart'\n\n/**\n * If the user invokes an action on the table (such as \"Send to CAVATICA\"), we want to tell the user how many rows they\n * will perform the action on.\n *\n * If selection is enabled and rows have been selected, return the number of selected rows.\n * If no rows have been selected, return the total number of query results.\n * If the total number of query results is unknown, return undefined.\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n */\nexport function getNumberOfResultsToInvokeAction(\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows?: number,\n) {\n return hasSelectedRows ? selectedRows.length : totalNumberOfRows\n}\n\n/**\n * Returns copy for how to reference the number of results that will be affected by an action, such as \"Send to CAVATICA\".\n * Utilizes the unit description to return a count and pluralized unit description.\n *\n * If the user has not selected rows or applied any filters, return \"all <unit>s\".\n * If the user has applied filters but not selected rows, return the total number of query results to indicate that the filtered result set is used. e.g. '2 <unit>s'\n * - If the total number of query results is unknown, the count is not included. e.g. '<unit>s'\n * If the user has selected rows, return the number of selected rows. e.g. '2 <unit>s'\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToInvokeActionCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `all ${pluralize(unitDescription)}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `${numberOfResultsToInvokeAction.toLocaleString()} ${pluralize(\n unitDescription,\n numberOfResultsToInvokeAction,\n )}`\n }\n // Null count, so just return the pluralized unit description\n return pluralize(unitDescription)\n}\n\n/**\n * Returns copy for how to reference the number of results that will be sent to the download list.\n * Utilizes the unit description to return a count and pluralized unit description.\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `Add All ${upperFirst(\n pluralize(unitDescription),\n )} ${TO_DOWNLOAD_CART}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `Add ${numberOfResultsToInvokeAction.toLocaleString()} Selected ${upperFirst(\n pluralize(unitDescription, numberOfResultsToInvokeAction),\n )} ${TO_DOWNLOAD_CART}`\n }\n // Null count\n return `Add ${TO_DOWNLOAD_CART}`\n}\n"],"names":["TO_DOWNLOAD_CART","getNumberOfResultsToInvokeAction","hasSelectedRows","selectedRows","totalNumberOfRows","getNumberOfResultsToInvokeActionCopy","hasResettableFilters","unitDescription","pluralize","numberOfResultsToInvokeAction","getNumberOfResultsToAddToDownloadListCopy","upperFirst"],"mappings":";;AAMA,MAAMA,IAAmB;AAalB,SAASC,EACdC,GACAC,GACAC,GACA;AACA,SAAOF,IAAkBC,EAAa,SAASC;AACjD;AAgBO,SAASC,EACdC,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,OAAOM,EAAUD,CAAe,CAAC;AAG1C,QAAME,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,GAAGA,EAA8B,eAAA,CAAgB,IAAID;AAAA,IAC1DD;AAAA,IACAE;AAAA,EAAA,CACD,KAGID,EAAUD,CAAe;AAClC;AAWO,SAASG,EACdJ,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,WAAWS;AAAA,MAChBH,EAAUD,CAAe;AAAA,IAAA,CAC1B,IAAIP,CAAgB;AAGvB,QAAMS,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,OAAOA,EAA8B,eAAA,CAAgB,aAAaE;AAAA,IACvEH,EAAUD,GAAiBE,CAA6B;AAAA,EAAA,CACzD,IAAIT,CAAgB,KAGhB,OAAOA,CAAgB;AAChC;"}
1
+ {"version":3,"file":"TopLevelControlsUtils.js","sources":["../../../../src/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.ts"],"sourcesContent":["import { QueryContextType } from '../../QueryContext'\nimport { QueryVisualizationContextType } from '../../QueryVisualizationWrapper'\nimport pluralize from 'pluralize'\nimport { upperFirst } from 'lodash-es'\nimport { Row } from '@sage-bionetworks/synapse-types'\n\nconst TO_DOWNLOAD_CART = 'to Download List'\n\n/**\n * If the user invokes an action on the table (such as \"Send to CAVATICA\"), we want to tell the user how many rows they\n * will perform the action on.\n *\n * If selection is enabled and rows have been selected, return the number of selected rows.\n * If no rows have been selected, return the total number of query results.\n * If the total number of query results is unknown, return undefined.\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n */\nexport function getNumberOfResultsToInvokeAction(\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows?: number,\n) {\n return hasSelectedRows ? selectedRows.length : totalNumberOfRows\n}\n\n/**\n * Returns copy for how to reference the number of results that will be affected by an action, such as \"Send to CAVATICA\".\n * Utilizes the unit description to return a count and pluralized unit description.\n *\n * If the user has not selected rows or applied any filters, return \"all <unit>s\".\n * If the user has applied filters but not selected rows, return the total number of query results to indicate that the filtered result set is used. e.g. '2 <unit>s'\n * - If the total number of query results is unknown, the count is not included. e.g. '<unit>s'\n * If the user has selected rows, return the number of selected rows. e.g. '2 <unit>s'\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToInvokeActionCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `all ${pluralize(unitDescription)}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `${numberOfResultsToInvokeAction.toLocaleString()} ${pluralize(\n unitDescription,\n numberOfResultsToInvokeAction,\n )}`\n }\n // Null count, so just return the pluralized unit description\n return pluralize(unitDescription)\n}\n\n/**\n * Returns copy for how to reference the number of results that will be sent to the download list.\n * Utilizes the unit description to return a count and pluralized unit description.\n * @param hasResettableFilters\n * @param hasSelectedRows\n * @param selectedRows\n * @param totalNumberOfRows\n * @param unitDescription\n */\nexport function getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters: QueryContextType['hasResettableFilters'],\n hasSelectedRows: boolean,\n selectedRows: Row[],\n totalNumberOfRows: number | undefined,\n unitDescription: QueryVisualizationContextType['unitDescription'],\n) {\n if (!hasResettableFilters && !hasSelectedRows) {\n return `Add All ${upperFirst(\n pluralize(unitDescription),\n )} ${TO_DOWNLOAD_CART}`\n }\n\n const numberOfResultsToInvokeAction = getNumberOfResultsToInvokeAction(\n hasSelectedRows,\n selectedRows,\n totalNumberOfRows,\n )\n if (numberOfResultsToInvokeAction != null) {\n return `Add ${numberOfResultsToInvokeAction.toLocaleString()} Selected ${upperFirst(\n pluralize(unitDescription, numberOfResultsToInvokeAction),\n )} ${TO_DOWNLOAD_CART}`\n }\n // Null count\n return `Add ${TO_DOWNLOAD_CART}`\n}\n"],"names":["TO_DOWNLOAD_CART","getNumberOfResultsToInvokeAction","hasSelectedRows","selectedRows","totalNumberOfRows","getNumberOfResultsToInvokeActionCopy","hasResettableFilters","unitDescription","pluralize","numberOfResultsToInvokeAction","getNumberOfResultsToAddToDownloadListCopy","upperFirst"],"mappings":";;AAMA,MAAMA,IAAmB;AAalB,SAASC,EACdC,GACAC,GACAC,GACA;AACA,SAAOF,IAAkBC,EAAa,SAASC;AACjD;AAgBO,SAASC,EACdC,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,OAAOM,EAAUD,CAAe,CAAC;AAG1C,QAAME,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,GAAGA,EAA8B,eAAA,CAAgB,IAAID;AAAA,IAC1DD;AAAA,IACAE;AAAA,EAAA,CACD,KAGID,EAAUD,CAAe;AAClC;AAWO,SAASG,EACdJ,GACAJ,GACAC,GACAC,GACAG,GACA;AACA,MAAI,CAACD,KAAwB,CAACJ;AAC5B,WAAO,WAAWS;AAAA,MAChBH,EAAUD,CAAe;AAAA,IAAA,CAC1B,IAAIP,CAAgB;AAGvB,QAAMS,IAAgCR;AAAA,IACpCC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA;AAEF,SAAIK,KAAiC,OAC5B,OAAOA,EAA8B,eAAA,CAAgB,aAAaE;AAAA,IACvEH,EAAUD,GAAiBE,CAA6B;AAAA,EAAA,CACzD,IAAIT,CAAgB,KAGhB,OAAOA,CAAgB;AAChC;"}
@@ -0,0 +1,16 @@
1
+ import { SxProps, TypographyOwnProps } from '@mui/material';
2
+ import { PropsWithChildren } from 'react';
3
+ export type TextToComponentCollapseProps = PropsWithChildren<{
4
+ text: string;
5
+ defaultVisible?: boolean;
6
+ textVariant?: TypographyOwnProps['variant'];
7
+ textSx?: SxProps;
8
+ textContainerSx?: SxProps;
9
+ collapseBoxSx?: SxProps;
10
+ iconSx?: SxProps;
11
+ }>;
12
+ /**
13
+ * Wrap any child components in a collapse, using a Typography as the trigger
14
+ */
15
+ export default function TextToComponentCollapse({ text, defaultVisible, textVariant, textSx, textContainerSx, collapseBoxSx, iconSx, children, }: TextToComponentCollapseProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=TextToComponentCollapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextToComponentCollapse.d.ts","sourceRoot":"","sources":["../../src/components/TextToComponentCollapse.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAGzC,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,IAAI,EACJ,cAAc,EACd,WAAyB,EACzB,MAAM,EACN,eAAe,EACf,aAAa,EACb,MAAM,EACN,QAAQ,GACT,EAAE,4BAA4B,2CAgB9B"}
@@ -0,0 +1,29 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Typography as l } from "@mui/material";
3
+ import s from "./ComponentCollapse.js";
4
+ function c({
5
+ text: n,
6
+ defaultVisible: t,
7
+ textVariant: r = "smallLink",
8
+ textSx: e,
9
+ textContainerSx: p,
10
+ collapseBoxSx: m,
11
+ iconSx: a,
12
+ children: i
13
+ }) {
14
+ return /* @__PURE__ */ o(
15
+ s,
16
+ {
17
+ component: /* @__PURE__ */ o(l, { variant: r, sx: e, children: n }),
18
+ componentContainerSx: p,
19
+ defaultVisible: t,
20
+ collapseBoxSx: m,
21
+ iconSx: a,
22
+ children: i
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ c as default
28
+ };
29
+ //# sourceMappingURL=TextToComponentCollapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextToComponentCollapse.js","sources":["../../src/components/TextToComponentCollapse.tsx"],"sourcesContent":["import { SxProps, Typography, TypographyOwnProps } from '@mui/material'\nimport { PropsWithChildren } from 'react'\nimport ComponentCollapse from './ComponentCollapse'\n\nexport type TextToComponentCollapseProps = PropsWithChildren<{\n text: string\n defaultVisible?: boolean // default to false (collapsed)\n textVariant?: TypographyOwnProps['variant']\n textSx?: SxProps\n textContainerSx?: SxProps\n collapseBoxSx?: SxProps\n iconSx?: SxProps\n}>\n\n/**\n * Wrap any child components in a collapse, using a Typography as the trigger\n */\nexport default function TextToComponentCollapse({\n text,\n defaultVisible,\n textVariant = 'smallLink',\n textSx,\n textContainerSx,\n collapseBoxSx,\n iconSx,\n children,\n}: TextToComponentCollapseProps) {\n return (\n <ComponentCollapse\n component={\n <Typography variant={textVariant} sx={textSx}>\n {text}\n </Typography>\n }\n componentContainerSx={textContainerSx}\n defaultVisible={defaultVisible}\n collapseBoxSx={collapseBoxSx}\n iconSx={iconSx}\n >\n {children}\n </ComponentCollapse>\n )\n}\n"],"names":["TextToComponentCollapse","text","defaultVisible","textVariant","textSx","textContainerSx","collapseBoxSx","iconSx","children","jsx","ComponentCollapse","Typography"],"mappings":";;;AAiBA,SAAwBA,EAAwB;AAAA,EAC9C,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,GAAiC;AAC/B,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WACE,gBAAAD,EAACE,GAAA,EAAW,SAASR,GAAa,IAAIC,GACnC,UAAAH,GACH;AAAA,MAEF,sBAAsBI;AAAA,MACtB,gBAAAH;AAAA,MACA,eAAAI;AAAA,MACA,QAAAC;AAAA,MAEC,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}