synapse-react-client 4.0.2 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) 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/HandWithMoney.d.ts +5 -0
  18. package/dist/assets/icons/HandWithMoney.d.ts.map +1 -0
  19. package/dist/assets/icons/HandWithMoney.js +15 -0
  20. package/dist/assets/icons/HandWithMoney.js.map +1 -0
  21. package/dist/assets/icons/MultiFile.d.ts +5 -0
  22. package/dist/assets/icons/MultiFile.d.ts.map +1 -0
  23. package/dist/assets/icons/MultiFile.js +8 -0
  24. package/dist/assets/icons/MultiFile.js.map +1 -0
  25. package/dist/assets/icons/MultiFile.svg +4 -0
  26. package/dist/assets/icons/MultiFile.svg.js +7 -0
  27. package/dist/assets/icons/MultiFile.svg.js.map +1 -0
  28. package/dist/assets/icons/OpenBook.d.ts +5 -0
  29. package/dist/assets/icons/OpenBook.d.ts.map +1 -0
  30. package/dist/assets/icons/OpenBook.js +99 -0
  31. package/dist/assets/icons/OpenBook.js.map +1 -0
  32. package/dist/assets/icons/Podium.d.ts +5 -0
  33. package/dist/assets/icons/Podium.d.ts.map +1 -0
  34. package/dist/assets/icons/Podium.js +36 -0
  35. package/dist/assets/icons/Podium.js.map +1 -0
  36. package/dist/assets/icons/RosetteRibbon.d.ts +5 -0
  37. package/dist/assets/icons/RosetteRibbon.d.ts.map +1 -0
  38. package/dist/assets/icons/RosetteRibbon.js +36 -0
  39. package/dist/assets/icons/RosetteRibbon.js.map +1 -0
  40. package/dist/assets/icons/StarTrophy.d.ts +5 -0
  41. package/dist/assets/icons/StarTrophy.d.ts.map +1 -0
  42. package/dist/assets/icons/StarTrophy.js +99 -0
  43. package/dist/assets/icons/StarTrophy.js.map +1 -0
  44. package/dist/assets/icons/ThreeStars.d.ts +5 -0
  45. package/dist/assets/icons/ThreeStars.d.ts.map +1 -0
  46. package/dist/assets/icons/ThreeStars.js +71 -0
  47. package/dist/assets/icons/ThreeStars.js.map +1 -0
  48. package/dist/assets/icons/UnpackagableFile.d.ts +5 -0
  49. package/dist/assets/icons/UnpackagableFile.d.ts.map +1 -0
  50. package/dist/assets/icons/UnpackagableFile.js +8 -0
  51. package/dist/assets/icons/UnpackagableFile.js.map +1 -0
  52. package/dist/assets/icons/UnpackagableFile.svg +4 -0
  53. package/dist/assets/icons/UnpackagableFile.svg.js +7 -0
  54. package/dist/assets/icons/UnpackagableFile.svg.js.map +1 -0
  55. package/dist/assets/mui_components/PackagableFile.d.ts.map +1 -1
  56. package/dist/assets/mui_components/PackagableFile.js +5 -4
  57. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  58. package/dist/assets/mui_components/PackagableFile.svg +3 -0
  59. package/dist/assets/mui_components/PackagableFile.svg.js +7 -0
  60. package/dist/assets/mui_components/PackagableFile.svg.js.map +1 -0
  61. package/dist/assets/themed_icons/index.d.ts +1 -2
  62. package/dist/assets/themed_icons/index.d.ts.map +1 -1
  63. package/dist/assets/themed_icons/index.js +8 -10
  64. package/dist/assets/themed_icons/index.js.map +1 -1
  65. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +4 -4
  66. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  67. package/dist/components/AddToDownloadListV2.js +10 -10
  68. package/dist/components/AddToDownloadListV2.js.map +1 -1
  69. package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
  70. package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -2
  71. package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
  72. package/dist/components/BasePortalCard/BasePortalCard.js +21 -28
  73. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  74. package/dist/components/BasePortalCard/BasePortalCard.module.scss +7 -1
  75. package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +11 -11
  76. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
  77. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +24 -24
  78. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  79. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +5 -1
  80. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  81. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  82. package/dist/components/CardContainerLogic/index.d.ts +1 -1
  83. package/dist/components/CardContainerLogic/index.d.ts.map +1 -1
  84. package/dist/components/CardDeck/TableQueryCardDeck.js +12 -9
  85. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  86. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +33 -33
  87. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  88. package/dist/components/ChangePassword/useChangePasswordFormState.js +5 -2
  89. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  90. package/dist/components/ComponentCollapse.d.ts +6 -10
  91. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  92. package/dist/components/ComponentCollapse.js +31 -35
  93. package/dist/components/ComponentCollapse.js.map +1 -1
  94. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +12 -9
  95. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  96. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +8 -3
  97. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  98. package/dist/components/DataGrid/SynapseGrid.js +8 -3
  99. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  100. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +8 -3
  101. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  102. package/dist/components/DirectDownload/DirectDownload.d.ts.map +1 -1
  103. package/dist/components/DirectDownload/DirectDownload.js +23 -23
  104. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  105. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts +6 -2
  106. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts.map +1 -1
  107. package/dist/components/DownloadCart/AvailableForDownloadTable.js +10 -8
  108. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  109. package/dist/components/DownloadCart/CreatePackageV2.css +1 -0
  110. package/dist/components/DownloadCart/CreatePackageV2.d.ts.map +1 -1
  111. package/dist/components/DownloadCart/CreatePackageV2.js +50 -46
  112. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  113. package/dist/components/DownloadCart/CreatePackageV2.module.scss +38 -0
  114. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js +14 -0
  115. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js.map +1 -0
  116. package/dist/components/DownloadCart/DownloadCartPage.css +1 -0
  117. package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
  118. package/dist/components/DownloadCart/DownloadCartPage.js +316 -186
  119. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  120. package/dist/components/DownloadCart/DownloadCartPage.module.scss +217 -0
  121. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js +48 -0
  122. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js.map +1 -0
  123. package/dist/components/DownloadCart/DownloadDetails.js +1 -1
  124. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  125. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +33 -33
  126. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  127. package/dist/components/DownloadCart/DownloadListTable.d.ts +4 -1
  128. package/dist/components/DownloadCart/DownloadListTable.d.ts.map +1 -1
  129. package/dist/components/DownloadCart/DownloadListTable.js +156 -236
  130. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  131. package/dist/components/DownloadCart/ShowDownloadV2.js +5 -5
  132. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  133. package/dist/components/Ecosystem/EcosystemSkeleton.js +8 -3
  134. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  135. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +20 -20
  136. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  137. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +3 -3
  138. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  139. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +6 -2
  140. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  141. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js +11 -8
  142. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  143. package/dist/components/FullWidthAlert/FullWidthAlert.d.ts +2 -2
  144. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  145. package/dist/components/GenericCard/GenericCard.d.ts +5 -5
  146. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  147. package/dist/components/GenericCard/GenericCard.js +117 -103
  148. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  149. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts +10 -0
  150. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts.map +1 -0
  151. package/dist/components/GenericCard/LabelMaybeWithIcon.js +33 -0
  152. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -0
  153. package/dist/components/GenericCard/SynapseCardLabel.d.ts +2 -1
  154. package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
  155. package/dist/components/GenericCard/SynapseCardLabel.js +86 -81
  156. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  157. package/dist/components/GenericCard/TableRowGenericCard.d.ts +7 -1
  158. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  159. package/dist/components/GenericCard/TableRowGenericCard.js +239 -202
  160. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  161. package/dist/components/HeaderCard.js +17 -13
  162. package/dist/components/HeaderCard.js.map +1 -1
  163. package/dist/components/Icon/Icon.js +52 -52
  164. package/dist/components/Icon/Icon.js.map +1 -1
  165. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  166. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  167. package/dist/components/IconSvg/IconSvg.js +215 -171
  168. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  169. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -0
  170. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  171. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +103 -102
  172. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  173. package/dist/components/StorybookComponentWrapper.js +6 -3
  174. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  175. package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
  176. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  177. package/dist/components/SynapseChat/SynapseChat.js +76 -67
  178. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  179. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +2 -1
  180. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  181. package/dist/components/SynapseChat/SynapseChatInteraction.js +83 -58
  182. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  183. package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
  184. package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
  185. package/dist/components/SynapseChat/SynapseChatMessage.js +16 -15
  186. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  187. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +12 -0
  188. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -0
  189. package/dist/components/SynapseChat/SynapsePortalChatDialog.js +30 -0
  190. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -0
  191. package/dist/components/SynapseChat/extractMessageFromTraceEvent.d.ts.map +1 -1
  192. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js +22 -16
  193. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  194. package/dist/components/SynapseChat/index.d.ts +2 -0
  195. package/dist/components/SynapseChat/index.d.ts.map +1 -1
  196. package/dist/components/SynapseChat/index.js +5 -3
  197. package/dist/components/SynapseChat/index.js.map +1 -1
  198. package/dist/components/SynapseChat/useChatState.d.ts +1 -1
  199. package/dist/components/SynapseChat/useChatState.d.ts.map +1 -1
  200. package/dist/components/SynapseChat/useChatState.js +10 -7
  201. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  202. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +25 -25
  203. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  204. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +13 -13
  205. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  206. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js +9 -9
  207. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  208. package/dist/components/TextToComponentCollapse.d.ts +16 -0
  209. package/dist/components/TextToComponentCollapse.d.ts.map +1 -0
  210. package/dist/components/TextToComponentCollapse.js +29 -0
  211. package/dist/components/TextToComponentCollapse.js.map +1 -0
  212. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +8 -3
  213. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  214. package/dist/components/download_list/DownloadConfirmationUI.d.ts +1 -1
  215. package/dist/components/download_list/DownloadConfirmationUI.js +22 -22
  216. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  217. package/dist/components/download_list/DownloadConfirmationUtils.js +4 -4
  218. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  219. package/dist/components/index.js +85 -83
  220. package/dist/components/index.js.map +1 -1
  221. package/dist/components/row_renderers/ObservationCard.js +12 -11
  222. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  223. package/dist/components/row_renderers/utils/CardFooter.d.ts +1 -3
  224. package/dist/components/row_renderers/utils/CardFooter.d.ts.map +1 -1
  225. package/dist/components/row_renderers/utils/CardFooter.js +31 -45
  226. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  227. package/dist/components/table/CsvPreview/CsvPreview.js +8 -3
  228. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  229. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +8 -3
  230. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  231. package/dist/features/curator/GridPage/GridPage.js +8 -3
  232. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  233. package/dist/features/curator/GridPage/components/GridPageTitle.js +8 -3
  234. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  235. package/dist/index.js +137 -135
  236. package/dist/index.js.map +1 -1
  237. package/dist/style/components/_all.scss +0 -1
  238. package/dist/style/components/_cards.scss +22 -0
  239. package/dist/style/components/_download-list-v2.scss +1 -1
  240. package/dist/style/components/_query-wrapper-plot-nav.scss +13 -0
  241. package/dist/style/main.css +1 -1
  242. package/dist/tsconfig.build.tsbuildinfo +1 -1
  243. package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
  244. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  245. package/dist/utils/context/FullContextProvider.js +9 -9
  246. package/dist/utils/context/FullContextProvider.js.map +1 -1
  247. package/dist/utils/context/SynapseContext.d.ts.map +1 -1
  248. package/dist/utils/context/SynapseContext.js +1 -0
  249. package/dist/utils/context/SynapseContext.js.map +1 -1
  250. package/dist/utils/functions/SqlFunctions.d.ts +4 -0
  251. package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
  252. package/dist/utils/functions/SqlFunctions.js +25 -23
  253. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  254. package/package.json +5 -5
  255. package/dist/assets/themed_icons/Challenge.d.ts +0 -3
  256. package/dist/assets/themed_icons/Challenge.d.ts.map +0 -1
  257. package/dist/assets/themed_icons/Challenge.js +0 -25
  258. package/dist/assets/themed_icons/Challenge.js.map +0 -1
  259. package/dist/style/components/_download-cart-page.scss +0 -204
