synapse-react-client 4.0.3 → 4.0.5-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 (338) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/assets/DefaultColorfulPortalCardBackground.svg +14 -0
  3. package/dist/assets/DefaultColorfulPortalCardBackground.svg.js +7 -0
  4. package/dist/assets/DefaultColorfulPortalCardBackground.svg.js.map +1 -0
  5. package/dist/assets/homepage/nih-aging.svg +27 -27
  6. package/dist/assets/homepage/nih-aging.svg.js +1 -1
  7. package/dist/assets/homepage/nih-aging.svg.js.map +1 -1
  8. package/dist/assets/homepage/nih-heart.svg +39 -46
  9. package/dist/assets/homepage/nih-heart.svg.js +3 -3
  10. package/dist/assets/homepage/nih-heart.svg.js.map +1 -1
  11. package/dist/assets/homepage/nih-nci.svg +6 -0
  12. package/dist/assets/homepage/nih-nci.svg.js +7 -0
  13. package/dist/assets/homepage/nih-nci.svg.js.map +1 -0
  14. package/dist/assets/homepage/nih-nimh.svg +14 -0
  15. package/dist/assets/homepage/nih-nimh.svg.js +7 -0
  16. package/dist/assets/homepage/nih-nimh.svg.js.map +1 -0
  17. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +1 -1
  18. package/dist/components/AccessRequirementList/AccessRequirementList.js +4 -4
  19. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
  20. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +8 -7
  21. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  22. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +4 -4
  23. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js +11 -11
  24. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js +1 -1
  25. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js +9 -9
  26. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js +5 -5
  27. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.d.ts.map +1 -1
  28. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +33 -32
  29. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  30. package/dist/components/AclEditor/AclEditor.js +8 -8
  31. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  32. package/dist/components/AclEditor/AclEditor.test-utils.js +34 -34
  33. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  34. package/dist/components/Authentication/AuthenticationMethodSelection.js +1 -1
  35. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  36. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +6 -5
  37. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  38. package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
  39. package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -1
  40. package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
  41. package/dist/components/BasePortalCard/BasePortalCard.js +12 -12
  42. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  43. package/dist/components/BasePortalCard/BasePortalCard.module.scss +6 -0
  44. package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +1 -1
  45. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.css +1 -1
  46. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
  47. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +24 -23
  48. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  49. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss +15 -5
  50. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss.js +1 -1
  51. package/dist/components/CardContainer/CardLink.d.ts +12 -0
  52. package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
  53. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +12 -12
  54. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
  55. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +7 -7
  56. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  57. package/dist/components/CitationPopover/CitationPopoverContent.d.ts.map +1 -1
  58. package/dist/components/CitationPopover/CitationPopoverContent.js +13 -12
  59. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  60. package/dist/components/CookiesNotification/CookiesNotification.js +1 -1
  61. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +3 -4
  62. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  63. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +2 -2
  64. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  65. package/dist/components/DataGrid/SynapseGrid.js +35 -35
  66. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  67. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +2 -2
  68. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.d.ts.map +1 -1
  69. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js +9 -7
  70. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  71. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js +1 -1
  72. package/dist/components/DownloadCart/RequestDownloadCard.js +1 -1
  73. package/dist/components/Ecosystem/EcosystemSkeleton.js +2 -2
  74. package/dist/components/Ecosystem/TableQueryEcosystem.js +1 -1
  75. package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
  76. package/dist/components/EntityAclEditor/OpenData.js +1 -1
  77. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  78. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +113 -127
  79. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  80. package/dist/components/EntityCitation/EntityCitation.js +1 -1
  81. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
  82. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js +1 -1
  83. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js +1 -1
  84. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
  85. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js +1 -1
  86. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js +1 -1
  87. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js +1 -1
  88. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js +1 -1
  89. package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
  90. package/dist/components/EntityHeaderTable/EntityHeaderTable.d.ts.map +1 -1
  91. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +39 -39
  92. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  93. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts +8 -0
  94. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts.map +1 -0
  95. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js +46 -0
  96. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -0
  97. package/dist/components/Evaluation/EvaluationCard.d.ts.map +1 -1
  98. package/dist/components/Evaluation/EvaluationCard.js +35 -41
  99. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  100. package/dist/components/Evaluation/EvaluationEditor.d.ts.map +1 -1
  101. package/dist/components/Evaluation/EvaluationEditor.js +95 -90
  102. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  103. package/dist/components/Evaluation/EvaluationRoundEditor.d.ts.map +1 -1
  104. package/dist/components/Evaluation/EvaluationRoundEditor.js +133 -124
  105. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  106. package/dist/components/FilePreview/EntityPreview.js +1 -1
  107. package/dist/components/Forum/DiscussionReply.js +10 -10
  108. package/dist/components/Forum/DiscussionThread.js +21 -21
  109. package/dist/components/GenericCard/CardUtils.d.ts.map +1 -1
  110. package/dist/components/GenericCard/CardUtils.js +36 -36
  111. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  112. package/dist/components/GenericCard/CollapsibleDescription.js +25 -25
  113. package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
  114. package/dist/components/GenericCard/SynapseCardLabel.js +72 -67
  115. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  116. package/dist/components/GenericCard/TableRowGenericCard.d.ts +4 -1
  117. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  118. package/dist/components/GenericCard/TableRowGenericCard.js +98 -96
  119. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  120. package/dist/components/GoalsV2/GoalsV2.Desktop.d.ts.map +1 -1
  121. package/dist/components/GoalsV2/GoalsV2.Desktop.js +14 -15
  122. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  123. package/dist/components/GoogleAnalytics/GoogleAnalytics.js +1 -1
  124. package/dist/components/HasAccess/HasAccessV2.js +1 -1
  125. package/dist/components/HasAccess/useHasAccess.js +1 -1
  126. package/dist/components/IDUReport/IDUReportSubmissionInfo.js +23 -23
  127. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  128. package/dist/components/JSONArrayEditor/useParseCsv.d.ts +1 -1
  129. package/dist/components/JSONArrayEditor/useParseCsv.d.ts.map +1 -1
  130. package/dist/components/JSONArrayEditor/useParseCsv.js +9 -9
  131. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  132. package/dist/components/Markdown/MarkdownCollapse.js +7 -7
  133. package/dist/components/Markdown/MarkdownEditor.js +11 -11
  134. package/dist/components/Markdown/MarkdownGithub.js +1 -1
  135. package/dist/components/Markdown/MarkdownPopover.js +6 -6
  136. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  137. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  138. package/dist/components/Markdown/MarkdownSynapse.js +139 -135
  139. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  140. package/dist/components/Markdown/MarkdownUtils.d.ts +8 -0
  141. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  142. package/dist/components/Markdown/MarkdownUtils.js +139 -65
  143. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  144. package/dist/components/Markdown/UserMentionModal.js +18 -18
  145. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  146. package/dist/components/Markdown/widget/MarkdownButton.js +3 -3
  147. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  148. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.d.ts.map +1 -1
  149. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +9 -8
  150. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  151. package/dist/components/Plot/SynapsePlot.css +1 -0
  152. package/dist/components/Plot/SynapsePlot.d.ts +2 -0
  153. package/dist/components/Plot/SynapsePlot.d.ts.map +1 -1
  154. package/dist/components/Plot/SynapsePlot.js +43 -39
  155. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  156. package/dist/components/Plot/SynapsePlot.scss +8 -0
  157. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +1 -1
  158. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  159. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +114 -113
  160. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  161. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts +1 -1
  162. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts.map +1 -1
  163. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  164. package/dist/components/Resources/Resources.Desktop.js +7 -7
  165. package/dist/components/Resources/Resources.Mobile.js +6 -6
  166. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js +3 -3
  167. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js +10 -10
  168. package/dist/components/SynapseChat/SynapseChatInteraction.js +5 -5
  169. package/dist/components/SynapseForm/WarningDialog.d.ts +1 -0
  170. package/dist/components/SynapseForm/WarningDialog.d.ts.map +1 -1
  171. package/dist/components/SynapseForm/WarningDialog.js +18 -16
  172. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  173. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +1 -1
  174. package/dist/components/SynapseHomepageV2/SynapsePartners.d.ts.map +1 -1
  175. package/dist/components/SynapseHomepageV2/SynapsePartners.js +17 -12
  176. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  177. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.d.ts.map +1 -1
  178. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +39 -39
  179. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  180. package/dist/components/SynapseSearchPageResults/HasAccessChip.js +1 -1
  181. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.d.ts.map +1 -1
  182. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +21 -22
  183. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  184. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +5 -5
  185. package/dist/components/SynapseTable/ExpandableTableDataCell.d.ts.map +1 -1
  186. package/dist/components/SynapseTable/ExpandableTableDataCell.js +3 -1
  187. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  188. package/dist/components/SynapseTable/SynapseTable.js +4 -4
  189. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.d.ts.map +1 -1
  190. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js +122 -122
  191. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  192. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +5 -5
  193. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  194. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js +1 -1
  195. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +1 -1
  196. package/dist/components/TableFeedCards/TableFeedCards.js +9 -9
  197. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js +10 -10
  198. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +9 -9
  199. package/dist/components/UserSearchBox/UserSearchBox.d.ts +23 -0
  200. package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -0
  201. package/dist/components/UserSearchBox/UserSearchBox.js +146 -0
  202. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -0
  203. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js +13 -13
  204. package/dist/components/WizardChoiceButton/WizardChoiceButton.js +3 -3
  205. package/dist/components/dataaccess/AccessHistoryDashboard.js +5 -5
  206. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  207. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  208. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  209. package/dist/components/dataaccess/AccessSubmissionDashboard.js +1 -1
  210. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  211. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +5 -5
  212. package/dist/components/dataaccess/UseAccessRequirementTable.js +3 -3
  213. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  214. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  215. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +2 -2
  216. package/dist/components/entity/metadata/EntityModal.js +1 -1
  217. package/dist/components/entity/metadata/MetadataTable.js +1 -1
  218. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +1 -1
  219. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js +1 -1
  220. package/dist/components/entity/page/title_bar/TitleBarProperties.js +1 -1
  221. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
  222. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +27 -26
  223. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  224. package/dist/components/index.js +109 -107
  225. package/dist/components/index.js.map +1 -1
  226. package/dist/components/layout/InfiniteTableLayout.js +1 -1
  227. package/dist/components/styled/HoverPopover.css +1 -0
  228. package/dist/components/styled/HoverPopover.d.ts +28 -0
  229. package/dist/components/styled/HoverPopover.d.ts.map +1 -0
  230. package/dist/components/styled/HoverPopover.js +104 -0
  231. package/dist/components/styled/HoverPopover.js.map +1 -0
  232. package/dist/components/styled/HoverPopover.module.scss +10 -0
  233. package/dist/components/styled/HoverPopover.module.scss.js +10 -0
  234. package/dist/components/styled/HoverPopover.module.scss.js.map +1 -0
  235. package/dist/components/styled/index.d.ts +2 -0
  236. package/dist/components/styled/index.d.ts.map +1 -1
  237. package/dist/components/styled/index.js +11 -9
  238. package/dist/components/styled/index.js.map +1 -1
  239. package/dist/components/table/CsvPreview/CsvPreview.js +2 -2
  240. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +2 -2
  241. package/dist/components/widgets/Range.js +1 -1
  242. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  243. package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -32
  244. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  245. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +1 -1
  246. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  247. package/dist/components/widgets/facet-nav/PlotsContainer.js +69 -68
  248. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  249. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  250. package/dist/components/widgets/facet-nav/useFacetPlots.js +24 -21
  251. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  252. package/dist/components/widgets/query-filter/FacetFilterControls.js +3 -3
  253. package/dist/features/curator/GridPage/GridPage.js +2 -2
  254. package/dist/features/curator/GridPage/components/GridPageTitle.js +2 -2
  255. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  256. package/dist/index.js +157 -155
  257. package/dist/index.js.map +1 -1
  258. package/dist/mocks/msw/handlers/accessRequirementHandlers.js +5 -5
  259. package/dist/mocks/msw/handlers/projectStorageHandlers.js +5 -5
  260. package/dist/mocks/msw/handlers/wikiHandlers.js +1 -1
  261. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  262. package/dist/mocks/msw/handlers.js +67 -59
  263. package/dist/mocks/msw/handlers.js.map +1 -1
  264. package/dist/style/base/_core.scss +0 -1
  265. package/dist/style/components/_all.scss +0 -1
  266. package/dist/style/components/_entity-badge.scss +0 -2
  267. package/dist/style/components/_expandable_table_data.scss +3 -3
  268. package/dist/style/components/facet_nav/_facet-nav-panel.scss +3 -0
  269. package/dist/style/components/facet_nav/_facet-nav.scss +4 -0
  270. package/dist/style/main.css +1 -1
  271. package/dist/synapse-client/SynapseClient.js +118 -118
  272. package/dist/synapse-client/SynapseClient.js.map +1 -1
  273. package/dist/synapse-queries/auth/useOIDC.js +1 -1
  274. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js +1 -1
  275. package/dist/synapse-queries/entity/index.js +6 -6
  276. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  277. package/dist/synapse-queries/index.js +1 -1
  278. package/dist/synapse-queries/user/usePersonalAccessToken.js +1 -1
  279. package/dist/testutils/vitest.setup.js +10 -11
  280. package/dist/testutils/vitest.setup.js.map +1 -1
  281. package/dist/theme/DefaultTheme.js +1 -1
  282. package/dist/theme/ThemeProvider.d.ts +2 -1
  283. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  284. package/dist/theme/ThemeProvider.js +11 -10
  285. package/dist/theme/ThemeProvider.js.map +1 -1
  286. package/dist/theme/index.js +1 -1
  287. package/dist/theme/mergeTheme.js +1 -1
  288. package/dist/tsconfig.build.tsbuildinfo +1 -1
  289. package/dist/utils/AppUtils/AppUtils.js +1 -1
  290. package/dist/utils/functions/SanitizeHtmlUtils.d.ts.map +1 -1
  291. package/dist/utils/functions/SanitizeHtmlUtils.js +34 -40
  292. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  293. package/dist/utils/functions/deepLinkingUtils.js +10 -10
  294. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  295. package/dist/utils/hooks/index.js +6 -6
  296. package/dist/utils/hooks/useDetectSSOCode.js +3 -3
  297. package/dist/utils/hooks/useGetEntityMetadata.js +1 -1
  298. package/dist/utils/hooks/useNativeSearchParams.d.ts.map +1 -1
  299. package/dist/utils/hooks/useNativeSearchParams.js +1 -1
  300. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  301. package/dist/utils/hooks/useOneSageURL.d.ts.map +1 -1
  302. package/dist/utils/hooks/useOneSageURL.js +15 -15
  303. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  304. package/dist/utils/hooks/useSourceAppConfigs.d.ts +1 -0
  305. package/dist/utils/hooks/useSourceAppConfigs.d.ts.map +1 -1
  306. package/dist/utils/hooks/useSourceAppConfigs.js +79 -77
  307. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  308. package/dist/utils/index.js +4 -4
  309. package/package.json +17 -18
  310. package/dist/_virtual/index.js +0 -6
  311. package/dist/_virtual/index.js.map +0 -1
  312. package/dist/_virtual/index2.js +0 -5
  313. package/dist/_virtual/index2.js.map +0 -1
  314. package/dist/_virtual/index3.js +0 -5
  315. package/dist/_virtual/index3.js.map +0 -1
  316. package/dist/_virtual/index4.js +0 -5
  317. package/dist/_virtual/index4.js.map +0 -1
  318. package/dist/_virtual/index5.js +0 -5
  319. package/dist/_virtual/index5.js.map +0 -1
  320. package/dist/assets/homepage/nci.svg +0 -6
  321. package/dist/assets/homepage/nci.svg.js +0 -7
  322. package/dist/assets/homepage/nci.svg.js.map +0 -1
  323. package/dist/assets/homepage/nih-mental.svg +0 -9
  324. package/dist/assets/homepage/nih-mental.svg.js +0 -7
  325. package/dist/assets/homepage/nih-mental.svg.js.map +0 -1
  326. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts +0 -21
  327. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts.map +0 -1
  328. package/dist/components/UserSearchBox/UserSearchBoxV2.js +0 -144
  329. package/dist/components/UserSearchBox/UserSearchBoxV2.js.map +0 -1
  330. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +0 -53
  331. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js.map +0 -1
  332. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +0 -948
  333. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js.map +0 -1
  334. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +0 -30
  335. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js.map +0 -1
  336. package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js +0 -15
  337. package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js.map +0 -1
  338. package/dist/style/components/_user-search-box.scss +0 -30