@@ -1 +1 @@
1
- {"version":3,"file":"FacetPlotsCard.js","sources":["../../../src/components/FeaturedDataTabs/FacetPlotsCard.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n Box,\n Button,\n Divider,\n Paper,\n Skeleton,\n Typography,\n} from '@mui/material'\nimport {\n ColumnTypeEnum,\n FacetColumnResult,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n} from '@sage-bionetworks/synapse-types'\nimport { useSuspenseQuery } from '@tanstack/react-query'\nimport { times } from 'lodash-es'\nimport Plotly from 'plotly.js-basic-dist'\nimport { Fragment, Suspense, useMemo } from 'react'\nimport Plot from '../Plot/Plot'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport { ShowMore } from '../row_renderers/utils'\nimport { SkeletonParagraph, SkeletonTable } from '../Skeleton'\nimport {\n extractPlotDataArray,\n getPlotStyle,\n PlotType,\n} from '../widgets/facet-nav/FacetNavPanel'\nimport { FacetPlotLegendTable } from '../widgets/facet-nav/FacetPlotLegendTable'\nimport { getFacets } from '../widgets/facet-nav/useFacetPlots'\nimport {\n FACET_PLOTS_CARD_CLASSNAME,\n FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME,\n FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME,\n FacetPlotsCardPlotContainer,\n FacetPlotsCardTitleContainer,\n} from './FacetPlotsCardGrid'\nimport { useMeasure } from '@react-hookz/web'\n\nexport type FacetPlotsCardProps = {\n title?: string\n description?: string\n facetsToPlot?: string[]\n detailsPagePath?: string\n plotType?: PlotType\n}\n\nconst layout: Partial<Plotly.Layout> = {\n showlegend: false,\n annotations: [],\n margin: { l: 0, r: 0, b: 0, t: 0, pad: 0 },\n yaxis: {\n visible: false,\n showgrid: false,\n },\n xaxis: {\n visible: false,\n showgrid: false,\n },\n}\n\nfunction LoadingCard(props: { numPlots: number }) {\n const { numPlots } = props\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Skeleton width={'60%'} height={'24px'} />\n\n <SkeletonParagraph numRows={5} />\n\n <Skeleton width={'40%'}>\n <Button variant={'contained'}>Explore</Button>\n </Skeleton>\n </FacetPlotsCardTitleContainer>\n {times(numPlots).map(index => (\n <FacetPlotsCardPlotContainer\n key={index}\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n py: 3,\n gridRow: `plot${index}`,\n }}\n >\n <Skeleton width={'100%'} height={'300px'} />\n <SkeletonTable numRows={4} numCols={2} />\n </FacetPlotsCardPlotContainer>\n ))}\n </Paper>\n )\n}\n\nfunction FacetPlotsCard(props: FacetPlotsCardProps) {\n const {\n title,\n description,\n facetsToPlot,\n detailsPagePath,\n plotType = 'PIE',\n } = props\n const { accessToken } = useSynapseContext()\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const [plotContainerMeasurements, plotContainerRef] = useMeasure()\n\n const facetDataArray = useMemo(() => {\n if (!facetsToPlot) {\n return []\n }\n\n return getFacets(queryMetadata, facetsToPlot)\n }, [facetsToPlot, queryMetadata])\n\n const currentLayout: Partial<Plotly.Layout> = useMemo(() => {\n return {\n ...layout,\n barmode: plotType === 'STACKED_HORIZONTAL_BAR' ? 'stack' : undefined,\n }\n }, [plotType])\n const maxPlotHeight = plotType === 'STACKED_HORIZONTAL_BAR' ? 50 : 150\n const { data: facetPlotDataArray } = useSuspenseQuery({\n queryKey: ['facetPlotDataArray', facetsToPlot, facetDataArray],\n queryFn: async () => {\n if (!facetsToPlot) {\n return []\n }\n\n const getColumnType = (\n facetToPlot: FacetColumnResult,\n ): ColumnTypeEnum | undefined =>\n queryMetadata.columnModels!.find(\n columnModel => columnModel.name === facetToPlot.columnName,\n )?.columnType as ColumnTypeEnum\n\n return Promise.all(\n facetDataArray.map(async (item, index) => {\n const plotData = await extractPlotDataArray(\n item as FacetColumnResultValues,\n getColumnType(item),\n index + 1, //individual plot rgbIndex\n plotType,\n accessToken,\n )\n return plotData\n }),\n )\n },\n })\n\n const selectedFacetValue = useMemo(() => {\n if (!facetsToPlot) {\n return ''\n }\n\n // If we are showing a facet selection based card, then set the selectedFacetValue. For example, facet column \"study\" with value \"ROSMAP\"\n const selectedFacet: FacetColumnResultValueCount | undefined = queryMetadata\n ?.facets!.map(item => {\n const facetValues: FacetColumnResultValueCount[] = (\n item as FacetColumnResultValues\n ).facetValues\n if (facetValues) {\n const filteredFacetValues: FacetColumnResultValueCount[] =\n facetValues.filter(facetValue => {\n return facetValue.isSelected\n })\n return filteredFacetValues.length > 0\n ? filteredFacetValues[0]\n : undefined\n } else {\n return undefined\n }\n })\n .filter(x => x !== undefined)[0]\n\n if (selectedFacet && selectedFacet.value) {\n return selectedFacet?.value\n }\n return ''\n }, [facetsToPlot, queryMetadata?.facets])\n\n const isShowingMultiplePlots = facetPlotDataArray.length > 1\n const cardTitle =\n title ??\n (isShowingMultiplePlots\n ? selectedFacetValue\n : getColumnDisplayName(facetDataArray[0].columnName))\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME} sx={{ overflow: 'hidden' }}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Typography variant={'headline1'}>{cardTitle}</Typography>\n {description && (\n <Typography variant={'body1'} sx={{ color: 'grey.700', my: 2 }}>\n <ShowMore summary={description} maxCharacterCount={200} />\n </Typography>\n )}\n\n {detailsPagePath && selectedFacetValue && (\n <Box sx={{ my: 2 }}>\n <Button\n variant={'contained'}\n href={detailsPagePath}\n color={'secondary'}\n sx={theme => ({\n [theme.breakpoints.down('sm')]: { width: '100%' },\n })}\n >\n Explore {selectedFacetValue}\n </Button>\n </Box>\n )}\n </FacetPlotsCardTitleContainer>\n\n {/* create a plot for every facet to be plotted */}\n {facetPlotDataArray.map((plotData, index) => {\n return (\n <Fragment key={index}>\n <FacetPlotsCardPlotContainer\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n pt: index === 0 ? 5 : 0,\n gridRow: `plot${index}`,\n }}\n key={index}\n >\n {index != 0 && <Divider sx={{ mt: 2, mb: 4 }} />}\n <Box sx={{ minHeight: '130px' }}>\n <Box\n ref={plotContainerRef}\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Plot\n key={`${facetsToPlot![index]}-${\n plotContainerMeasurements?.width\n }`}\n layout={currentLayout}\n data={plotData?.data ?? []}\n style={getPlotStyle(\n plotContainerMeasurements?.width,\n plotType,\n maxPlotHeight,\n )}\n config={{ displayModeBar: false }}\n />\n </Box>\n <Box sx={{ mt: 4, width: '100%' }}>\n <FacetPlotLegendTable\n facetName={getColumnDisplayName(\n facetDataArray[index].columnName,\n )}\n labels={plotData?.labels}\n colors={plotData?.colors}\n isExpanded={false}\n linkToFullQuery={detailsPagePath}\n />\n </Box>\n </Box>\n </FacetPlotsCardPlotContainer>\n </Fragment>\n )\n })}\n </Paper>\n )\n}\n\nexport default function FacetPlotsCardWithSuspense(props: FacetPlotsCardProps) {\n return (\n <Suspense\n fallback={<LoadingCard numPlots={(props.facetsToPlot ?? []).length} />}\n >\n <FacetPlotsCard {...props} />\n </Suspense>\n )\n}\n"],"names":["layout","LoadingCard","props","numPlots","jsxs","Paper","FACET_PLOTS_CARD_CLASSNAME","FacetPlotsCardTitleContainer","FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME","jsx","Skeleton","SkeletonParagraph","Button","times","index","FacetPlotsCardPlotContainer","FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME","SkeletonTable","FacetPlotsCard","title","description","facetsToPlot","detailsPagePath","plotType","accessToken","useSynapseContext","queryMetadata","useSuspenseGetQueryMetadata","getColumnDisplayName","useQueryVisualizationContext","plotContainerMeasurements","plotContainerRef","useMeasure","facetDataArray","useMemo","getFacets","currentLayout","maxPlotHeight","facetPlotDataArray","useSuspenseQuery","getColumnType","facetToPlot","columnModel","item","extractPlotDataArray","selectedFacetValue","selectedFacet","facetValues","filteredFacetValues","facetValue","x","isShowingMultiplePlots","cardTitle","Typography","ShowMore","Box","theme","plotData","Fragment","Divider","Plot","getPlotStyle","FacetPlotLegendTable","FacetPlotsCardWithSuspense","Suspense"],"mappings":"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"}
1
+ {"version":3,"file":"FacetPlotsCard.js","sources":["../../../src/components/FeaturedDataTabs/FacetPlotsCard.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n Box,\n Button,\n Divider,\n Paper,\n Skeleton,\n Typography,\n} from '@mui/material'\nimport {\n ColumnTypeEnum,\n FacetColumnResult,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n} from '@sage-bionetworks/synapse-types'\nimport { useSuspenseQuery } from '@tanstack/react-query'\nimport { times } from 'lodash-es'\nimport Plotly from 'plotly.js-basic-dist'\nimport { Fragment, Suspense, useMemo } from 'react'\nimport Plot from '../Plot/Plot'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport { ShowMore } from '../row_renderers/utils'\nimport { SkeletonParagraph, SkeletonTable } from '../Skeleton'\nimport {\n extractPlotDataArray,\n getPlotStyle,\n PlotType,\n} from '../widgets/facet-nav/FacetNavPanel'\nimport { FacetPlotLegendTable } from '../widgets/facet-nav/FacetPlotLegendTable'\nimport { getFacets } from '../widgets/facet-nav/useFacetPlots'\nimport {\n FACET_PLOTS_CARD_CLASSNAME,\n FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME,\n FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME,\n FacetPlotsCardPlotContainer,\n FacetPlotsCardTitleContainer,\n} from './FacetPlotsCardGrid'\nimport { useMeasure } from '@react-hookz/web'\n\nexport type FacetPlotsCardProps = {\n title?: string\n description?: string\n facetsToPlot?: string[]\n detailsPagePath?: string\n plotType?: PlotType\n}\n\nconst layout: Partial<Plotly.Layout> = {\n showlegend: false,\n annotations: [],\n margin: { l: 0, r: 0, b: 0, t: 0, pad: 0 },\n yaxis: {\n visible: false,\n showgrid: false,\n },\n xaxis: {\n visible: false,\n showgrid: false,\n },\n}\n\nfunction LoadingCard(props: { numPlots: number }) {\n const { numPlots } = props\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Skeleton width={'60%'} height={'24px'} />\n\n <SkeletonParagraph numRows={5} />\n\n <Skeleton width={'40%'}>\n <Button variant={'contained'}>Explore</Button>\n </Skeleton>\n </FacetPlotsCardTitleContainer>\n {times(numPlots).map(index => (\n <FacetPlotsCardPlotContainer\n key={index}\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n py: 3,\n gridRow: `plot${index}`,\n }}\n >\n <Skeleton width={'100%'} height={'300px'} />\n <SkeletonTable numRows={4} numCols={2} />\n </FacetPlotsCardPlotContainer>\n ))}\n </Paper>\n )\n}\n\nfunction FacetPlotsCard(props: FacetPlotsCardProps) {\n const {\n title,\n description,\n facetsToPlot,\n detailsPagePath,\n plotType = 'PIE',\n } = props\n const { accessToken } = useSynapseContext()\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const [plotContainerMeasurements, plotContainerRef] = useMeasure()\n\n const facetDataArray = useMemo(() => {\n if (!facetsToPlot) {\n return []\n }\n\n return getFacets(queryMetadata, facetsToPlot)\n }, [facetsToPlot, queryMetadata])\n\n const currentLayout: Partial<Plotly.Layout> = useMemo(() => {\n return {\n ...layout,\n barmode: plotType === 'STACKED_HORIZONTAL_BAR' ? 'stack' : undefined,\n }\n }, [plotType])\n const maxPlotHeight = plotType === 'STACKED_HORIZONTAL_BAR' ? 50 : 150\n const { data: facetPlotDataArray } = useSuspenseQuery({\n queryKey: ['facetPlotDataArray', facetsToPlot, facetDataArray],\n queryFn: async () => {\n if (!facetsToPlot) {\n return []\n }\n\n const getColumnType = (\n facetToPlot: FacetColumnResult,\n ): ColumnTypeEnum | undefined =>\n queryMetadata.columnModels!.find(\n columnModel => columnModel.name === facetToPlot.columnName,\n )?.columnType as ColumnTypeEnum\n\n return Promise.all(\n facetDataArray.map(async (item, index) => {\n const plotData = await extractPlotDataArray(\n item as FacetColumnResultValues,\n getColumnType(item),\n index + 1, //individual plot rgbIndex\n plotType,\n accessToken,\n )\n return plotData\n }),\n )\n },\n })\n\n const selectedFacetValue = useMemo(() => {\n if (!facetsToPlot) {\n return ''\n }\n\n // If we are showing a facet selection based card, then set the selectedFacetValue. For example, facet column \"study\" with value \"ROSMAP\"\n const selectedFacet: FacetColumnResultValueCount | undefined = queryMetadata\n ?.facets!.map(item => {\n const facetValues: FacetColumnResultValueCount[] = (\n item as FacetColumnResultValues\n ).facetValues\n if (facetValues) {\n const filteredFacetValues: FacetColumnResultValueCount[] =\n facetValues.filter(facetValue => {\n return facetValue.isSelected\n })\n return filteredFacetValues.length > 0\n ? filteredFacetValues[0]\n : undefined\n } else {\n return undefined\n }\n })\n .filter(x => x !== undefined)[0]\n\n if (selectedFacet && selectedFacet.value) {\n return selectedFacet?.value\n }\n return ''\n }, [facetsToPlot, queryMetadata?.facets])\n\n const isShowingMultiplePlots = facetPlotDataArray.length > 1\n const cardTitle =\n title ??\n (isShowingMultiplePlots\n ? selectedFacetValue\n : getColumnDisplayName(facetDataArray[0].columnName))\n return (\n <Paper className={FACET_PLOTS_CARD_CLASSNAME} sx={{ overflow: 'hidden' }}>\n <FacetPlotsCardTitleContainer\n className={FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME}\n >\n <Typography variant={'headline1'}>{cardTitle}</Typography>\n {description && (\n <Typography variant={'body1'} sx={{ color: 'grey.700', my: 2 }}>\n <ShowMore summary={description} maxCharacterCount={200} />\n </Typography>\n )}\n\n {detailsPagePath && selectedFacetValue && (\n <Box sx={{ my: 2 }}>\n <Button\n variant={'contained'}\n href={detailsPagePath}\n color={'secondary'}\n sx={theme => ({\n [theme.breakpoints.down('sm')]: { width: '100%' },\n })}\n >\n Explore {selectedFacetValue}\n </Button>\n </Box>\n )}\n </FacetPlotsCardTitleContainer>\n\n {/* create a plot for every facet to be plotted */}\n {facetPlotDataArray.map((plotData, index) => {\n return (\n <Fragment key={index}>\n <FacetPlotsCardPlotContainer\n className={FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME}\n sx={{\n pt: index === 0 ? 5 : 0,\n gridRow: `plot${index}`,\n }}\n key={index}\n >\n {index != 0 && <Divider sx={{ mt: 2, mb: 4 }} />}\n <Box sx={{ minHeight: '130px' }}>\n <Box\n ref={plotContainerRef}\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Plot\n key={`${facetsToPlot![index]}-${\n plotContainerMeasurements?.width\n }`}\n layout={currentLayout}\n data={plotData?.data ?? []}\n style={getPlotStyle(\n plotContainerMeasurements?.width,\n plotType,\n maxPlotHeight,\n )}\n config={{ displayModeBar: false }}\n />\n </Box>\n <Box sx={{ mt: 4, width: '100%' }}>\n <FacetPlotLegendTable\n facetName={getColumnDisplayName(\n facetDataArray[index].columnName,\n )}\n labels={plotData?.labels}\n colors={plotData?.colors}\n isExpanded={false}\n linkToFullQuery={detailsPagePath}\n />\n </Box>\n </Box>\n </FacetPlotsCardPlotContainer>\n </Fragment>\n )\n })}\n </Paper>\n )\n}\n\nexport default function FacetPlotsCardWithSuspense(props: FacetPlotsCardProps) {\n return (\n <Suspense\n fallback={<LoadingCard numPlots={(props.facetsToPlot ?? []).length} />}\n >\n <FacetPlotsCard {...props} />\n </Suspense>\n )\n}\n"],"names":["layout","LoadingCard","props","numPlots","jsxs","Paper","FACET_PLOTS_CARD_CLASSNAME","FacetPlotsCardTitleContainer","FACET_PLOTS_CARD_TITLE_CONTAINER_CLASSNAME","jsx","Skeleton","SkeletonParagraph","Button","times","index","FacetPlotsCardPlotContainer","FACET_PLOTS_CARD_PLOT_CONTAINER_CLASSNAME","SkeletonTable","FacetPlotsCard","title","description","facetsToPlot","detailsPagePath","plotType","accessToken","useSynapseContext","queryMetadata","useSuspenseGetQueryMetadata","getColumnDisplayName","useQueryVisualizationContext","plotContainerMeasurements","plotContainerRef","useMeasure","facetDataArray","useMemo","getFacets","currentLayout","maxPlotHeight","facetPlotDataArray","useSuspenseQuery","getColumnType","facetToPlot","columnModel","item","extractPlotDataArray","selectedFacetValue","selectedFacet","facetValues","filteredFacetValues","facetValue","x","isShowingMultiplePlots","cardTitle","Typography","ShowMore","Box","theme","plotData","Fragment","Divider","Plot","getPlotStyle","FacetPlotLegendTable","FacetPlotsCardWithSuspense","Suspense"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as r, jsx as e, Fragment as l } from "react/jsx-runtime";
2
- import { useState as m } from "react";
2
+ import { useState as c } from "react";
3
3
  import b from "./FeaturedDataPlots.js";
4
4
  import "../../utils/functions/EntityTypeUtils.js";
5
5
  import "../../assets/ArcusBioIcon.svg.js";
@@ -7,25 +7,28 @@ import "@mui/material/SvgIcon";
7
7
  import "../../assets/icons/AccessPending.svg.js";
8
8
  import "../../assets/icons/AccessPendingCloud.svg.js";
9
9
  import "../../assets/icons/FileWithShield.svg.js";
10
+ import "../../assets/icons/MultiFile.svg.js";
11
+ import "../../assets/icons/UnpackagableFile.svg.js";
10
12
  import "../../assets/icons/bioChemicalPhysical.svg.js";
11
13
  import "../../assets/icons/computationalTool.svg.js";
12
14
  import "../../assets/icons/dataReuse.svg.js";
13
15
  import { Box as x, Button as h, Paper as u } from "@mui/material";
14
16
  import "../../assets/icons/inSilicoModel.svg.js";
15
17
  import "../../assets/icons/modelSystem.svg.js";
18
+ import "../../assets/mui_components/PackagableFile.svg.js";
16
19
  import "../../assets/icons/spatialProfiling.svg.js";
17
20
  import "@mui/icons-material";
18
21
  import _ from "../Icon/Icon.js";
19
22
  import T from "../SynapseTable/NoContentAvailable.js";
20
- function R(p) {
21
- const [o, d] = m(0), { configs: s, rgbIndex: c, sql: i } = p, t = s[o];
23
+ function E(p) {
24
+ const [o, d] = c(0), { configs: i, rgbIndex: m, sql: s } = p, t = i[o];
22
25
  return /* @__PURE__ */ r(
23
26
  x,
24
27
  {
25
28
  className: "FeaturedDataTabs",
26
29
  sx: { padding: { xs: "40px", lg: "80px" } },
27
30
  children: [
28
- s.length > 1 && /* @__PURE__ */ e("div", { className: "FeaturedDataTabs__tabs", children: s.map((a, n) => /* @__PURE__ */ e(
31
+ i.length > 1 && /* @__PURE__ */ e("div", { className: "FeaturedDataTabs__tabs", children: i.map((a, n) => /* @__PURE__ */ e(
29
32
  "div",
30
33
  {
31
34
  className: `FeaturedDataTabs__tabs__tab ${n === o ? "FeaturedDataTabs__tabs__tab__selected" : ""}`,
@@ -47,12 +50,12 @@ function R(p) {
47
50
  /* @__PURE__ */ e(
48
51
  b,
49
52
  {
50
- sql: i,
51
- rgbIndex: c,
53
+ sql: s,
54
+ rgbIndex: m,
52
55
  explorePagePath: t.explorePagePath,
53
56
  ...t.plotsConfig
54
57
  },
55
- `${i}-${o}`
58
+ `${s}-${o}`
56
59
  ),
57
60
  t.explorePagePath && /* @__PURE__ */ e("div", { className: "FeaturedDataTabs__explore-all", children: /* @__PURE__ */ r(
58
61
  h,
@@ -78,6 +81,6 @@ function R(p) {
78
81
  );
79
82
  }
80
83
  export {
81
- R as default
84
+ E as default
82
85
  };
83
86
  //# sourceMappingURL=FeaturedDataTabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeaturedDataTabs.js","sources":["../../../src/components/FeaturedDataTabs/FeaturedDataTabs.tsx"],"sourcesContent":["import { useState } from 'react'\nimport FeaturedDataPlots, { FeaturedDataPlotsProps } from './FeaturedDataPlots'\nimport { Icon } from '../row_renderers/utils'\nimport NoContentAvailable from '../SynapseTable/NoContentAvailable'\nimport { Box, Button } from '@mui/material'\nimport { Paper } from '@mui/material'\n\nexport type FeatureDataTabProps = {\n title: string // type of data being shown, used for the tab title and explore all button\n icon?: string\n exploreObjectType?: string\n explorePagePath?: string\n plotsConfig: FeaturedDataPlotsProps\n}\n\nexport type FeaturedDataTabsProps = {\n configs: FeatureDataTabProps[]\n rgbIndex: number\n sql: string\n}\n\nfunction FeaturedDataTabs(props: FeaturedDataTabsProps) {\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const { configs, rgbIndex, sql } = props\n // explore all data button\n const selectedTabProps: FeatureDataTabProps = configs[selectedTabIndex]\n return (\n <Box\n className=\"FeaturedDataTabs\"\n sx={{ padding: { xs: '40px', lg: '80px' } }}\n >\n {/* tabs */}\n {configs.length > 1 && (\n <div className=\"FeaturedDataTabs__tabs\">\n {configs.map((config, index) => {\n const isSelectedTabIndex: boolean = index === selectedTabIndex\n return (\n <div\n className={`FeaturedDataTabs__tabs__tab ${\n isSelectedTabIndex\n ? 'FeaturedDataTabs__tabs__tab__selected'\n : ''\n }`}\n key={config.title}\n >\n <button\n className=\"SRC-centerAndJustifyContent\"\n onClick={() => setSelectedTabIndex(index)}\n >\n {config.icon && <Icon type={config.icon}></Icon>}\n <span>{config.title}</span>\n </button>\n </div>\n )\n })}\n </div>\n )}\n {/* tab content */}\n {selectedTabProps && (\n <>\n {selectedTabProps.plotsConfig.configs.length > 0 ? (\n <>\n <FeaturedDataPlots\n key={`${sql}-${selectedTabIndex}`}\n sql={sql}\n rgbIndex={rgbIndex}\n explorePagePath={selectedTabProps.explorePagePath}\n {...selectedTabProps.plotsConfig}\n />\n {selectedTabProps.explorePagePath && (\n <div className=\"FeaturedDataTabs__explore-all\">\n <Button\n variant=\"contained\"\n color=\"secondary\"\n href={selectedTabProps.explorePagePath}\n sx={theme => ({\n mb: '40px',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n })}\n >\n View All {selectedTabProps.exploreObjectType}\n </Button>\n </div>\n )}\n </>\n ) : (\n <Paper sx={{ p: 2 }}>\n <NoContentAvailable />\n </Paper>\n )}\n </>\n )}\n </Box>\n )\n}\n\nexport default FeaturedDataTabs\n"],"names":["FeaturedDataTabs","props","selectedTabIndex","setSelectedTabIndex","useState","configs","rgbIndex","sql","selectedTabProps","jsxs","Box","jsx","config","index","Icon","Fragment","FeaturedDataPlots","Button","theme","Paper","NoContentAvailable"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,SAASA,EAAiBC,GAA8B;AACtD,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAiB,CAAC,GAC5D,EAAE,SAAAC,GAAS,UAAAC,GAAU,KAAAC,EAAA,IAAQN,GAE7BO,IAAwCH,EAAQH,CAAgB;AACtE,SACE,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,IAAI,EAAE,SAAS,EAAE,IAAI,QAAQ,IAAI,SAAO;AAAA,MAGvC,UAAA;AAAA,QAAAL,EAAQ,SAAS,KAChB,gBAAAM,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAAN,EAAQ,IAAI,CAACO,GAAQC,MAGlB,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,+BAHqBE,MAAUX,IAKpC,0CACA,EACN;AAAA,YAGA,UAAA,gBAAAO;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS,MAAMN,EAAoBU,CAAK;AAAA,gBAEvC,UAAA;AAAA,kBAAAD,EAAO,QAAQ,gBAAAD,EAACG,GAAA,EAAK,MAAMF,EAAO,MAAM;AAAA,kBACzC,gBAAAD,EAAC,QAAA,EAAM,UAAAC,EAAO,MAAA,CAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACtB;AAAA,UARKA,EAAO;AAAA,QAAA,CAWjB,EAAA,CACH;AAAA,QAGDJ,KACC,gBAAAG,EAAAI,GAAA,EACG,UAAAP,EAAiB,YAAY,QAAQ,SAAS,IAC7C,gBAAAC,EAAAM,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAJ;AAAA,YAACK;AAAA,YAAA;AAAA,cAEC,KAAAT;AAAA,cACA,UAAAD;AAAA,cACA,iBAAiBE,EAAiB;AAAA,cACjC,GAAGA,EAAiB;AAAA,YAAA;AAAA,YAJhB,GAAGD,CAAG,IAAIL,CAAgB;AAAA,UAAA;AAAA,UAMhCM,EAAiB,mBAChB,gBAAAG,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA,gBAAAF;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,MAAMT,EAAiB;AAAA,cACvB,IAAI,CAAAU,OAAU;AAAA,gBACZ,IAAI;AAAA,gBACJ,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,GAAG;AAAA,kBAC9B,OAAO;AAAA,gBAAA;AAAA,cACT;AAAA,cAEH,UAAA;AAAA,gBAAA;AAAA,gBACWV,EAAiB;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,EAC7B,CACF;AAAA,QAAA,EAAA,CAEJ,IAEA,gBAAAG,EAACQ,GAAA,EAAM,IAAI,EAAE,GAAG,EAAA,GACd,UAAA,gBAAAR,EAACS,GAAA,CAAA,CAAmB,EAAA,CACtB,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"FeaturedDataTabs.js","sources":["../../../src/components/FeaturedDataTabs/FeaturedDataTabs.tsx"],"sourcesContent":["import { useState } from 'react'\nimport FeaturedDataPlots, { FeaturedDataPlotsProps } from './FeaturedDataPlots'\nimport { Icon } from '../row_renderers/utils'\nimport NoContentAvailable from '../SynapseTable/NoContentAvailable'\nimport { Box, Button } from '@mui/material'\nimport { Paper } from '@mui/material'\n\nexport type FeatureDataTabProps = {\n title: string // type of data being shown, used for the tab title and explore all button\n icon?: string\n exploreObjectType?: string\n explorePagePath?: string\n plotsConfig: FeaturedDataPlotsProps\n}\n\nexport type FeaturedDataTabsProps = {\n configs: FeatureDataTabProps[]\n rgbIndex: number\n sql: string\n}\n\nfunction FeaturedDataTabs(props: FeaturedDataTabsProps) {\n const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0)\n const { configs, rgbIndex, sql } = props\n // explore all data button\n const selectedTabProps: FeatureDataTabProps = configs[selectedTabIndex]\n return (\n <Box\n className=\"FeaturedDataTabs\"\n sx={{ padding: { xs: '40px', lg: '80px' } }}\n >\n {/* tabs */}\n {configs.length > 1 && (\n <div className=\"FeaturedDataTabs__tabs\">\n {configs.map((config, index) => {\n const isSelectedTabIndex: boolean = index === selectedTabIndex\n return (\n <div\n className={`FeaturedDataTabs__tabs__tab ${\n isSelectedTabIndex\n ? 'FeaturedDataTabs__tabs__tab__selected'\n : ''\n }`}\n key={config.title}\n >\n <button\n className=\"SRC-centerAndJustifyContent\"\n onClick={() => setSelectedTabIndex(index)}\n >\n {config.icon && <Icon type={config.icon}></Icon>}\n <span>{config.title}</span>\n </button>\n </div>\n )\n })}\n </div>\n )}\n {/* tab content */}\n {selectedTabProps && (\n <>\n {selectedTabProps.plotsConfig.configs.length > 0 ? (\n <>\n <FeaturedDataPlots\n key={`${sql}-${selectedTabIndex}`}\n sql={sql}\n rgbIndex={rgbIndex}\n explorePagePath={selectedTabProps.explorePagePath}\n {...selectedTabProps.plotsConfig}\n />\n {selectedTabProps.explorePagePath && (\n <div className=\"FeaturedDataTabs__explore-all\">\n <Button\n variant=\"contained\"\n color=\"secondary\"\n href={selectedTabProps.explorePagePath}\n sx={theme => ({\n mb: '40px',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n })}\n >\n View All {selectedTabProps.exploreObjectType}\n </Button>\n </div>\n )}\n </>\n ) : (\n <Paper sx={{ p: 2 }}>\n <NoContentAvailable />\n </Paper>\n )}\n </>\n )}\n </Box>\n )\n}\n\nexport default FeaturedDataTabs\n"],"names":["FeaturedDataTabs","props","selectedTabIndex","setSelectedTabIndex","useState","configs","rgbIndex","sql","selectedTabProps","jsxs","Box","jsx","config","index","Icon","Fragment","FeaturedDataPlots","Button","theme","Paper","NoContentAvailable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBA,SAASA,EAAiBC,GAA8B;AACtD,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAiB,CAAC,GAC5D,EAAE,SAAAC,GAAS,UAAAC,GAAU,KAAAC,EAAA,IAAQN,GAE7BO,IAAwCH,EAAQH,CAAgB;AACtE,SACE,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,IAAI,EAAE,SAAS,EAAE,IAAI,QAAQ,IAAI,SAAO;AAAA,MAGvC,UAAA;AAAA,QAAAL,EAAQ,SAAS,KAChB,gBAAAM,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAAN,EAAQ,IAAI,CAACO,GAAQC,MAGlB,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,+BAHqBE,MAAUX,IAKpC,0CACA,EACN;AAAA,YAGA,UAAA,gBAAAO;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS,MAAMN,EAAoBU,CAAK;AAAA,gBAEvC,UAAA;AAAA,kBAAAD,EAAO,QAAQ,gBAAAD,EAACG,GAAA,EAAK,MAAMF,EAAO,MAAM;AAAA,kBACzC,gBAAAD,EAAC,QAAA,EAAM,UAAAC,EAAO,MAAA,CAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACtB;AAAA,UARKA,EAAO;AAAA,QAAA,CAWjB,EAAA,CACH;AAAA,QAGDJ,KACC,gBAAAG,EAAAI,GAAA,EACG,UAAAP,EAAiB,YAAY,QAAQ,SAAS,IAC7C,gBAAAC,EAAAM,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAJ;AAAA,YAACK;AAAA,YAAA;AAAA,cAEC,KAAAT;AAAA,cACA,UAAAD;AAAA,cACA,iBAAiBE,EAAiB;AAAA,cACjC,GAAGA,EAAiB;AAAA,YAAA;AAAA,YAJhB,GAAGD,CAAG,IAAIL,CAAgB;AAAA,UAAA;AAAA,UAMhCM,EAAiB,mBAChB,gBAAAG,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA,gBAAAF;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,MAAMT,EAAiB;AAAA,cACvB,IAAI,CAAAU,OAAU;AAAA,gBACZ,IAAI;AAAA,gBACJ,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,GAAG;AAAA,kBAC9B,OAAO;AAAA,gBAAA;AAAA,cACT;AAAA,cAEH,UAAA;AAAA,gBAAA;AAAA,gBACWV,EAAiB;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,EAC7B,CACF;AAAA,QAAA,EAAA,CAEJ,IAEA,gBAAAG,EAACQ,GAAA,EAAM,IAAI,EAAE,GAAG,EAAA,GACd,UAAA,gBAAAR,EAACS,GAAA,CAAA,CAAmB,EAAA,CACtB,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -28,8 +28,8 @@ export interface FullWidthAlertProps {
28
28
  globalAlertSx?: AlertProps['sx'];
29
29
  }
30
30
  /**
31
- * Nav bar item, displayed when files have been added to the Download Cart.
32
- * This must be configured with the URL of a page dedicated to showing the Download Cart.
31
+ * Nav bar item, displayed when files have been added to the Download List.
32
+ * This must be configured with the URL of a page dedicated to showing the Download List.
33
33
  */
34
34
  declare function FullWidthAlert(props: FullWidthAlertProps): import("react/jsx-runtime").JSX.Element;
35
35
  export default FullWidthAlert;
@@ -1 +1 @@
1
- {"version":3,"file":"FullWidthAlert.js","sources":["../../../src/components/FullWidthAlert/FullWidthAlert.tsx"],"sourcesContent":["import { spreadSx } from '@/theme/spreadSx'\nimport {\n Alert,\n AlertProps,\n AlertTitle,\n Box,\n Button,\n ButtonProps,\n Snackbar,\n Stack,\n Tooltip,\n} from '@mui/material'\nimport { MouseEventHandler, ReactNode, useEffect } from 'react'\nimport './FullWidthAlert.scss'\n\nexport type AlertButtonConfig = {\n text: string\n isDisabled?: boolean\n tooltipText?: string\n} & (\n | // \"onClick\" or \"href\", but not both\n {\n onClick?: MouseEventHandler<HTMLButtonElement>\n }\n | { href?: string }\n)\n\nexport type FullWidthAlertVariant = 'warning' | 'info' | 'danger' | 'success'\n\nexport interface FullWidthAlertProps {\n variant?: FullWidthAlertVariant\n show?: boolean\n title?: string\n description?: ReactNode\n primaryButtonConfig?: AlertButtonConfig\n secondaryButtonConfig?: AlertButtonConfig\n tertiaryButtonConfig?: AlertButtonConfig\n onClose?: () => void\n autoCloseAfterDelayInSeconds?: number\n isGlobal?: boolean\n icon?: ReactNode\n sx?: AlertProps['sx']\n globalAlertSx?: AlertProps['sx']\n}\n\nfunction variantToSeverity(variant: string | undefined) {\n return (variant === 'danger' ? 'error' : variant) as AlertProps['severity']\n}\n\nfunction ButtonFromConfig(props: {\n config?: AlertButtonConfig\n variant: ButtonProps['variant']\n}) {\n const { config, variant } = props\n if (config && ('onClick' in config || 'href' in config)) {\n return (\n <Tooltip title={config.tooltipText ?? ''} enterNextDelay={300}>\n <span // See https://github.com/wwayne/react-tooltip/issues/304\n data-tip-disable={false}\n >\n <Button\n variant={variant}\n sx={{\n width: { xs: '100%', md: 'initial' },\n }}\n color=\"primary\"\n disabled={config.isDisabled}\n onClick={e => {\n if ('onClick' in config) {\n e.preventDefault()\n config.onClick!(e)\n } else if ('href' in config) {\n e.preventDefault()\n window.open(config.href, '_blank', 'noopener')\n }\n }}\n >\n {config.text}\n </Button>\n </span>\n </Tooltip>\n )\n }\n return null\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 FullWidthAlert(props: FullWidthAlertProps) {\n const {\n title,\n description,\n primaryButtonConfig,\n secondaryButtonConfig,\n tertiaryButtonConfig,\n show = true,\n onClose,\n autoCloseAfterDelayInSeconds,\n variant = 'info',\n isGlobal = true,\n icon,\n sx,\n globalAlertSx,\n } = props\n\n useEffect(() => {\n let timer: NodeJS.Timeout\n if (onClose && autoCloseAfterDelayInSeconds) {\n timer = setTimeout(onClose, autoCloseAfterDelayInSeconds * 1000)\n }\n return () => {\n if (timer) {\n clearTimeout(timer)\n }\n }\n }, [onClose, autoCloseAfterDelayInSeconds])\n\n const alert = (\n <Alert\n severity={variantToSeverity(variant)}\n sx={spreadSx(\n {\n width: '100%',\n my: '10px',\n '.MuiAlert-message': {\n flexGrow: 1,\n },\n '.MuiAlert-icon': {\n display: { xs: 'none', sm: 'flex' },\n },\n },\n sx,\n )}\n className=\"FullWidthAlert\"\n onClose={onClose}\n icon={icon}\n >\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n spacing={{ xs: 1, sm: 2 }}\n sx={{\n alignItems: { xs: 'start', sm: 'center' },\n gap: { xs: '8px', sm: 'initial' },\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <Box>\n {title && <AlertTitle>{title}</AlertTitle>}\n <span className=\"FullWidthAlertDescription\">{description}</span>\n </Box>\n {(primaryButtonConfig ||\n secondaryButtonConfig ||\n tertiaryButtonConfig) && (\n <Stack\n spacing={{ xs: 1, lg: 2 }}\n direction={{ xs: 'row', sm: 'column', lg: 'row' }}\n sx={theme => ({\n alignItems: 'center',\n display: 'flex',\n flexShrink: 0,\n gap: { xs: '8px', sm: 'initial' },\n flexWrap: { xs: 'wrap', sm: 'nowrap' },\n width: { xs: '100%', sm: 'initial' },\n [theme.breakpoints.down('sm')]: {\n '& > *': {\n flexGrow: 1,\n },\n },\n })}\n >\n {tertiaryButtonConfig && (\n <ButtonFromConfig config={tertiaryButtonConfig} variant=\"text\" />\n )}\n {secondaryButtonConfig && (\n <ButtonFromConfig config={secondaryButtonConfig} variant=\"text\" />\n )}\n {primaryButtonConfig && (\n <ButtonFromConfig\n config={primaryButtonConfig}\n variant=\"contained\"\n />\n )}\n </Stack>\n )}\n </Stack>\n </Alert>\n )\n\n return (\n <>\n {isGlobal ? (\n <Snackbar\n open={show}\n className={isGlobal ? 'FullWidthAlertGlobal' : undefined}\n sx={{\n width: '96%',\n filter:\n 'drop-shadow(0px 8px 8px rgba(0, 0, 0, 0.05)) drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.05)) drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.05))',\n ...globalAlertSx,\n }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n slotProps={{\n transition: {\n appear: false,\n },\n }}\n >\n {alert}\n </Snackbar>\n ) : (\n show && alert\n )}\n </>\n )\n}\n\nexport default FullWidthAlert\n"],"names":["variantToSeverity","variant","ButtonFromConfig","props","config","Tooltip","jsx","Button","e","FullWidthAlert","title","description","primaryButtonConfig","secondaryButtonConfig","tertiaryButtonConfig","show","onClose","autoCloseAfterDelayInSeconds","isGlobal","icon","sx","globalAlertSx","useEffect","timer","alert","Alert","spreadSx","jsxs","Stack","Box","AlertTitle","theme","Snackbar"],"mappings":"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"}
1
+ {"version":3,"file":"FullWidthAlert.js","sources":["../../../src/components/FullWidthAlert/FullWidthAlert.tsx"],"sourcesContent":["import { spreadSx } from '@/theme/spreadSx'\nimport {\n Alert,\n AlertProps,\n AlertTitle,\n Box,\n Button,\n ButtonProps,\n Snackbar,\n Stack,\n Tooltip,\n} from '@mui/material'\nimport { MouseEventHandler, ReactNode, useEffect } from 'react'\nimport './FullWidthAlert.scss'\n\nexport type AlertButtonConfig = {\n text: string\n isDisabled?: boolean\n tooltipText?: string\n} & (\n | // \"onClick\" or \"href\", but not both\n {\n onClick?: MouseEventHandler<HTMLButtonElement>\n }\n | { href?: string }\n)\n\nexport type FullWidthAlertVariant = 'warning' | 'info' | 'danger' | 'success'\n\nexport interface FullWidthAlertProps {\n variant?: FullWidthAlertVariant\n show?: boolean\n title?: string\n description?: ReactNode\n primaryButtonConfig?: AlertButtonConfig\n secondaryButtonConfig?: AlertButtonConfig\n tertiaryButtonConfig?: AlertButtonConfig\n onClose?: () => void\n autoCloseAfterDelayInSeconds?: number\n isGlobal?: boolean\n icon?: ReactNode\n sx?: AlertProps['sx']\n globalAlertSx?: AlertProps['sx']\n}\n\nfunction variantToSeverity(variant: string | undefined) {\n return (variant === 'danger' ? 'error' : variant) as AlertProps['severity']\n}\n\nfunction ButtonFromConfig(props: {\n config?: AlertButtonConfig\n variant: ButtonProps['variant']\n}) {\n const { config, variant } = props\n if (config && ('onClick' in config || 'href' in config)) {\n return (\n <Tooltip title={config.tooltipText ?? ''} enterNextDelay={300}>\n <span // See https://github.com/wwayne/react-tooltip/issues/304\n data-tip-disable={false}\n >\n <Button\n variant={variant}\n sx={{\n width: { xs: '100%', md: 'initial' },\n }}\n color=\"primary\"\n disabled={config.isDisabled}\n onClick={e => {\n if ('onClick' in config) {\n e.preventDefault()\n config.onClick!(e)\n } else if ('href' in config) {\n e.preventDefault()\n window.open(config.href, '_blank', 'noopener')\n }\n }}\n >\n {config.text}\n </Button>\n </span>\n </Tooltip>\n )\n }\n return null\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 FullWidthAlert(props: FullWidthAlertProps) {\n const {\n title,\n description,\n primaryButtonConfig,\n secondaryButtonConfig,\n tertiaryButtonConfig,\n show = true,\n onClose,\n autoCloseAfterDelayInSeconds,\n variant = 'info',\n isGlobal = true,\n icon,\n sx,\n globalAlertSx,\n } = props\n\n useEffect(() => {\n let timer: NodeJS.Timeout\n if (onClose && autoCloseAfterDelayInSeconds) {\n timer = setTimeout(onClose, autoCloseAfterDelayInSeconds * 1000)\n }\n return () => {\n if (timer) {\n clearTimeout(timer)\n }\n }\n }, [onClose, autoCloseAfterDelayInSeconds])\n\n const alert = (\n <Alert\n severity={variantToSeverity(variant)}\n sx={spreadSx(\n {\n width: '100%',\n my: '10px',\n '.MuiAlert-message': {\n flexGrow: 1,\n },\n '.MuiAlert-icon': {\n display: { xs: 'none', sm: 'flex' },\n },\n },\n sx,\n )}\n className=\"FullWidthAlert\"\n onClose={onClose}\n icon={icon}\n >\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n spacing={{ xs: 1, sm: 2 }}\n sx={{\n alignItems: { xs: 'start', sm: 'center' },\n gap: { xs: '8px', sm: 'initial' },\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <Box>\n {title && <AlertTitle>{title}</AlertTitle>}\n <span className=\"FullWidthAlertDescription\">{description}</span>\n </Box>\n {(primaryButtonConfig ||\n secondaryButtonConfig ||\n tertiaryButtonConfig) && (\n <Stack\n spacing={{ xs: 1, lg: 2 }}\n direction={{ xs: 'row', sm: 'column', lg: 'row' }}\n sx={theme => ({\n alignItems: 'center',\n display: 'flex',\n flexShrink: 0,\n gap: { xs: '8px', sm: 'initial' },\n flexWrap: { xs: 'wrap', sm: 'nowrap' },\n width: { xs: '100%', sm: 'initial' },\n [theme.breakpoints.down('sm')]: {\n '& > *': {\n flexGrow: 1,\n },\n },\n })}\n >\n {tertiaryButtonConfig && (\n <ButtonFromConfig config={tertiaryButtonConfig} variant=\"text\" />\n )}\n {secondaryButtonConfig && (\n <ButtonFromConfig config={secondaryButtonConfig} variant=\"text\" />\n )}\n {primaryButtonConfig && (\n <ButtonFromConfig\n config={primaryButtonConfig}\n variant=\"contained\"\n />\n )}\n </Stack>\n )}\n </Stack>\n </Alert>\n )\n\n return (\n <>\n {isGlobal ? (\n <Snackbar\n open={show}\n className={isGlobal ? 'FullWidthAlertGlobal' : undefined}\n sx={{\n width: '96%',\n filter:\n 'drop-shadow(0px 8px 8px rgba(0, 0, 0, 0.05)) drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.05)) drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.05))',\n ...globalAlertSx,\n }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n slotProps={{\n transition: {\n appear: false,\n },\n }}\n >\n {alert}\n </Snackbar>\n ) : (\n show && alert\n )}\n </>\n )\n}\n\nexport default FullWidthAlert\n"],"names":["variantToSeverity","variant","ButtonFromConfig","props","config","Tooltip","jsx","Button","e","FullWidthAlert","title","description","primaryButtonConfig","secondaryButtonConfig","tertiaryButtonConfig","show","onClose","autoCloseAfterDelayInSeconds","isGlobal","icon","sx","globalAlertSx","useEffect","timer","alert","Alert","spreadSx","jsxs","Stack","Box","AlertTitle","theme","Snackbar"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { CardLabel } from '@/components/row_renderers/utils/CardFooter';
2
2
  import { FileHandleAssociation } from '@sage-bionetworks/synapse-types';
3
3
  import React from 'react';
4
- import { ColumnIconConfigs, DescriptionConfig } from '../CardContainerLogic';
4
+ import { DescriptionConfig } from '../CardContainerLogic';
5
5
  import { HeaderCardVariant } from '../HeaderCard';
6
6
  import { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard';
7
7
  /** Resolved CTA link configuration with actual href values (as opposed to CTACardLink which uses column names) */
@@ -58,10 +58,6 @@ export type GenericCardProps = {
58
58
  * The initial number of labels to display in the footer of the card
59
59
  */
60
60
  secondaryLabelLimit?: number;
61
- /**
62
- * Options for displaying icons with the labels in the card footer
63
- */
64
- columnIconOptions?: ColumnIconConfigs;
65
61
  /**
66
62
  * Optional configuration for displaying CTA button(s) on the card. Accepts a single config or an array.
67
63
  */
@@ -78,6 +74,10 @@ export type GenericCardProps = {
78
74
  * Optional ReactNode to be rendered next to the card type
79
75
  */
80
76
  cardTypeAdornment?: React.ReactNode;
77
+ /**
78
+ * Optional content to render to the right of the title/subtitle/description area.
79
+ */
80
+ titleAreaRightContent?: React.ReactNode;
81
81
  /**
82
82
  * Character count threshold for truncating description
83
83
  * @default 400
@@ -1 +1 @@
1
- {"version":3,"file":"GenericCard.d.ts","sourceRoot":"","sources":["../../../src/components/GenericCard/GenericCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAI7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAA;AAGjG,kHAAkH;AAClH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,sBAAsB,CAAC,EAAE;QACvB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,6FAA6F;IAC7F,kCAAkC,CAAC,EAAE;QACnC,sEAAsE;QACtE,qBAAqB,EAAE,qBAAqB,CAAA;QAC5C,gDAAgD;QAChD,gBAAgB,EAAE,OAAO,CAAA;KAC1B,CAAA;IACD,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,8DAA8D;IAC9D,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,qEAAqE;IACrE,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;wBACoB;IACpB,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAA;IAC/C;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC;;OAEG;IACH,uBAAuB,CAAC,EAAE,4BAA4B,CAAA;IACtD;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAID;;GAEG;AACH,eAAO,MAAM,WAAW,yFA+JtB,CAAA;AAEF,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"GenericCard.d.ts","sourceRoot":"","sources":["../../../src/components/GenericCard/GenericCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAG7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAA;AAIjG,kHAAkH;AAClH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAA;IACZ,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,sBAAsB,CAAC,EAAE;QACvB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,6FAA6F;IAC7F,kCAAkC,CAAC,EAAE;QACnC,sEAAsE;QACtE,qBAAqB,EAAE,qBAAqB,CAAA;QAC5C,gDAAgD;QAChD,gBAAgB,EAAE,OAAO,CAAA;KAC1B,CAAA;IACD,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,8DAA8D;IAC9D,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,qEAAqE;IACrE,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;wBACoB;IACpB,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAA;IAC/C;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC;;OAEG;IACH,uBAAuB,CAAC,EAAE,4BAA4B,CAAA;IACtD;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC;;OAEG;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAID;;GAEG;AACH,eAAO,MAAM,WAAW,yFAyKtB,CAAA;AAEF,eAAe,WAAW,CAAA"}
@@ -1,6 +1,6 @@
1
- import { jsx as r, jsxs as o } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as t } from "react/jsx-runtime";
2
2
  import { GenericCardTitle as H } from "./GenericCardTitle.js";
3
- import { Box as v, Stack as I } from "@mui/material";
3
+ import { Box as l, Stack as I } from "@mui/material";
4
4
  import { forwardRef as B } from "react";
5
5
  import F from "../HeaderCard.js";
6
6
  import G from "../row_renderers/utils/CardFooter.js";
@@ -17,80 +17,84 @@ import "../../assets/icons/study-complete.svg.js";
17
17
  import "../../assets/icons/translational.svg.js";
18
18
  import "../../assets/icons/tree_horizontal.svg.js";
19
19
  import "../../assets/icons/standardDataModel.svg.js";
20
+ import "../../assets/icons/Challenge.svg.js";
20
21
  import "@mui/material/SvgIcon";
21
22
  import "../../utils/SynapseConstants.js";
22
23
  import "../../assets/ArcusBioIcon.svg.js";
23
24
  import "../../assets/icons/AccessPending.svg.js";
24
25
  import "../../assets/icons/AccessPendingCloud.svg.js";
25
26
  import "../../assets/icons/FileWithShield.svg.js";
27
+ import "../../assets/icons/MultiFile.svg.js";
28
+ import "../../assets/icons/UnpackagableFile.svg.js";
26
29
  import "../../assets/icons/bioChemicalPhysical.svg.js";
27
30
  import "../../assets/icons/computationalTool.svg.js";
28
31
  import "../../assets/icons/dataReuse.svg.js";
29
32
  import "../../assets/icons/inSilicoModel.svg.js";
30
33
  import "../../assets/icons/modelSystem.svg.js";
34
+ import "../../assets/mui_components/PackagableFile.svg.js";
31
35
  import "../../assets/icons/spatialProfiling.svg.js";
32
36
  import "@mui/icons-material";
33
- import { FileHandleLink as _ } from "../widgets/FileHandleLink.js";
34
- import { CollapsibleDescription as j } from "./CollapsibleDescription.js";
35
- import { SmartLink as E } from "../SmartLink/SmartLink.js";
36
- const M = [], Ar = B(function(S, d) {
37
+ import { SmartLink as _ } from "../SmartLink/SmartLink.js";
38
+ import { FileHandleLink as j } from "../widgets/FileHandleLink.js";
39
+ import { CollapsibleDescription as E } from "./CollapsibleDescription.js";
40
+ const M = [], br = B(function(R, c) {
37
41
  const {
38
- icon: c,
39
- type: f,
42
+ icon: f,
43
+ type: h,
40
44
  title: n,
41
- titleLinkConfiguration: e,
45
+ titleLinkConfiguration: o,
42
46
  titleAsFileHandleLinkConfiguration: a,
43
- subtitle: l,
44
- description: h,
45
- descriptionSubTitle: A = "",
46
- descriptionConfig: C,
47
- cardTopContent: x,
47
+ subtitle: s,
48
+ description: C,
49
+ descriptionSubTitle: S = "",
50
+ descriptionConfig: x,
51
+ cardTopContent: g,
48
52
  cardTopButtons: p,
49
- isHeader: s = !1,
50
- headerCardVariant: L,
53
+ isHeader: m = !1,
54
+ headerCardVariant: T,
51
55
  useStylesForDisplayedImage: u = !1,
52
- labels: m = M,
53
- secondaryLabelLimit: g,
54
- columnIconOptions: R,
55
- ctaLinkConfig: t,
56
- renderedIconList: T,
56
+ labels: d = M,
57
+ secondaryLabelLimit: v,
58
+ ctaLinkConfig: i,
59
+ renderedIconList: L,
57
60
  sustainabilityScorecard: b,
58
- cardTypeAdornment: w,
59
- charCountCutoff: N
60
- } = S, y = m.length > 0, k = {
61
+ cardTypeAdornment: N,
62
+ titleAreaRightContent: y,
63
+ charCountCutoff: w
64
+ } = R, A = d.length > 0, D = {
61
65
  // undefined, take default value from class
62
- marginTop: s ? "0px" : void 0,
63
- marginBottom: s ? "0px" : void 0,
64
- paddingBottom: y || u ? void 0 : "15px"
66
+ marginTop: m ? "0px" : void 0,
67
+ marginBottom: m ? "0px" : void 0,
68
+ paddingBottom: A || u ? void 0 : "15px"
65
69
  };
66
- return s ? /* @__PURE__ */ r(
70
+ return m ? /* @__PURE__ */ r(
67
71
  F,
68
72
  {
69
- ref: d,
70
- headerCardVariant: L,
71
- descriptionConfig: C,
72
- charCountCutoff: N,
73
+ ref: c,
74
+ headerCardVariant: T,
75
+ descriptionConfig: x,
76
+ charCountCutoff: w,
73
77
  title: n,
74
- subTitle: l,
75
- description: h,
76
- type: f,
77
- icon: c,
78
- values: m,
79
- href: e?.href,
80
- target: e?.target,
81
- ctaLinkConfig: t,
78
+ subTitle: s,
79
+ description: C,
80
+ type: h,
81
+ icon: f,
82
+ values: d,
83
+ href: o?.href,
84
+ target: o?.target,
85
+ ctaLinkConfig: i,
82
86
  isAlignToLeftNav: !0,
83
- secondaryLabelLimit: g,
87
+ secondaryLabelLimit: v,
84
88
  cardTopButtons: p,
85
- cardTopContent: x,
89
+ cardTopContent: g,
86
90
  sustainabilityScorecard: b
87
91
  }
88
- ) : /* @__PURE__ */ o("div", { style: k, ref: d, className: "SRC-portalCard", children: [
89
- /* @__PURE__ */ o("div", { className: "SRC-portalCardMain", children: [
90
- c,
91
- /* @__PURE__ */ o("div", { className: "SRC-cardContent", children: [
92
+ ) : /* @__PURE__ */ t("div", { style: D, ref: c, className: "SRC-portalCard", children: [
93
+ /* @__PURE__ */ t("div", { className: "SRC-portalCardMain", children: [
94
+ f,
95
+ /* @__PURE__ */ t("div", { className: "SRC-cardContent", children: [
92
96
  p && /* @__PURE__ */ r(
93
- v,
97
+ l,
94
98
  {
95
99
  sx: {
96
100
  position: "absolute",
@@ -103,7 +107,7 @@ const M = [], Ar = B(function(S, d) {
103
107
  children: p
104
108
  }
105
109
  ),
106
- /* @__PURE__ */ o(
110
+ /* @__PURE__ */ t(
107
111
  I,
108
112
  {
109
113
  sx: {
@@ -112,74 +116,84 @@ const M = [], Ar = B(function(S, d) {
112
116
  gap: "10px"
113
117
  },
114
118
  children: [
115
- /* @__PURE__ */ r("div", { className: "SRC-type", children: f }),
116
- w
119
+ /* @__PURE__ */ r("div", { className: "SRC-type", children: h }),
120
+ N
117
121
  ]
118
122
  }
119
123
  ),
120
- T,
121
- /* @__PURE__ */ r("div", { children: /* @__PURE__ */ o(
122
- "h3",
123
- {
124
- className: "SRC-boldText SRC-blackText",
125
- style: { margin: "none" },
126
- children: [
127
- !a && /* @__PURE__ */ r(
128
- H,
129
- {
130
- title: n,
131
- href: e?.href,
132
- target: e?.target
133
- }
134
- ),
135
- a && /* @__PURE__ */ r(
136
- _,
137
- {
138
- fileHandleAssociation: a.fileHandleAssociation,
139
- showDownloadIcon: a.showDownloadIcon,
140
- displayValue: n
141
- }
142
- )
143
- ]
144
- }
145
- ) }),
146
- l && /* @__PURE__ */ r("div", { className: "SRC-author", children: l }),
147
- /* @__PURE__ */ r(
148
- j,
149
- {
150
- description: h,
151
- descriptionSubTitle: A,
152
- descriptionConfig: C
153
- }
154
- ),
155
- t && /* @__PURE__ */ r(v, { sx: { mt: "20px", display: "flex", gap: 2, flexWrap: "wrap" }, children: (Array.isArray(t) ? t : [t]).map(
156
- (i, D) => i.text && i.href && /* @__PURE__ */ r(
157
- E,
158
- {
159
- href: i.href,
160
- target: i.target,
161
- children: i.text
162
- },
163
- D
164
- )
165
- ) })
124
+ L,
125
+ /* @__PURE__ */ t(l, { className: "SRC-cardTitleArea", children: [
126
+ /* @__PURE__ */ t(l, { sx: { flex: 1, minWidth: 0 }, children: [
127
+ /* @__PURE__ */ r("div", { children: /* @__PURE__ */ t(
128
+ "h3",
129
+ {
130
+ className: "SRC-boldText SRC-blackText",
131
+ style: { margin: "none" },
132
+ children: [
133
+ !a && /* @__PURE__ */ r(
134
+ H,
135
+ {
136
+ title: n,
137
+ href: o?.href,
138
+ target: o?.target
139
+ }
140
+ ),
141
+ a && /* @__PURE__ */ r(
142
+ j,
143
+ {
144
+ fileHandleAssociation: a.fileHandleAssociation,
145
+ showDownloadIcon: a.showDownloadIcon,
146
+ displayValue: n
147
+ }
148
+ )
149
+ ]
150
+ }
151
+ ) }),
152
+ s && /* @__PURE__ */ r("div", { className: "SRC-author", children: s }),
153
+ /* @__PURE__ */ r(
154
+ E,
155
+ {
156
+ description: C,
157
+ descriptionSubTitle: S,
158
+ descriptionConfig: x
159
+ }
160
+ ),
161
+ i && /* @__PURE__ */ r(
162
+ l,
163
+ {
164
+ sx: { mt: "20px", display: "flex", gap: 2, flexWrap: "wrap" },
165
+ children: (Array.isArray(i) ? i : [i]).map(
166
+ (e, k) => e.text && e.href && /* @__PURE__ */ r(
167
+ _,
168
+ {
169
+ href: e.href,
170
+ target: e.target,
171
+ children: e.text
172
+ },
173
+ k
174
+ )
175
+ )
176
+ }
177
+ )
178
+ ] }),
179
+ y && /* @__PURE__ */ r("div", { className: "SRC-cardTitleAreaDetails", children: y })
180
+ ] })
166
181
  ] })
167
182
  ] }),
168
- y && /* @__PURE__ */ r(
183
+ A && /* @__PURE__ */ r(
169
184
  G,
170
185
  {
171
186
  isHeader: !1,
172
- secondaryLabelLimit: g,
173
- values: m,
174
- columnIconOptions: R,
187
+ secondaryLabelLimit: v,
188
+ values: d,
175
189
  className: u ? void 0 : "hasIcon",
176
- cardTopContent: x
190
+ cardTopContent: g
177
191
  }
178
192
  )
179
193
  ] });
180
194
  });
181
195
  export {
182
- Ar as GenericCard,
183
- Ar as default
196
+ br as GenericCard,
197
+ br as default
184
198
  };
185
199
  //# sourceMappingURL=GenericCard.js.map