@@ -1,4 +1,4 @@
1
- import { jsx as n, jsxs as b, Fragment as Eo } from "react/jsx-runtime";
1
+ import { jsx as n, jsxs as T, Fragment as Eo } from "react/jsx-runtime";
2
2
  import { getValueOrMultiValue as Oo, getLinkParams as Q, getFileHandleAssociation as Bo } from "./CardUtils.js";
3
3
  import Fo from "./CroissantButton/CroissantButton.js";
4
4
  import { GenericCardIcon as Po } from "./GenericCardIcon.js";
@@ -52,9 +52,9 @@ import { GenericCard as me } from "./GenericCard.js";
52
52
  import ce from "./GenericCardActionButton.js";
53
53
  import { SynapseCardLabel as K } from "./SynapseCardLabel.js";
54
54
  import { useResolvedSynapseEntity as pe } from "./useResolvedSynapseEntity.js";
55
- function ue(T) {
56
- const { synapseId: v, version: d } = T;
57
- return /* @__PURE__ */ b("span", { children: [
55
+ function ue(v) {
56
+ const { synapseId: L, version: d } = v;
57
+ return /* @__PURE__ */ T("span", { children: [
58
58
  d,
59
59
  "  ",
60
60
  /* @__PURE__ */ n(
@@ -62,36 +62,36 @@ function ue(T) {
62
62
  {
63
63
  target: ee.NEW_WINDOW,
64
64
  rel: "noopener noreferrer",
65
- href: `${_o.PORTAL}Synapse:${v}.${d}`,
65
+ href: `${_o.PORTAL}Synapse:${L}.${d}`,
66
66
  children: "(Show Version History on Synapse)"
67
67
  }
68
68
  )
69
69
  ] });
70
70
  }
71
- function gt(T) {
72
- const [v, d] = J(!1), [Y, Z] = J(!1), { entityId: oo, versionNumber: eo } = se(), { getColumnDisplayName: y } = le(), { ref: to, inView: no } = ne(), { data: g } = Ko(oo, eo), {
71
+ function gt(v) {
72
+ const [L, d] = J(!1), [Y, Z] = J(!1), { entityId: oo, versionNumber: eo } = se(), { getColumnDisplayName: g } = le(), { ref: to, inView: no } = ne(), { data: I } = Ko(oo, eo), {
73
73
  schema: t,
74
74
  data: o,
75
- rowId: L,
75
+ rowId: w,
76
76
  versionNumber: io,
77
77
  genericCardSchema: i,
78
78
  secondaryLabelLimit: ro,
79
79
  sharePageLinkButtonProps: ao,
80
- selectColumns: c,
80
+ selectColumns: p,
81
81
  columnModels: m,
82
82
  iconOptions: so,
83
83
  useTypeColumnForIcon: A = !1,
84
- isHeader: p = !1,
84
+ isHeader: u = !1,
85
85
  sustainabilityScorecard: lo,
86
86
  headerCardVariant: mo,
87
87
  titleLinkConfig: E,
88
- ctaLinkConfig: I,
88
+ ctaLinkConfig: h,
89
89
  labelLinkConfig: co,
90
90
  descriptionConfig: po,
91
- columnIconOptions: u,
91
+ columnIconOptions: f,
92
92
  CardTypeAdornment: O,
93
93
  charCountCutoff: uo
94
- } = T, {
94
+ } = v, {
95
95
  link: fo = "",
96
96
  type: B,
97
97
  includeCitation: Co,
@@ -99,23 +99,23 @@ function gt(T) {
99
99
  defaultCitationFormat: go,
100
100
  citationBoilerplateText: Io,
101
101
  downloadCartSynId: F,
102
- portalDoiConfiguration: h
102
+ portalDoiConfiguration: b
103
103
  } = i, P = o[t[i.title]];
104
- let w = i.subTitle && o[t[i.subTitle]];
105
- w = i.subTitle && Oo({
106
- value: w,
104
+ let D = i.subTitle && o[t[i.subTitle]];
105
+ D = i.subTitle && Oo({
106
+ value: D,
107
107
  columnName: i.subTitle,
108
- selectColumns: c,
108
+ selectColumns: p,
109
109
  columnModels: m
110
110
  }).str;
111
- const ho = o[t[i.description || ""]], bo = o[t[i.icon || ""]], H = o[t[i.dataTypeIconNames || ""]], D = o[t[i.imageFileHandleColumnName || ""]], To = m?.find(
111
+ const ho = o[t[i.description || ""]], bo = o[t[i.icon || ""]], H = o[t[i.dataTypeIconNames || ""]], V = o[t[i.imageFileHandleColumnName || ""]], To = m?.find(
112
112
  (e) => i.link === e.name
113
113
  )?.columnType, R = o[t[fo]] || "", { href: vo, target: Lo } = Q(
114
114
  R,
115
115
  E,
116
116
  o,
117
117
  t,
118
- L
118
+ w
119
119
  ), wo = i.synapseEntityConfig, G = jo(
120
120
  (e) => {
121
121
  if (!e)
@@ -127,140 +127,142 @@ function gt(T) {
127
127
  [t, o]
128
128
  ), Do = U(() => {
129
129
  const { titleAreaDetails: e } = i;
130
- if (!e || e.length === 0) return;
131
- const r = e.map((a) => {
132
- const s = o[t[a]];
133
- return s ? { name: y(a), rawValue: s, columnName: a } : null;
130
+ if (!e) return;
131
+ const r = typeof e == "function" ? e(t, o) : e;
132
+ if (r.length === 0) return;
133
+ const s = r.map((a) => {
134
+ const l = o[t[a]];
135
+ return l ? { name: g(a), rawValue: l, columnName: a } : null;
134
136
  }).filter(Boolean);
135
- if (r.length !== 0)
136
- return /* @__PURE__ */ n(X, { direction: "column", gap: "4px", children: r.map(({ name: a, rawValue: s, columnName: l }) => /* @__PURE__ */ b(X, { direction: "row", gap: "4px", alignItems: "center", children: [
137
- /* @__PURE__ */ b(Qo, { component: "span", variant: "body1", children: [
137
+ if (s.length !== 0)
138
+ return /* @__PURE__ */ n(X, { direction: "column", gap: "4px", children: s.map(({ name: a, rawValue: l, columnName: c }) => /* @__PURE__ */ T(X, { direction: "row", gap: "4px", alignItems: "center", children: [
139
+ /* @__PURE__ */ T(Qo, { component: "span", variant: "body1", children: [
138
140
  a,
139
141
  ":"
140
142
  ] }),
141
143
  /* @__PURE__ */ n(
142
144
  K,
143
145
  {
144
- value: s,
145
- columnName: l,
146
+ value: l,
147
+ columnName: c,
146
148
  labelLink: void 0,
147
- isHeader: p,
148
- selectColumns: c,
149
+ isHeader: u,
150
+ selectColumns: p,
149
151
  columnModels: m,
150
152
  rowData: o,
151
- columnIconOptions: u
153
+ columnIconOptions: f
152
154
  }
153
155
  )
154
- ] }, l)) });
156
+ ] }, c)) });
155
157
  }, [
156
158
  i,
157
159
  o,
158
160
  t,
159
- y,
161
+ g,
162
+ u,
160
163
  p,
161
- c,
162
164
  m,
163
- u
165
+ f
164
166
  ]), {
165
- entityId: V,
166
- entityVersionNumber: N
167
+ entityId: N,
168
+ entityVersionNumber: S
167
169
  } = pe({
168
170
  synapseEntityConfig: wo,
169
171
  getColumnValue: G,
170
- rowId: L,
172
+ rowId: w,
171
173
  rowVersionNumber: io
172
174
  });
173
- let f = V, M = N;
175
+ let C = N, M = S;
174
176
  if (F) {
175
177
  const e = Wo(G(F) ?? "");
176
- f = e?.targetId, M = e?.targetVersionNumber;
178
+ C = e?.targetId, M = e?.targetVersionNumber;
177
179
  }
178
180
  const Vo = U(
179
181
  () => Mo(o, t),
180
182
  [o, t]
181
- ), S = Ro({
183
+ ), k = Ro({
182
184
  data: Vo,
183
- portalDoiConfiguration: h
185
+ portalDoiConfiguration: b
184
186
  }), No = Go({
185
- portalId: h?.portalId,
186
- resourceId: S
187
- }), C = [], { secondaryLabels: z = [] } = i, W = i.customSecondaryLabelConfig;
188
- if (No && h && S && no && C.push({
187
+ portalId: b?.portalId,
188
+ resourceId: k
189
+ }), y = [], { secondaryLabels: z = [] } = i, W = i.customSecondaryLabelConfig;
190
+ if (No && b && k && no && y.push({
189
191
  columnDisplayName: "DOI",
190
192
  value: /* @__PURE__ */ n(
191
193
  Ho,
192
194
  {
193
- portalId: h.portalId,
194
- resourceId: S
195
+ portalId: b.portalId,
196
+ resourceId: k
195
197
  }
196
198
  )
197
199
  }), W?.isVisible(t, o)) {
198
200
  const { key: e, value: r } = W;
199
- f ? C.push({
201
+ C ? y.push({
200
202
  columnDisplayName: "HOW TO DOWNLOAD",
201
- value: /* @__PURE__ */ n(Jo, { onClick: () => d((a) => !a), children: "Click here to add to Synapse download list" })
202
- }) : C.push({ columnDisplayName: e, value: r });
203
+ value: /* @__PURE__ */ n(Jo, { onClick: () => d((s) => !s), children: "Click here to add to Synapse download list" })
204
+ }) : y.push({ columnDisplayName: e, value: r });
203
205
  }
204
- const So = g && !Yo(g);
206
+ const So = I && !Yo(I);
205
207
  for (let e = 0; e < z.length; e += 1) {
206
- const r = z[e], a = o[t[r]];
207
- let s = a, l;
208
- if (s) {
209
- if (Zo(g) && r === "datasetSizeInBytes")
210
- l = "Size", s = oe(parseInt(a));
208
+ const r = z[e], s = o[t[r]];
209
+ let a = s, l;
210
+ if (a) {
211
+ if (Zo(I) && r === "datasetSizeInBytes")
212
+ l = "Size", a = oe(parseInt(s));
211
213
  else if (So && r === "currentVersion") {
212
- const x = o[t.id];
213
- s = /* @__PURE__ */ n(ue, { synapseId: x, version: a }), l = "Version";
214
+ const c = o[t.id];
215
+ a = /* @__PURE__ */ n(ue, { synapseId: c, version: s }), l = "Version";
214
216
  } else {
215
- const x = co?.find(
217
+ const c = co?.find(
216
218
  (Ao) => Ao.matchColumnName === r
217
219
  );
218
- s = /* @__PURE__ */ n(
220
+ a = /* @__PURE__ */ n(
219
221
  K,
220
222
  {
221
- value: a,
223
+ value: s,
222
224
  columnName: r,
223
- labelLink: x,
224
- isHeader: p,
225
- selectColumns: c,
225
+ labelLink: c,
226
+ isHeader: u,
227
+ selectColumns: p,
226
228
  columnModels: m,
227
229
  rowData: o,
228
- columnIconOptions: u
230
+ columnIconOptions: f
229
231
  }
230
- ), l = y(r);
232
+ ), l = g(r);
231
233
  }
232
- C.push({ columnDisplayName: l, value: s, columnName: r });
234
+ y.push({ columnDisplayName: l, value: a, columnName: r });
233
235
  }
234
236
  }
235
- const k = Bo(
236
- g,
237
- D || R,
237
+ const x = Bo(
238
+ I,
239
+ V || R,
238
240
  o[t.id]
239
- ), ko = y(
241
+ ), ko = g(
240
242
  i.description || ""
241
- ), _ = zo("doi", c, m), $ = _ !== void 0 ? o[_] : void 0, j = (I ? Array.isArray(I) ? I : [I] : []).map((e) => {
243
+ ), _ = zo("doi", p, m), $ = _ !== void 0 ? o[_] : void 0, j = (h ? Array.isArray(h) ? h : [h] : []).map((e) => {
242
244
  const r = o[t[e.link]] || "";
243
245
  if (!r) return null;
244
- const { href: a, target: s } = Q(
246
+ const { href: s, target: a } = Q(
245
247
  r,
246
248
  void 0,
247
249
  //card link config
248
250
  o,
249
251
  t,
250
- L
252
+ w
251
253
  );
252
254
  return {
253
255
  text: e.text,
254
- href: a,
255
- target: s
256
+ href: s,
257
+ target: a
256
258
  };
257
259
  }).filter(Boolean);
258
260
  let q = /* @__PURE__ */ n(Eo, {});
259
- V != null && N != null && (q = /* @__PURE__ */ n(
261
+ N != null && S != null && (q = /* @__PURE__ */ n(
260
262
  Fo,
261
263
  {
262
- datasetId: V,
263
- datasetVersionNumber: N
264
+ datasetId: N,
265
+ datasetVersionNumber: S
264
266
  }
265
267
  ));
266
268
  const xo = O ? /* @__PURE__ */ n(O, { schema: t, data: o }) : null;
@@ -274,22 +276,22 @@ function gt(T) {
274
276
  type: A ? o[t.type] : i.type,
275
277
  useTypeForIcon: A,
276
278
  thumbnailRequiresPadding: i.thumbnailRequiresPadding,
277
- imageFileHandleId: D,
278
- fileHandleAssociation: k,
279
+ imageFileHandleId: V,
280
+ fileHandleAssociation: x,
279
281
  iconOptions: so,
280
282
  iconValue: bo
281
283
  }
282
284
  ),
283
- isHeader: p,
285
+ isHeader: u,
284
286
  sustainabilityScorecard: lo,
285
287
  headerCardVariant: mo,
286
288
  type: B,
287
289
  title: P,
288
- subtitle: w,
290
+ subtitle: D,
289
291
  titleLinkConfiguration: { target: Lo, href: vo },
290
292
  cardTypeAdornment: xo,
291
- titleAsFileHandleLinkConfiguration: !E && To === qo.FILEHANDLEID && k ? {
292
- fileHandleAssociation: k,
293
+ titleAsFileHandleLinkConfiguration: !E && To === qo.FILEHANDLEID && x ? {
294
+ fileHandleAssociation: x,
293
295
  showDownloadIcon: B !== $o
294
296
  } : void 0,
295
297
  ctaLinkConfig: j.length > 0 ? j : void 0,
@@ -298,13 +300,13 @@ function gt(T) {
298
300
  descriptionSubTitle: ko,
299
301
  descriptionConfig: po,
300
302
  charCountCutoff: uo,
301
- labels: C,
303
+ labels: y,
302
304
  secondaryLabelLimit: ro,
303
- useStylesForDisplayedImage: !!D,
304
- cardTopContent: f && /* @__PURE__ */ n(Xo, { in: v, children: /* @__PURE__ */ n(
305
+ useStylesForDisplayedImage: !!V,
306
+ cardTopContent: C && /* @__PURE__ */ n(Xo, { in: L, children: /* @__PURE__ */ n(
305
307
  re,
306
308
  {
307
- entityId: f,
309
+ entityId: C,
308
310
  versionNumber: M,
309
311
  handleClose: () => d(!1),
310
312
  onIsLoadingChange: (e) => {
@@ -315,10 +317,10 @@ function gt(T) {
315
317
  renderedIconList: (
316
318
  // If the portal configs has columnIconOptions.columns.dataType option
317
319
  // and the column value is not null, display the card data type icons
318
- u?.columns?.dataType && H?.length && /* @__PURE__ */ n("div", { style: { marginTop: "20px" }, children: /* @__PURE__ */ n(
320
+ f?.columns?.dataType && H?.length && /* @__PURE__ */ n("div", { style: { marginTop: "20px" }, children: /* @__PURE__ */ n(
319
321
  ae,
320
322
  {
321
- iconConfigs: u.columns.dataType,
323
+ iconConfigs: f.columns.dataType,
322
324
  iconNames: JSON.parse(H),
323
325
  commonIconProps: {
324
326
  sx: { fontSize: "40px" }
@@ -328,9 +330,9 @@ function gt(T) {
328
330
  }
329
331
  ) })
330
332
  ),
331
- cardTopButtons: /* @__PURE__ */ b(Uo, { sx: { display: "flex", gap: 1 }, children: [
333
+ cardTopButtons: /* @__PURE__ */ T(Uo, { sx: { display: "flex", gap: 1 }, children: [
332
334
  q,
333
- f && /* @__PURE__ */ n(
335
+ C && /* @__PURE__ */ n(
334
336
  ce,
335
337
  {
336
338
  onClick: () => d((e) => !e),
@@ -349,7 +351,7 @@ function gt(T) {
349
351
  defaultCitationFormat: go
350
352
  }
351
353
  ),
352
- yo && p && /* @__PURE__ */ n(de, { ...ao })
354
+ yo && u && /* @__PURE__ */ n(de, { ...ao })
353
355
  ] })
354
356
  }
355
357
  );
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowGenericCard.js","sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"sourcesContent":["import { CommonCardProps } from '@/components/CardContainer/CardConfiguration'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n getValueOrMultiValue,\n} from '@/components/GenericCard/CardUtils'\nimport CroissantButton from '@/components/GenericCard/CroissantButton/CroissantButton'\nimport { GenericCardIcon } from '@/components/GenericCard/GenericCardIcon'\nimport PortalDOI from '@/components/GenericCard/PortalDOI/PortalDOI'\nimport {\n getCandidateDoiId,\n useShowDoiCardLabel,\n} from '@/components/GenericCard/PortalDOI/PortalDOIUtils'\nimport { mapRowToRecord } from '@/components/SynapseTable/SynapseTableUtils'\nimport { useGetEntity } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isDatasetCollection,\n isTableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { parseSynId } from '@/utils/functions/RegularExpressions'\nimport { getColumnIndex } from '@/utils/functions/SqlFunctions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Collapse, Link, Stack, Typography } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Entity,\n SelectColumn,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport CitationPopover from '../CitationPopover'\nimport { EntityDownloadConfirmation } from '../EntityDownloadConfirmation'\nimport { HeaderCardVariant } from '../HeaderCard'\nimport IconList from '../IconList'\nimport { useQueryContext } from '../QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport ShareThisPage, {\n ShareThisPageProps,\n} from '../ShareThisPage/ShareThisPage'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport GenericCard from './GenericCard'\nimport GenericCardActionButton from './GenericCardActionButton'\nimport { PortalDOIConfiguration } from './PortalDOI/PortalDOIConfiguration'\nimport { SynapseCardLabel } from './SynapseCardLabel'\nimport { useResolvedSynapseEntity } from './useResolvedSynapseEntity'\n\ntype RowSynapseEntityConfig = {\n /** Use the table rowId to resolve the Synapse entity ID. */\n id: {\n source: 'rowId'\n }\n /** Use the table rowVersionNumber to resolve the Synapse entity version (if available). */\n version?: {\n source: 'rowVersionNumber'\n }\n}\n\ntype ColumnSynapseEntityConfig = {\n /** Use a column value to resolve the Synapse entity ID. */\n id: {\n source: 'column'\n columnName: string\n }\n /** Use a column value to resolve the Synapse entity version. */\n version?: {\n source: 'column'\n columnName: string\n }\n}\n\nexport type SynapseEntityConfig =\n | RowSynapseEntityConfig\n | ColumnSynapseEntityConfig\n\n/**\n * Maps a table query result to a GenericCard.\n */\nexport type TableToGenericCardMapping = {\n /** The 'type' of resource a card refers to. Renders a label on the card with this string value.\n * Can be hidden by setting it to '' (empty string)\n */\n type: string\n /** The column name whose data contains the title of the card */\n title: string\n /** The column name whose data contains the subtitle of the card */\n subTitle?: string\n /** The column name whose data contains the description of the card */\n description?: string\n /** If true, a 'Cite As' button will be displayed for those cards with a DOI in the 'doi' column */\n includeCitation?: boolean\n /** If true, a 'Share this page' button will be displayed */\n includeShareButton?: boolean\n /**\n * Configuration for displaying the SustainabilityScorecard component\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /** The initial citation format to use in the 'Cite As' UI */\n defaultCitationFormat?: 'bibtex' | 'apa' | 'ieee' | 'nature' | 'science'\n /** Static text displayed in the 'Cite As' UI */\n citationBoilerplateText?: string\n /** The column name whose data contains the value used to map to the icon */\n icon?: string\n /** The column name whose data contains an image file handle to be displayed on the card */\n imageFileHandleColumnName?: string\n /** Static boolean value used if the image displayed using `imageFileHandleColumnName` requires extra padding */\n thumbnailRequiresPadding?: boolean\n /** Array of column names to be used for labels in the Card Footer */\n secondaryLabels?: string[]\n /** Can be used to add a custom secondary label */\n customSecondaryLabelConfig?: {\n /** The displayed label key */\n key: string\n /** The value to display */\n value: React.ReactNode\n /** Callback to determine visibility of the label\n * @param schema the mapping of columnName to data index\n * @param data the row data\n */\n isVisible: (schema: Record<string, number>, data: string[]) => boolean\n }\n /** Column name of the link value if the title should be linked */\n link?: string\n /** Column name of the STRING_LIST column that includes icon names that represent icons that should be displayed on the card */\n dataTypeIconNames?: string\n /**\n * Ordered list of column names to display to the right of the title area.\n * Each renders as \"Display Name: Value\" on its own line. Rows with empty values are skipped.\n * The display name is derived from getColumnDisplayName (respects column aliases and unCamelCase).\n */\n titleAreaDetails?: string[]\n /** Configuration for resolving the Synapse entity ID/version represented by each card row.\n * The ID and version sources must both reference either row-based values or column-based values.\n */\n synapseEntityConfig?: SynapseEntityConfig\n /** The column name whose data contains a synId that can be used to show a button to add the corresponding entity to the download cart. */\n downloadCartSynId?: string\n /** Configuration to display a DOI, as well as the ability to create one for users with such permission */\n portalDoiConfiguration?: PortalDOIConfiguration\n}\n\nexport type TableRowGenericCardProps = {\n /** The schema that maps a table result to the GenericCard UI */\n genericCardSchema: TableToGenericCardMapping\n /** The table's SelectColumns */\n selectColumns?: SelectColumn[]\n /** The table's ColumnModels */\n columnModels?: ColumnModel[]\n /** If true, the 'type' column will be used as the icon string to choose the icon */\n useTypeColumnForIcon?: boolean\n /** If true, render the card as a HeaderCard */\n isHeader?: boolean\n /** If isHeader is true, use this variant of HeaderCard */\n headerCardVariant?: HeaderCardVariant\n isAlignToLeftNav?: boolean\n /** Mapping of column name to row data index */\n schema: Record<string, number>\n /** The row data */\n data: string[]\n /** The ID of the table row */\n rowId?: number\n /** The versionNumber of the table row */\n versionNumber?: number\n /** Optional props for the ShareThisPage component */\n sharePageLinkButtonProps?: ShareThisPageProps\n /** Optional function that receives schema and data and returns a ReactNode to be rendered next to the card type */\n CardTypeAdornment?: React.ComponentType<{\n schema: Record<string, number>\n data: string[]\n }>\n} & CommonCardProps\n\n// SWC-6115: special rendering of the version column (for Views)\nfunction VersionLabel(props: { synapseId: string; version: string }) {\n const { synapseId, version } = props\n return (\n <span>\n {version}&nbsp;&nbsp;\n <a\n target={TargetEnum.NEW_WINDOW}\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${synapseId}.${version}`}\n >\n (Show Version History on Synapse)\n </a>\n </span>\n )\n}\n\n/**\n * Maps a table row to a GenericCard.\n */\nexport function TableRowGenericCard(props: TableRowGenericCardProps) {\n const [showDownloadConfirmation, setShowDownloadConfirmation] =\n useState(false)\n const [downloadButtonLoading, setDownloadButtonLoading] = useState(false)\n\n const { entityId, versionNumber } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { ref, inView: cardIsInView } = useInView()\n\n const { data: table } = useGetEntity<Table>(entityId, versionNumber)\n\n const {\n schema,\n data,\n rowId,\n versionNumber: rowVersionNumber,\n genericCardSchema,\n secondaryLabelLimit,\n sharePageLinkButtonProps,\n selectColumns,\n columnModels,\n iconOptions,\n useTypeColumnForIcon = false,\n isHeader = false,\n sustainabilityScorecard,\n headerCardVariant,\n titleLinkConfig,\n ctaLinkConfig,\n labelLinkConfig,\n descriptionConfig,\n columnIconOptions,\n CardTypeAdornment,\n charCountCutoff,\n } = props\n\n const {\n link = '',\n type,\n includeCitation,\n includeShareButton,\n defaultCitationFormat,\n citationBoilerplateText,\n downloadCartSynId,\n portalDoiConfiguration,\n } = genericCardSchema\n const title = data[schema[genericCardSchema.title]]\n let subTitle =\n genericCardSchema.subTitle && data[schema[genericCardSchema.subTitle]]\n subTitle =\n genericCardSchema.subTitle &&\n getValueOrMultiValue({\n value: subTitle,\n columnName: genericCardSchema.subTitle,\n selectColumns,\n columnModels,\n }).str\n const description = data[schema[genericCardSchema.description || '']]\n const iconValue = data[schema[genericCardSchema.icon || '']]\n const dataTypeIconNames =\n data[schema[genericCardSchema.dataTypeIconNames || '']]\n const imageFileHandleIdValue =\n data[schema[genericCardSchema.imageFileHandleColumnName || '']]\n const titleColumnModel = columnModels?.find(\n el => genericCardSchema.link === el.name,\n )\n const titleColumnType = titleColumnModel?.columnType\n // wrap link in parens because undefined would throw an error\n const linkValue: string = data[schema[link]] || ''\n const { href, target } = getLinkParams(\n linkValue,\n titleLinkConfig,\n data,\n schema,\n rowId,\n )\n\n const synapseEntityConfig = genericCardSchema.synapseEntityConfig\n\n const getColumnValue = useCallback(\n (columnName?: string) => {\n if (!columnName) {\n return undefined\n }\n const columnIndex = schema[columnName]\n if (columnIndex === undefined) {\n return undefined\n }\n return data[columnIndex]\n },\n [schema, data],\n )\n\n const resolvedTitleAreaRightContent = useMemo(() => {\n const { titleAreaDetails } = genericCardSchema\n if (!titleAreaDetails || titleAreaDetails.length === 0) return undefined\n const rows = titleAreaDetails\n .map(columnName => {\n const rawValue: string | undefined = data[schema[columnName]]\n if (!rawValue) return null\n return { name: getColumnDisplayName(columnName), rawValue, columnName }\n })\n .filter(Boolean) as {\n name: string\n rawValue: string\n columnName: string\n }[]\n if (rows.length === 0) return undefined\n return (\n <Stack direction=\"column\" gap=\"4px\">\n {rows.map(({ name, rawValue, columnName }) => (\n <Stack key={columnName} direction=\"row\" gap=\"4px\" alignItems=\"center\">\n <Typography component=\"span\" variant=\"body1\">\n {name}:\n </Typography>\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={undefined}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n </Stack>\n ))}\n </Stack>\n )\n }, [\n genericCardSchema,\n data,\n schema,\n getColumnDisplayName,\n isHeader,\n selectColumns,\n columnModels,\n columnIconOptions,\n ])\n\n const {\n entityId: resolvedSynapseEntityId,\n entityVersionNumber: resolvedSynapseEntityVersionNumber,\n } = useResolvedSynapseEntity({\n synapseEntityConfig,\n getColumnValue,\n rowId,\n rowVersionNumber,\n })\n\n let resolvedDownloadCartSynIdValue = resolvedSynapseEntityId\n let resolvedDownloadCartVersionNumber = resolvedSynapseEntityVersionNumber\n\n if (downloadCartSynId) {\n const reference = parseSynId(getColumnValue(downloadCartSynId) ?? '')\n resolvedDownloadCartSynIdValue = reference?.targetId\n resolvedDownloadCartVersionNumber = reference?.targetVersionNumber\n }\n\n // Transform the row to a record of (columnName, value) pairs for compatibility with getCandidateDoiId\n const dataAsRecord: Record<string, string | null> = useMemo(\n () => mapRowToRecord(data, schema),\n [data, schema],\n )\n\n const candidateDoiId = getCandidateDoiId({\n data: dataAsRecord,\n portalDoiConfiguration,\n })\n\n const showDoiCardLabel = useShowDoiCardLabel({\n portalId: portalDoiConfiguration?.portalId,\n resourceId: candidateDoiId,\n })\n\n const values: {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n }[] = []\n const { secondaryLabels = [] } = genericCardSchema\n const customLabelConfig = genericCardSchema.customSecondaryLabelConfig\n\n // PORTALS-3549 - if a DOI exists or can be created by the current user, show it\n if (\n showDoiCardLabel &&\n portalDoiConfiguration &&\n candidateDoiId &&\n cardIsInView\n ) {\n values.push({\n columnDisplayName: 'DOI',\n value: (\n <PortalDOI\n portalId={portalDoiConfiguration.portalId}\n resourceId={candidateDoiId}\n />\n ),\n })\n }\n\n // Overwrite the 'HOW TO DOWNLOAD' link if a synapse ID is available\n if (customLabelConfig?.isVisible(schema, data)) {\n const { key, value } = customLabelConfig\n if (resolvedDownloadCartSynIdValue) {\n values.push({\n columnDisplayName: 'HOW TO DOWNLOAD',\n value: (\n <Link onClick={() => setShowDownloadConfirmation(val => !val)}>\n Click here to add to Synapse download list\n </Link>\n ),\n })\n } else {\n values.push({ columnDisplayName: key, value })\n }\n }\n\n const isView = table && !isTableEntity(table)\n for (let i = 0; i < secondaryLabels.length; i += 1) {\n const columnName = secondaryLabels[i]\n const rawValue: string | undefined = data[schema[columnName]]\n let renderedValue: React.ReactNode = rawValue\n let columnDisplayName\n if (renderedValue) {\n // PORTALS-2750: special rendering of the datasetSizeInBytes (for Dataset Collections)\n if (\n isDatasetCollection(table as Entity) &&\n columnName === 'datasetSizeInBytes'\n ) {\n columnDisplayName = 'Size'\n renderedValue = calculateFriendlyFileSize(parseInt(rawValue))\n } // SWC-6115: special rendering of the version column (for Views)\n else if (isView && columnName === 'currentVersion') {\n const synapseId = data[schema.id]\n renderedValue = (\n <VersionLabel synapseId={synapseId} version={rawValue} />\n )\n columnDisplayName = 'Version'\n } else {\n const labelLink = labelLinkConfig?.find(\n el => el.matchColumnName === columnName,\n )\n renderedValue = (\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={labelLink}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n )\n columnDisplayName = getColumnDisplayName(columnName)\n }\n values.push({ columnDisplayName, value: renderedValue, columnName })\n }\n }\n\n const fileHandleId = imageFileHandleIdValue || linkValue\n\n /**\n * To show a direct download link to a file, we need to determine the association that gives permission to download the file.\n */\n const fileHandleAssociation = getFileHandleAssociation(\n table,\n fileHandleId,\n data[schema.id],\n )\n\n const descriptionSubTitle = getColumnDisplayName(\n genericCardSchema.description || '',\n )\n\n const doiColumnIndex = getColumnIndex('doi', selectColumns, columnModels)\n const doiValue =\n doiColumnIndex !== undefined ? data[doiColumnIndex] : undefined\n\n // Normalize ctaLinkConfig to array and resolve each config\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const resolvedCtaLinkConfigs = ctaLinkConfigs\n .map(config => {\n const ctaLinkValue: string = data[schema[config.link]] || ''\n if (!ctaLinkValue) return null\n const { href, target } = getLinkParams(\n ctaLinkValue,\n undefined, //card link config\n data,\n schema,\n rowId,\n )\n return {\n text: config.text,\n href,\n target,\n }\n })\n .filter(Boolean) as { text: string; href: string; target?: string }[]\n\n let croissantButton = <></>\n if (\n resolvedSynapseEntityId != null &&\n resolvedSynapseEntityVersionNumber != null\n ) {\n croissantButton = (\n <CroissantButton\n datasetId={resolvedSynapseEntityId}\n datasetVersionNumber={resolvedSynapseEntityVersionNumber}\n />\n )\n }\n\n const resolvedCardTypeAdornment = CardTypeAdornment ? (\n <CardTypeAdornment schema={schema} data={data} />\n ) : null\n\n return (\n <GenericCard\n ref={ref}\n icon={\n <GenericCardIcon\n type={\n useTypeColumnForIcon ? data[schema['type']] : genericCardSchema.type\n }\n useTypeForIcon={useTypeColumnForIcon}\n thumbnailRequiresPadding={genericCardSchema.thumbnailRequiresPadding}\n imageFileHandleId={imageFileHandleIdValue}\n fileHandleAssociation={fileHandleAssociation}\n iconOptions={iconOptions}\n iconValue={iconValue}\n />\n }\n isHeader={isHeader}\n sustainabilityScorecard={sustainabilityScorecard}\n headerCardVariant={headerCardVariant}\n type={type}\n title={title}\n subtitle={subTitle}\n titleLinkConfiguration={{ target, href }}\n cardTypeAdornment={resolvedCardTypeAdornment}\n titleAsFileHandleLinkConfiguration={\n !titleLinkConfig &&\n titleColumnType === ColumnTypeEnum.FILEHANDLEID &&\n fileHandleAssociation\n ? {\n fileHandleAssociation: fileHandleAssociation,\n showDownloadIcon: type !== SynapseConstants.EXPERIMENTAL,\n }\n : undefined\n }\n ctaLinkConfig={\n resolvedCtaLinkConfigs.length > 0 ? resolvedCtaLinkConfigs : undefined\n }\n titleAreaRightContent={resolvedTitleAreaRightContent}\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n labels={values}\n secondaryLabelLimit={secondaryLabelLimit}\n useStylesForDisplayedImage={Boolean(imageFileHandleIdValue)}\n cardTopContent={\n resolvedDownloadCartSynIdValue && (\n <Collapse in={showDownloadConfirmation}>\n <EntityDownloadConfirmation\n entityId={resolvedDownloadCartSynIdValue}\n versionNumber={resolvedDownloadCartVersionNumber}\n handleClose={() => setShowDownloadConfirmation(false)}\n onIsLoadingChange={isLoading => {\n setDownloadButtonLoading(isLoading)\n }}\n />\n </Collapse>\n )\n }\n renderedIconList={\n // If the portal configs has columnIconOptions.columns.dataType option\n // and the column value is not null, display the card data type icons\n columnIconOptions?.columns?.dataType &&\n dataTypeIconNames?.length && (\n <div style={{ marginTop: '20px' }}>\n <IconList\n iconConfigs={columnIconOptions.columns.dataType}\n iconNames={JSON.parse(dataTypeIconNames) as string[]}\n commonIconProps={{\n sx: { fontSize: '40px' },\n }}\n useBackground={true}\n useTheme={true}\n />\n </div>\n )\n }\n cardTopButtons={\n <Box sx={{ display: 'flex', gap: 1 }}>\n {croissantButton}\n {/* PORTALS-3386 Use synapseLink in schema to add entity to download cart */}\n {resolvedDownloadCartSynIdValue && (\n <GenericCardActionButton\n onClick={() => setShowDownloadConfirmation(val => !val)}\n variant=\"outlined\"\n startIcon={<GetAppTwoTone sx={{ height: '12px' }} />}\n loading={downloadButtonLoading}\n >\n Download\n </GenericCardActionButton>\n )}\n {includeCitation && doiValue && (\n <CitationPopover\n title={title}\n doi={doiValue}\n boilerplateText={citationBoilerplateText}\n defaultCitationFormat={defaultCitationFormat}\n />\n )}\n {includeShareButton && isHeader && (\n <ShareThisPage {...sharePageLinkButtonProps} />\n )}\n </Box>\n }\n />\n )\n}\n\nexport default TableRowGenericCard\n"],"names":["VersionLabel","props","synapseId","version","jsx","TargetEnum","PRODUCTION_ENDPOINT_CONFIG","TableRowGenericCard","showDownloadConfirmation","setShowDownloadConfirmation","useState","downloadButtonLoading","setDownloadButtonLoading","entityId","versionNumber","useQueryContext","getColumnDisplayName","useQueryVisualizationContext","ref","cardIsInView","useInView","table","useGetEntity","schema","data","rowId","rowVersionNumber","genericCardSchema","secondaryLabelLimit","sharePageLinkButtonProps","selectColumns","columnModels","iconOptions","useTypeColumnForIcon","isHeader","sustainabilityScorecard","headerCardVariant","titleLinkConfig","ctaLinkConfig","labelLinkConfig","descriptionConfig","columnIconOptions","CardTypeAdornment","charCountCutoff","link","type","includeCitation","includeShareButton","defaultCitationFormat","citationBoilerplateText","downloadCartSynId","portalDoiConfiguration","title","subTitle","getValueOrMultiValue","description","iconValue","dataTypeIconNames","imageFileHandleIdValue","titleColumnType","el","linkValue","href","target","getLinkParams","synapseEntityConfig","getColumnValue","useCallback","columnName","columnIndex","resolvedTitleAreaRightContent","useMemo","titleAreaDetails","rows","rawValue","Stack","name","jsxs","Typography","SynapseCardLabel","resolvedSynapseEntityId","resolvedSynapseEntityVersionNumber","useResolvedSynapseEntity","resolvedDownloadCartSynIdValue","resolvedDownloadCartVersionNumber","reference","parseSynId","dataAsRecord","mapRowToRecord","candidateDoiId","getCandidateDoiId","showDoiCardLabel","useShowDoiCardLabel","values","secondaryLabels","customLabelConfig","PortalDOI","key","value","Link","val","isView","isTableEntity","i","renderedValue","columnDisplayName","isDatasetCollection","calculateFriendlyFileSize","labelLink","fileHandleAssociation","getFileHandleAssociation","descriptionSubTitle","doiColumnIndex","getColumnIndex","doiValue","resolvedCtaLinkConfigs","config","ctaLinkValue","croissantButton","Fragment","CroissantButton","resolvedCardTypeAdornment","GenericCard","GenericCardIcon","ColumnTypeEnum","SynapseConstants.EXPERIMENTAL","Collapse","EntityDownloadConfirmation","isLoading","IconList","Box","GenericCardActionButton","GetAppTwoTone","CitationPopover","ShareThisPage"],"mappings":"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"}
1
+ {"version":3,"file":"TableRowGenericCard.js","sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"sourcesContent":["import { CommonCardProps } from '@/components/CardContainer/CardConfiguration'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n getValueOrMultiValue,\n} from '@/components/GenericCard/CardUtils'\nimport CroissantButton from '@/components/GenericCard/CroissantButton/CroissantButton'\nimport { GenericCardIcon } from '@/components/GenericCard/GenericCardIcon'\nimport PortalDOI from '@/components/GenericCard/PortalDOI/PortalDOI'\nimport {\n getCandidateDoiId,\n useShowDoiCardLabel,\n} from '@/components/GenericCard/PortalDOI/PortalDOIUtils'\nimport { mapRowToRecord } from '@/components/SynapseTable/SynapseTableUtils'\nimport { useGetEntity } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isDatasetCollection,\n isTableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { parseSynId } from '@/utils/functions/RegularExpressions'\nimport { getColumnIndex } from '@/utils/functions/SqlFunctions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Collapse, Link, Stack, Typography } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Entity,\n SelectColumn,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport CitationPopover from '../CitationPopover'\nimport { EntityDownloadConfirmation } from '../EntityDownloadConfirmation'\nimport { HeaderCardVariant } from '../HeaderCard'\nimport IconList from '../IconList'\nimport { useQueryContext } from '../QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport ShareThisPage, {\n ShareThisPageProps,\n} from '../ShareThisPage/ShareThisPage'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport GenericCard from './GenericCard'\nimport GenericCardActionButton from './GenericCardActionButton'\nimport { PortalDOIConfiguration } from './PortalDOI/PortalDOIConfiguration'\nimport { SynapseCardLabel } from './SynapseCardLabel'\nimport { useResolvedSynapseEntity } from './useResolvedSynapseEntity'\n\ntype RowSynapseEntityConfig = {\n /** Use the table rowId to resolve the Synapse entity ID. */\n id: {\n source: 'rowId'\n }\n /** Use the table rowVersionNumber to resolve the Synapse entity version (if available). */\n version?: {\n source: 'rowVersionNumber'\n }\n}\n\ntype ColumnSynapseEntityConfig = {\n /** Use a column value to resolve the Synapse entity ID. */\n id: {\n source: 'column'\n columnName: string\n }\n /** Use a column value to resolve the Synapse entity version. */\n version?: {\n source: 'column'\n columnName: string\n }\n}\n\nexport type SynapseEntityConfig =\n | RowSynapseEntityConfig\n | ColumnSynapseEntityConfig\n\n/**\n * Maps a table query result to a GenericCard.\n */\nexport type TableToGenericCardMapping = {\n /** The 'type' of resource a card refers to. Renders a label on the card with this string value.\n * Can be hidden by setting it to '' (empty string)\n */\n type: string\n /** The column name whose data contains the title of the card */\n title: string\n /** The column name whose data contains the subtitle of the card */\n subTitle?: string\n /** The column name whose data contains the description of the card */\n description?: string\n /** If true, a 'Cite As' button will be displayed for those cards with a DOI in the 'doi' column */\n includeCitation?: boolean\n /** If true, a 'Share this page' button will be displayed */\n includeShareButton?: boolean\n /**\n * Configuration for displaying the SustainabilityScorecard component\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /** The initial citation format to use in the 'Cite As' UI */\n defaultCitationFormat?: 'bibtex' | 'apa' | 'ieee' | 'nature' | 'science'\n /** Static text displayed in the 'Cite As' UI */\n citationBoilerplateText?: string\n /** The column name whose data contains the value used to map to the icon */\n icon?: string\n /** The column name whose data contains an image file handle to be displayed on the card */\n imageFileHandleColumnName?: string\n /** Static boolean value used if the image displayed using `imageFileHandleColumnName` requires extra padding */\n thumbnailRequiresPadding?: boolean\n /** Array of column names to be used for labels in the Card Footer */\n secondaryLabels?: string[]\n /** Can be used to add a custom secondary label */\n customSecondaryLabelConfig?: {\n /** The displayed label key */\n key: string\n /** The value to display */\n value: React.ReactNode\n /** Callback to determine visibility of the label\n * @param schema the mapping of columnName to data index\n * @param data the row data\n */\n isVisible: (schema: Record<string, number>, data: string[]) => boolean\n }\n /** Column name of the link value if the title should be linked */\n link?: string\n /** Column name of the STRING_LIST column that includes icon names that represent icons that should be displayed on the card */\n dataTypeIconNames?: string\n /**\n * Ordered list of column names to display to the right of the title area.\n * Each renders as \"Display Name: Value\" on its own line. Rows with empty values are skipped.\n * The display name is derived from getColumnDisplayName (respects column aliases and unCamelCase).\n *\n * Can also be a function that receives the schema and row data and returns the list of column\n * names to display, allowing the displayed details to vary based on the row's actual values.\n */\n titleAreaDetails?:\n | string[]\n | ((schema: Record<string, number>, data: string[]) => string[])\n /** Configuration for resolving the Synapse entity ID/version represented by each card row.\n * The ID and version sources must both reference either row-based values or column-based values.\n */\n synapseEntityConfig?: SynapseEntityConfig\n /** The column name whose data contains a synId that can be used to show a button to add the corresponding entity to the download cart. */\n downloadCartSynId?: string\n /** Configuration to display a DOI, as well as the ability to create one for users with such permission */\n portalDoiConfiguration?: PortalDOIConfiguration\n}\n\nexport type TableRowGenericCardProps = {\n /** The schema that maps a table result to the GenericCard UI */\n genericCardSchema: TableToGenericCardMapping\n /** The table's SelectColumns */\n selectColumns?: SelectColumn[]\n /** The table's ColumnModels */\n columnModels?: ColumnModel[]\n /** If true, the 'type' column will be used as the icon string to choose the icon */\n useTypeColumnForIcon?: boolean\n /** If true, render the card as a HeaderCard */\n isHeader?: boolean\n /** If isHeader is true, use this variant of HeaderCard */\n headerCardVariant?: HeaderCardVariant\n isAlignToLeftNav?: boolean\n /** Mapping of column name to row data index */\n schema: Record<string, number>\n /** The row data */\n data: string[]\n /** The ID of the table row */\n rowId?: number\n /** The versionNumber of the table row */\n versionNumber?: number\n /** Optional props for the ShareThisPage component */\n sharePageLinkButtonProps?: ShareThisPageProps\n /** Optional function that receives schema and data and returns a ReactNode to be rendered next to the card type */\n CardTypeAdornment?: React.ComponentType<{\n schema: Record<string, number>\n data: string[]\n }>\n} & CommonCardProps\n\n// SWC-6115: special rendering of the version column (for Views)\nfunction VersionLabel(props: { synapseId: string; version: string }) {\n const { synapseId, version } = props\n return (\n <span>\n {version}&nbsp;&nbsp;\n <a\n target={TargetEnum.NEW_WINDOW}\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${synapseId}.${version}`}\n >\n (Show Version History on Synapse)\n </a>\n </span>\n )\n}\n\n/**\n * Maps a table row to a GenericCard.\n */\nexport function TableRowGenericCard(props: TableRowGenericCardProps) {\n const [showDownloadConfirmation, setShowDownloadConfirmation] =\n useState(false)\n const [downloadButtonLoading, setDownloadButtonLoading] = useState(false)\n\n const { entityId, versionNumber } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { ref, inView: cardIsInView } = useInView()\n\n const { data: table } = useGetEntity<Table>(entityId, versionNumber)\n\n const {\n schema,\n data,\n rowId,\n versionNumber: rowVersionNumber,\n genericCardSchema,\n secondaryLabelLimit,\n sharePageLinkButtonProps,\n selectColumns,\n columnModels,\n iconOptions,\n useTypeColumnForIcon = false,\n isHeader = false,\n sustainabilityScorecard,\n headerCardVariant,\n titleLinkConfig,\n ctaLinkConfig,\n labelLinkConfig,\n descriptionConfig,\n columnIconOptions,\n CardTypeAdornment,\n charCountCutoff,\n } = props\n\n const {\n link = '',\n type,\n includeCitation,\n includeShareButton,\n defaultCitationFormat,\n citationBoilerplateText,\n downloadCartSynId,\n portalDoiConfiguration,\n } = genericCardSchema\n const title = data[schema[genericCardSchema.title]]\n let subTitle =\n genericCardSchema.subTitle && data[schema[genericCardSchema.subTitle]]\n subTitle =\n genericCardSchema.subTitle &&\n getValueOrMultiValue({\n value: subTitle,\n columnName: genericCardSchema.subTitle,\n selectColumns,\n columnModels,\n }).str\n const description = data[schema[genericCardSchema.description || '']]\n const iconValue = data[schema[genericCardSchema.icon || '']]\n const dataTypeIconNames =\n data[schema[genericCardSchema.dataTypeIconNames || '']]\n const imageFileHandleIdValue =\n data[schema[genericCardSchema.imageFileHandleColumnName || '']]\n const titleColumnModel = columnModels?.find(\n el => genericCardSchema.link === el.name,\n )\n const titleColumnType = titleColumnModel?.columnType\n // wrap link in parens because undefined would throw an error\n const linkValue: string = data[schema[link]] || ''\n const { href, target } = getLinkParams(\n linkValue,\n titleLinkConfig,\n data,\n schema,\n rowId,\n )\n\n const synapseEntityConfig = genericCardSchema.synapseEntityConfig\n\n const getColumnValue = useCallback(\n (columnName?: string) => {\n if (!columnName) {\n return undefined\n }\n const columnIndex = schema[columnName]\n if (columnIndex === undefined) {\n return undefined\n }\n return data[columnIndex]\n },\n [schema, data],\n )\n\n const resolvedTitleAreaRightContent = useMemo(() => {\n const { titleAreaDetails } = genericCardSchema\n if (!titleAreaDetails) return undefined\n const columns =\n typeof titleAreaDetails === 'function'\n ? titleAreaDetails(schema, data)\n : titleAreaDetails\n if (columns.length === 0) return undefined\n const rows = columns\n .map(columnName => {\n const rawValue: string | undefined = data[schema[columnName]]\n if (!rawValue) return null\n return { name: getColumnDisplayName(columnName), rawValue, columnName }\n })\n .filter(Boolean) as {\n name: string\n rawValue: string\n columnName: string\n }[]\n if (rows.length === 0) return undefined\n return (\n <Stack direction=\"column\" gap=\"4px\">\n {rows.map(({ name, rawValue, columnName }) => (\n <Stack key={columnName} direction=\"row\" gap=\"4px\" alignItems=\"center\">\n <Typography component=\"span\" variant=\"body1\">\n {name}:\n </Typography>\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={undefined}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n </Stack>\n ))}\n </Stack>\n )\n }, [\n genericCardSchema,\n data,\n schema,\n getColumnDisplayName,\n isHeader,\n selectColumns,\n columnModels,\n columnIconOptions,\n ])\n\n const {\n entityId: resolvedSynapseEntityId,\n entityVersionNumber: resolvedSynapseEntityVersionNumber,\n } = useResolvedSynapseEntity({\n synapseEntityConfig,\n getColumnValue,\n rowId,\n rowVersionNumber,\n })\n\n let resolvedDownloadCartSynIdValue = resolvedSynapseEntityId\n let resolvedDownloadCartVersionNumber = resolvedSynapseEntityVersionNumber\n\n if (downloadCartSynId) {\n const reference = parseSynId(getColumnValue(downloadCartSynId) ?? '')\n resolvedDownloadCartSynIdValue = reference?.targetId\n resolvedDownloadCartVersionNumber = reference?.targetVersionNumber\n }\n\n // Transform the row to a record of (columnName, value) pairs for compatibility with getCandidateDoiId\n const dataAsRecord: Record<string, string | null> = useMemo(\n () => mapRowToRecord(data, schema),\n [data, schema],\n )\n\n const candidateDoiId = getCandidateDoiId({\n data: dataAsRecord,\n portalDoiConfiguration,\n })\n\n const showDoiCardLabel = useShowDoiCardLabel({\n portalId: portalDoiConfiguration?.portalId,\n resourceId: candidateDoiId,\n })\n\n const values: {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n }[] = []\n const { secondaryLabels = [] } = genericCardSchema\n const customLabelConfig = genericCardSchema.customSecondaryLabelConfig\n\n // PORTALS-3549 - if a DOI exists or can be created by the current user, show it\n if (\n showDoiCardLabel &&\n portalDoiConfiguration &&\n candidateDoiId &&\n cardIsInView\n ) {\n values.push({\n columnDisplayName: 'DOI',\n value: (\n <PortalDOI\n portalId={portalDoiConfiguration.portalId}\n resourceId={candidateDoiId}\n />\n ),\n })\n }\n\n // Overwrite the 'HOW TO DOWNLOAD' link if a synapse ID is available\n if (customLabelConfig?.isVisible(schema, data)) {\n const { key, value } = customLabelConfig\n if (resolvedDownloadCartSynIdValue) {\n values.push({\n columnDisplayName: 'HOW TO DOWNLOAD',\n value: (\n <Link onClick={() => setShowDownloadConfirmation(val => !val)}>\n Click here to add to Synapse download list\n </Link>\n ),\n })\n } else {\n values.push({ columnDisplayName: key, value })\n }\n }\n\n const isView = table && !isTableEntity(table)\n for (let i = 0; i < secondaryLabels.length; i += 1) {\n const columnName = secondaryLabels[i]\n const rawValue: string | undefined = data[schema[columnName]]\n let renderedValue: React.ReactNode = rawValue\n let columnDisplayName\n if (renderedValue) {\n // PORTALS-2750: special rendering of the datasetSizeInBytes (for Dataset Collections)\n if (\n isDatasetCollection(table as Entity) &&\n columnName === 'datasetSizeInBytes'\n ) {\n columnDisplayName = 'Size'\n renderedValue = calculateFriendlyFileSize(parseInt(rawValue))\n } // SWC-6115: special rendering of the version column (for Views)\n else if (isView && columnName === 'currentVersion') {\n const synapseId = data[schema.id]\n renderedValue = (\n <VersionLabel synapseId={synapseId} version={rawValue} />\n )\n columnDisplayName = 'Version'\n } else {\n const labelLink = labelLinkConfig?.find(\n el => el.matchColumnName === columnName,\n )\n renderedValue = (\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={labelLink}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n )\n columnDisplayName = getColumnDisplayName(columnName)\n }\n values.push({ columnDisplayName, value: renderedValue, columnName })\n }\n }\n\n const fileHandleId = imageFileHandleIdValue || linkValue\n\n /**\n * To show a direct download link to a file, we need to determine the association that gives permission to download the file.\n */\n const fileHandleAssociation = getFileHandleAssociation(\n table,\n fileHandleId,\n data[schema.id],\n )\n\n const descriptionSubTitle = getColumnDisplayName(\n genericCardSchema.description || '',\n )\n\n const doiColumnIndex = getColumnIndex('doi', selectColumns, columnModels)\n const doiValue =\n doiColumnIndex !== undefined ? data[doiColumnIndex] : undefined\n\n // Normalize ctaLinkConfig to array and resolve each config\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const resolvedCtaLinkConfigs = ctaLinkConfigs\n .map(config => {\n const ctaLinkValue: string = data[schema[config.link]] || ''\n if (!ctaLinkValue) return null\n const { href, target } = getLinkParams(\n ctaLinkValue,\n undefined, //card link config\n data,\n schema,\n rowId,\n )\n return {\n text: config.text,\n href,\n target,\n }\n })\n .filter(Boolean) as { text: string; href: string; target?: string }[]\n\n let croissantButton = <></>\n if (\n resolvedSynapseEntityId != null &&\n resolvedSynapseEntityVersionNumber != null\n ) {\n croissantButton = (\n <CroissantButton\n datasetId={resolvedSynapseEntityId}\n datasetVersionNumber={resolvedSynapseEntityVersionNumber}\n />\n )\n }\n\n const resolvedCardTypeAdornment = CardTypeAdornment ? (\n <CardTypeAdornment schema={schema} data={data} />\n ) : null\n\n return (\n <GenericCard\n ref={ref}\n icon={\n <GenericCardIcon\n type={\n useTypeColumnForIcon ? data[schema['type']] : genericCardSchema.type\n }\n useTypeForIcon={useTypeColumnForIcon}\n thumbnailRequiresPadding={genericCardSchema.thumbnailRequiresPadding}\n imageFileHandleId={imageFileHandleIdValue}\n fileHandleAssociation={fileHandleAssociation}\n iconOptions={iconOptions}\n iconValue={iconValue}\n />\n }\n isHeader={isHeader}\n sustainabilityScorecard={sustainabilityScorecard}\n headerCardVariant={headerCardVariant}\n type={type}\n title={title}\n subtitle={subTitle}\n titleLinkConfiguration={{ target, href }}\n cardTypeAdornment={resolvedCardTypeAdornment}\n titleAsFileHandleLinkConfiguration={\n !titleLinkConfig &&\n titleColumnType === ColumnTypeEnum.FILEHANDLEID &&\n fileHandleAssociation\n ? {\n fileHandleAssociation: fileHandleAssociation,\n showDownloadIcon: type !== SynapseConstants.EXPERIMENTAL,\n }\n : undefined\n }\n ctaLinkConfig={\n resolvedCtaLinkConfigs.length > 0 ? resolvedCtaLinkConfigs : undefined\n }\n titleAreaRightContent={resolvedTitleAreaRightContent}\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n labels={values}\n secondaryLabelLimit={secondaryLabelLimit}\n useStylesForDisplayedImage={Boolean(imageFileHandleIdValue)}\n cardTopContent={\n resolvedDownloadCartSynIdValue && (\n <Collapse in={showDownloadConfirmation}>\n <EntityDownloadConfirmation\n entityId={resolvedDownloadCartSynIdValue}\n versionNumber={resolvedDownloadCartVersionNumber}\n handleClose={() => setShowDownloadConfirmation(false)}\n onIsLoadingChange={isLoading => {\n setDownloadButtonLoading(isLoading)\n }}\n />\n </Collapse>\n )\n }\n renderedIconList={\n // If the portal configs has columnIconOptions.columns.dataType option\n // and the column value is not null, display the card data type icons\n columnIconOptions?.columns?.dataType &&\n dataTypeIconNames?.length && (\n <div style={{ marginTop: '20px' }}>\n <IconList\n iconConfigs={columnIconOptions.columns.dataType}\n iconNames={JSON.parse(dataTypeIconNames) as string[]}\n commonIconProps={{\n sx: { fontSize: '40px' },\n }}\n useBackground={true}\n useTheme={true}\n />\n </div>\n )\n }\n cardTopButtons={\n <Box sx={{ display: 'flex', gap: 1 }}>\n {croissantButton}\n {/* PORTALS-3386 Use synapseLink in schema to add entity to download cart */}\n {resolvedDownloadCartSynIdValue && (\n <GenericCardActionButton\n onClick={() => setShowDownloadConfirmation(val => !val)}\n variant=\"outlined\"\n startIcon={<GetAppTwoTone sx={{ height: '12px' }} />}\n loading={downloadButtonLoading}\n >\n Download\n </GenericCardActionButton>\n )}\n {includeCitation && doiValue && (\n <CitationPopover\n title={title}\n doi={doiValue}\n boilerplateText={citationBoilerplateText}\n defaultCitationFormat={defaultCitationFormat}\n />\n )}\n {includeShareButton && isHeader && (\n <ShareThisPage {...sharePageLinkButtonProps} />\n )}\n </Box>\n }\n />\n )\n}\n\nexport default TableRowGenericCard\n"],"names":["VersionLabel","props","synapseId","version","jsx","TargetEnum","PRODUCTION_ENDPOINT_CONFIG","TableRowGenericCard","showDownloadConfirmation","setShowDownloadConfirmation","useState","downloadButtonLoading","setDownloadButtonLoading","entityId","versionNumber","useQueryContext","getColumnDisplayName","useQueryVisualizationContext","ref","cardIsInView","useInView","table","useGetEntity","schema","data","rowId","rowVersionNumber","genericCardSchema","secondaryLabelLimit","sharePageLinkButtonProps","selectColumns","columnModels","iconOptions","useTypeColumnForIcon","isHeader","sustainabilityScorecard","headerCardVariant","titleLinkConfig","ctaLinkConfig","labelLinkConfig","descriptionConfig","columnIconOptions","CardTypeAdornment","charCountCutoff","link","type","includeCitation","includeShareButton","defaultCitationFormat","citationBoilerplateText","downloadCartSynId","portalDoiConfiguration","title","subTitle","getValueOrMultiValue","description","iconValue","dataTypeIconNames","imageFileHandleIdValue","titleColumnType","el","linkValue","href","target","getLinkParams","synapseEntityConfig","getColumnValue","useCallback","columnName","columnIndex","resolvedTitleAreaRightContent","useMemo","titleAreaDetails","columns","rows","rawValue","Stack","name","jsxs","Typography","SynapseCardLabel","resolvedSynapseEntityId","resolvedSynapseEntityVersionNumber","useResolvedSynapseEntity","resolvedDownloadCartSynIdValue","resolvedDownloadCartVersionNumber","reference","parseSynId","dataAsRecord","mapRowToRecord","candidateDoiId","getCandidateDoiId","showDoiCardLabel","useShowDoiCardLabel","values","secondaryLabels","customLabelConfig","PortalDOI","key","value","Link","val","isView","isTableEntity","i","renderedValue","columnDisplayName","isDatasetCollection","calculateFriendlyFileSize","labelLink","fileHandleAssociation","getFileHandleAssociation","descriptionSubTitle","doiColumnIndex","getColumnIndex","doiValue","resolvedCtaLinkConfigs","config","ctaLinkValue","croissantButton","Fragment","CroissantButton","resolvedCardTypeAdornment","GenericCard","GenericCardIcon","ColumnTypeEnum","SynapseConstants.EXPERIMENTAL","Collapse","EntityDownloadConfirmation","isLoading","IconList","Box","GenericCardActionButton","GetAppTwoTone","CitationPopover","ShareThisPage"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GoalsV2.Desktop.d.ts","sourceRoot":"","sources":["../../../src/components/GoalsV2/GoalsV2.Desktop.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAO5C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,GACN,EAAE,gBAAgB,2CA0ClB"}
1
+ {"version":3,"file":"GoalsV2.Desktop.d.ts","sourceRoot":"","sources":["../../../src/components/GoalsV2/GoalsV2.Desktop.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAM5C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,GACN,EAAE,gBAAgB,2CAwClB"}
@@ -1,16 +1,15 @@
1
- import { jsx as r, jsxs as e } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as n } from "react/jsx-runtime";
2
2
  import { QueryCount as d } from "../QueryCount/QueryCount.js";
3
- import s from "@mui/material/IconButton";
4
- import p from "@mui/icons-material/NavigateNext";
5
- import { Card as l, CardActionArea as h, CardMedia as m, CardContent as c, Typography as t } from "@mui/material";
6
- function y({
3
+ import s from "@mui/icons-material/NavigateNext";
4
+ import { Card as p, CardActionArea as l, CardMedia as h, CardContent as m, Typography as t } from "@mui/material";
5
+ function C({
7
6
  asset: i,
8
7
  link: a,
9
8
  countSql: o,
10
- title: n
9
+ title: e
11
10
  }) {
12
11
  return /* @__PURE__ */ r(
13
- l,
12
+ p,
14
13
  {
15
14
  sx: {
16
15
  width: "200px",
@@ -20,18 +19,18 @@ function y({
20
19
  borderColor: "transparent",
21
20
  boxShadow: "none"
22
21
  },
23
- children: /* @__PURE__ */ e(h, { onClick: () => window.open(a, "_self"), children: [
22
+ children: /* @__PURE__ */ n(l, { onClick: () => window.open(a, "_self"), children: [
24
23
  /* @__PURE__ */ r(
25
- m,
24
+ h,
26
25
  {
27
26
  component: "img",
28
27
  sx: { height: 150, width: "100%", paddingX: 2, overflow: "visible" },
29
28
  image: i,
30
- alt: n
29
+ alt: e
31
30
  }
32
31
  ),
33
- /* @__PURE__ */ e(
34
- c,
32
+ /* @__PURE__ */ n(
33
+ m,
35
34
  {
36
35
  sx: {
37
36
  display: "flex",
@@ -47,8 +46,8 @@ function y({
47
46
  children: o && /* @__PURE__ */ r(d, { parens: !1, query: { sql: o } })
48
47
  }
49
48
  ),
50
- /* @__PURE__ */ r(t, { variant: "body1", children: n }),
51
- /* @__PURE__ */ r(s, { sx: { color: "primary.main" }, children: /* @__PURE__ */ r(p, {}) })
49
+ /* @__PURE__ */ r(t, { variant: "body1", children: e }),
50
+ /* @__PURE__ */ r(s, { sx: { color: "primary.main" } })
52
51
  ]
53
52
  }
54
53
  )
@@ -57,6 +56,6 @@ function y({
57
56
  );
58
57
  }
59
58
  export {
60
- y as default
59
+ C as default
61
60
  };
62
61
  //# sourceMappingURL=GoalsV2.Desktop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GoalsV2.Desktop.js","sources":["../../../src/components/GoalsV2/GoalsV2.Desktop.tsx"],"sourcesContent":["import { GoalsV2DataProps } from './GoalsV2'\nimport QueryCount from '../QueryCount/QueryCount'\nimport IconButton from '@mui/material/IconButton'\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext'\nimport { Typography } from '@mui/material'\nimport { Card, CardActionArea, CardContent, CardMedia } from '@mui/material'\n\nexport default function GoalsV2Desktop({\n asset,\n link,\n countSql,\n title,\n}: GoalsV2DataProps) {\n return (\n <Card\n sx={{\n width: '200px',\n maxWidth: '200px',\n height: 'auto',\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n boxShadow: 'none',\n }}\n >\n <CardActionArea onClick={() => window.open(link, '_self')}>\n <CardMedia\n component=\"img\"\n sx={{ height: 150, width: '100%', paddingX: 2, overflow: 'visible' }}\n image={asset}\n alt={title}\n />\n <CardContent\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Typography\n variant=\"h6\"\n sx={{ marginRight: 1, fontSize: '16px', fontWeight: 900 }}\n >\n {countSql && (\n <QueryCount parens={false} query={{ sql: countSql }} />\n )}\n </Typography>\n <Typography variant=\"body1\">{title}</Typography>\n <IconButton sx={{ color: 'primary.main' }}>\n <NavigateNextIcon />\n </IconButton>\n </CardContent>\n </CardActionArea>\n </Card>\n )\n}\n"],"names":["GoalsV2Desktop","asset","link","countSql","title","jsx","Card","jsxs","CardActionArea","CardMedia","CardContent","Typography","QueryCount","IconButton","NavigateNextIcon"],"mappings":";;;;;AAOA,SAAwBA,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AACF,GAAqB;AACnB,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,QACF,OAAO;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,WAAW;AAAA,MAAA;AAAA,MAGb,UAAA,gBAAAC,EAACC,KAAe,SAAS,MAAM,OAAO,KAAKN,GAAM,OAAO,GACtD,UAAA;AAAA,QAAA,gBAAAG;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI,EAAE,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG,UAAU,UAAA;AAAA,YACzD,OAAOR;AAAA,YACP,KAAKG;AAAA,UAAA;AAAA,QAAA;AAAA,QAEP,gBAAAG;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,YAAA;AAAA,YAGlB,UAAA;AAAA,cAAA,gBAAAL;AAAA,gBAACM;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,IAAI,EAAE,aAAa,GAAG,UAAU,QAAQ,YAAY,IAAA;AAAA,kBAEnD,UAAAR,uBACES,GAAA,EAAW,QAAQ,IAAO,OAAO,EAAE,KAAKT,IAAS,CAAG;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGzD,gBAAAE,EAACM,GAAA,EAAW,SAAQ,SAAS,UAAAP,GAAM;AAAA,cACnC,gBAAAC,EAACQ,KAAW,IAAI,EAAE,OAAO,eAAA,GACvB,UAAA,gBAAAR,EAACS,GAAA,CAAA,CAAiB,EAAA,CACpB;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"GoalsV2.Desktop.js","sources":["../../../src/components/GoalsV2/GoalsV2.Desktop.tsx"],"sourcesContent":["import { GoalsV2DataProps } from './GoalsV2'\nimport QueryCount from '../QueryCount/QueryCount'\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext'\nimport { Typography } from '@mui/material'\nimport { Card, CardActionArea, CardContent, CardMedia } from '@mui/material'\n\nexport default function GoalsV2Desktop({\n asset,\n link,\n countSql,\n title,\n}: GoalsV2DataProps) {\n return (\n <Card\n sx={{\n width: '200px',\n maxWidth: '200px',\n height: 'auto',\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n boxShadow: 'none',\n }}\n >\n <CardActionArea onClick={() => window.open(link, '_self')}>\n <CardMedia\n component=\"img\"\n sx={{ height: 150, width: '100%', paddingX: 2, overflow: 'visible' }}\n image={asset}\n alt={title}\n />\n <CardContent\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Typography\n variant=\"h6\"\n sx={{ marginRight: 1, fontSize: '16px', fontWeight: 900 }}\n >\n {countSql && (\n <QueryCount parens={false} query={{ sql: countSql }} />\n )}\n </Typography>\n <Typography variant=\"body1\">{title}</Typography>\n <NavigateNextIcon sx={{ color: 'primary.main' }} />\n </CardContent>\n </CardActionArea>\n </Card>\n )\n}\n"],"names":["GoalsV2Desktop","asset","link","countSql","title","jsx","Card","jsxs","CardActionArea","CardMedia","CardContent","Typography","QueryCount","NavigateNextIcon"],"mappings":";;;;AAMA,SAAwBA,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AACF,GAAqB;AACnB,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,QACF,OAAO;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,WAAW;AAAA,MAAA;AAAA,MAGb,UAAA,gBAAAC,EAACC,KAAe,SAAS,MAAM,OAAO,KAAKN,GAAM,OAAO,GACtD,UAAA;AAAA,QAAA,gBAAAG;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IAAI,EAAE,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG,UAAU,UAAA;AAAA,YACzD,OAAOR;AAAA,YACP,KAAKG;AAAA,UAAA;AAAA,QAAA;AAAA,QAEP,gBAAAG;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,YAAA;AAAA,YAGlB,UAAA;AAAA,cAAA,gBAAAL;AAAA,gBAACM;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,IAAI,EAAE,aAAa,GAAG,UAAU,QAAQ,YAAY,IAAA;AAAA,kBAEnD,UAAAR,uBACES,GAAA,EAAW,QAAQ,IAAO,OAAO,EAAE,KAAKT,IAAS,CAAG;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGzD,gBAAAE,EAACM,GAAA,EAAW,SAAQ,SAAS,UAAAP,GAAM;AAAA,gCAClCS,GAAA,EAAiB,IAAI,EAAE,OAAO,iBAAe,CAAG;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnD,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}