synapse-react-client 4.0.2 → 4.0.4

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 (525) 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/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +1 -1
  66. package/dist/components/AccessRequirementList/AccessRequirementList.js +4 -4
  67. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
  68. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +8 -7
  69. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  70. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +4 -4
  71. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js +11 -11
  72. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js +1 -1
  73. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js +9 -9
  74. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js +5 -5
  75. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.d.ts.map +1 -1
  76. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +36 -35
  77. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  78. package/dist/components/AclEditor/AclEditor.js +8 -8
  79. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  80. package/dist/components/AclEditor/AclEditor.test-utils.js +34 -34
  81. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  82. package/dist/components/AddToDownloadListV2.js +10 -10
  83. package/dist/components/AddToDownloadListV2.js.map +1 -1
  84. package/dist/components/Authentication/AuthenticationMethodSelection.js +1 -1
  85. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  86. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +6 -5
  87. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  88. package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
  89. package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -2
  90. package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
  91. package/dist/components/BasePortalCard/BasePortalCard.js +21 -28
  92. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  93. package/dist/components/BasePortalCard/BasePortalCard.module.scss +13 -1
  94. package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +11 -11
  95. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.css +1 -1
  96. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
  97. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +25 -25
  98. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  99. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss +13 -5
  100. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss.js +5 -5
  101. package/dist/components/CardContainer/CardLink.d.ts +12 -0
  102. package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
  103. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +5 -1
  104. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  105. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  106. package/dist/components/CardContainerLogic/index.d.ts +1 -1
  107. package/dist/components/CardContainerLogic/index.d.ts.map +1 -1
  108. package/dist/components/CardDeck/TableQueryCardDeck.js +12 -9
  109. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  110. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +33 -33
  111. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  112. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +12 -12
  113. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
  114. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +7 -7
  115. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  116. package/dist/components/ChangePassword/useChangePasswordFormState.js +5 -2
  117. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  118. package/dist/components/CitationPopover/CitationPopoverContent.d.ts.map +1 -1
  119. package/dist/components/CitationPopover/CitationPopoverContent.js +13 -12
  120. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  121. package/dist/components/ComponentCollapse.d.ts +6 -10
  122. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  123. package/dist/components/ComponentCollapse.js +31 -35
  124. package/dist/components/ComponentCollapse.js.map +1 -1
  125. package/dist/components/CookiesNotification/CookiesNotification.js +1 -1
  126. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +12 -10
  127. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  128. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +10 -5
  129. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  130. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  131. package/dist/components/DataGrid/SynapseGrid.js +43 -38
  132. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  133. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +10 -5
  134. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  135. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.d.ts.map +1 -1
  136. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js +9 -7
  137. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  138. package/dist/components/DirectDownload/DirectDownload.d.ts.map +1 -1
  139. package/dist/components/DirectDownload/DirectDownload.js +23 -23
  140. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  141. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js +1 -1
  142. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts +6 -2
  143. package/dist/components/DownloadCart/AvailableForDownloadTable.d.ts.map +1 -1
  144. package/dist/components/DownloadCart/AvailableForDownloadTable.js +10 -8
  145. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  146. package/dist/components/DownloadCart/CreatePackageV2.css +1 -0
  147. package/dist/components/DownloadCart/CreatePackageV2.d.ts.map +1 -1
  148. package/dist/components/DownloadCart/CreatePackageV2.js +50 -46
  149. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  150. package/dist/components/DownloadCart/CreatePackageV2.module.scss +38 -0
  151. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js +14 -0
  152. package/dist/components/DownloadCart/CreatePackageV2.module.scss.js.map +1 -0
  153. package/dist/components/DownloadCart/DownloadCartPage.css +1 -0
  154. package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
  155. package/dist/components/DownloadCart/DownloadCartPage.js +316 -186
  156. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  157. package/dist/components/DownloadCart/DownloadCartPage.module.scss +217 -0
  158. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js +48 -0
  159. package/dist/components/DownloadCart/DownloadCartPage.module.scss.js.map +1 -0
  160. package/dist/components/DownloadCart/DownloadDetails.js +1 -1
  161. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  162. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +33 -33
  163. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  164. package/dist/components/DownloadCart/DownloadListTable.d.ts +4 -1
  165. package/dist/components/DownloadCart/DownloadListTable.d.ts.map +1 -1
  166. package/dist/components/DownloadCart/DownloadListTable.js +156 -236
  167. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  168. package/dist/components/DownloadCart/RequestDownloadCard.js +1 -1
  169. package/dist/components/DownloadCart/ShowDownloadV2.js +5 -5
  170. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  171. package/dist/components/Ecosystem/EcosystemSkeleton.js +10 -5
  172. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  173. package/dist/components/Ecosystem/TableQueryEcosystem.js +1 -1
  174. package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
  175. package/dist/components/EntityAclEditor/OpenData.js +1 -1
  176. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  177. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +113 -127
  178. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  179. package/dist/components/EntityCitation/EntityCitation.js +1 -1
  180. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +20 -20
  181. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  182. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +4 -4
  183. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  184. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js +1 -1
  185. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js +1 -1
  186. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
  187. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js +1 -1
  188. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js +1 -1
  189. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js +1 -1
  190. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js +1 -1
  191. package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
  192. package/dist/components/EntityHeaderTable/EntityHeaderTable.d.ts.map +1 -1
  193. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +39 -39
  194. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  195. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts +8 -0
  196. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts.map +1 -0
  197. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js +46 -0
  198. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -0
  199. package/dist/components/Evaluation/EvaluationCard.d.ts.map +1 -1
  200. package/dist/components/Evaluation/EvaluationCard.js +35 -41
  201. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  202. package/dist/components/Evaluation/EvaluationEditor.d.ts.map +1 -1
  203. package/dist/components/Evaluation/EvaluationEditor.js +95 -90
  204. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  205. package/dist/components/Evaluation/EvaluationRoundEditor.d.ts.map +1 -1
  206. package/dist/components/Evaluation/EvaluationRoundEditor.js +133 -124
  207. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  208. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +6 -2
  209. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  210. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js +11 -8
  211. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  212. package/dist/components/FilePreview/EntityPreview.js +1 -1
  213. package/dist/components/Forum/DiscussionReply.js +10 -10
  214. package/dist/components/Forum/DiscussionThread.js +21 -21
  215. package/dist/components/FullWidthAlert/FullWidthAlert.d.ts +2 -2
  216. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  217. package/dist/components/GenericCard/CardUtils.d.ts.map +1 -1
  218. package/dist/components/GenericCard/CardUtils.js +36 -36
  219. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  220. package/dist/components/GenericCard/CollapsibleDescription.js +25 -25
  221. package/dist/components/GenericCard/GenericCard.d.ts +5 -5
  222. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  223. package/dist/components/GenericCard/GenericCard.js +117 -103
  224. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  225. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts +10 -0
  226. package/dist/components/GenericCard/LabelMaybeWithIcon.d.ts.map +1 -0
  227. package/dist/components/GenericCard/LabelMaybeWithIcon.js +33 -0
  228. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -0
  229. package/dist/components/GenericCard/SynapseCardLabel.d.ts +2 -1
  230. package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
  231. package/dist/components/GenericCard/SynapseCardLabel.js +95 -85
  232. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  233. package/dist/components/GenericCard/TableRowGenericCard.d.ts +10 -1
  234. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  235. package/dist/components/GenericCard/TableRowGenericCard.js +248 -209
  236. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  237. package/dist/components/GoalsV2/GoalsV2.Desktop.d.ts.map +1 -1
  238. package/dist/components/GoalsV2/GoalsV2.Desktop.js +14 -15
  239. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  240. package/dist/components/GoogleAnalytics/GoogleAnalytics.js +1 -1
  241. package/dist/components/HasAccess/HasAccessV2.js +1 -1
  242. package/dist/components/HasAccess/useHasAccess.js +1 -1
  243. package/dist/components/HeaderCard.js +17 -13
  244. package/dist/components/HeaderCard.js.map +1 -1
  245. package/dist/components/IDUReport/IDUReportSubmissionInfo.js +23 -23
  246. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  247. package/dist/components/Icon/Icon.js +52 -52
  248. package/dist/components/Icon/Icon.js.map +1 -1
  249. package/dist/components/IconSvg/IconSvg.d.ts +1 -1
  250. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  251. package/dist/components/IconSvg/IconSvg.js +215 -171
  252. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  253. package/dist/components/JSONArrayEditor/useParseCsv.d.ts +1 -1
  254. package/dist/components/JSONArrayEditor/useParseCsv.d.ts.map +1 -1
  255. package/dist/components/JSONArrayEditor/useParseCsv.js +9 -9
  256. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  257. package/dist/components/Markdown/MarkdownCollapse.js +7 -7
  258. package/dist/components/Markdown/MarkdownEditor.js +11 -11
  259. package/dist/components/Markdown/MarkdownGithub.js +1 -1
  260. package/dist/components/Markdown/MarkdownPopover.js +6 -6
  261. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  262. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  263. package/dist/components/Markdown/MarkdownSynapse.js +139 -135
  264. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  265. package/dist/components/Markdown/MarkdownUtils.d.ts +8 -0
  266. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  267. package/dist/components/Markdown/MarkdownUtils.js +139 -65
  268. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  269. package/dist/components/Markdown/UserMentionModal.js +18 -18
  270. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  271. package/dist/components/Markdown/widget/MarkdownButton.js +3 -3
  272. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  273. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.d.ts.map +1 -1
  274. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +9 -8
  275. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  276. package/dist/components/Plot/SynapsePlot.css +1 -0
  277. package/dist/components/Plot/SynapsePlot.d.ts +2 -0
  278. package/dist/components/Plot/SynapsePlot.d.ts.map +1 -1
  279. package/dist/components/Plot/SynapsePlot.js +43 -39
  280. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  281. package/dist/components/Plot/SynapsePlot.scss +8 -0
  282. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +1 -1
  283. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -0
  284. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  285. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +137 -135
  286. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  287. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts +1 -1
  288. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts.map +1 -1
  289. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  290. package/dist/components/Resources/Resources.Desktop.js +7 -7
  291. package/dist/components/Resources/Resources.Mobile.js +6 -6
  292. package/dist/components/StorybookComponentWrapper.js +6 -3
  293. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  294. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js +3 -3
  295. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js +10 -10
  296. package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
  297. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  298. package/dist/components/SynapseChat/SynapseChat.js +76 -67
  299. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  300. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +2 -1
  301. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  302. package/dist/components/SynapseChat/SynapseChatInteraction.js +83 -58
  303. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  304. package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
  305. package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
  306. package/dist/components/SynapseChat/SynapseChatMessage.js +16 -15
  307. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  308. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +12 -0
  309. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -0
  310. package/dist/components/SynapseChat/SynapsePortalChatDialog.js +30 -0
  311. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -0
  312. package/dist/components/SynapseChat/extractMessageFromTraceEvent.d.ts.map +1 -1
  313. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js +22 -16
  314. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  315. package/dist/components/SynapseChat/index.d.ts +2 -0
  316. package/dist/components/SynapseChat/index.d.ts.map +1 -1
  317. package/dist/components/SynapseChat/index.js +5 -3
  318. package/dist/components/SynapseChat/index.js.map +1 -1
  319. package/dist/components/SynapseChat/useChatState.d.ts +1 -1
  320. package/dist/components/SynapseChat/useChatState.d.ts.map +1 -1
  321. package/dist/components/SynapseChat/useChatState.js +10 -7
  322. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  323. package/dist/components/SynapseForm/WarningDialog.d.ts +1 -0
  324. package/dist/components/SynapseForm/WarningDialog.d.ts.map +1 -1
  325. package/dist/components/SynapseForm/WarningDialog.js +18 -16
  326. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  327. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +1 -1
  328. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +25 -25
  329. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  330. package/dist/components/SynapseSearchPageResults/HasAccessChip.js +1 -1
  331. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.d.ts.map +1 -1
  332. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +12 -13
  333. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  334. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +5 -5
  335. package/dist/components/SynapseTable/ExpandableTableDataCell.d.ts.map +1 -1
  336. package/dist/components/SynapseTable/ExpandableTableDataCell.js +3 -1
  337. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  338. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +13 -13
  339. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  340. package/dist/components/SynapseTable/SynapseTable.js +4 -4
  341. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.d.ts.map +1 -1
  342. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js +122 -122
  343. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  344. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js +9 -9
  345. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  346. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +5 -5
  347. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  348. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js +1 -1
  349. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +1 -1
  350. package/dist/components/TableFeedCards/TableFeedCards.js +9 -9
  351. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js +10 -10
  352. package/dist/components/TextToComponentCollapse.d.ts +16 -0
  353. package/dist/components/TextToComponentCollapse.d.ts.map +1 -0
  354. package/dist/components/TextToComponentCollapse.js +29 -0
  355. package/dist/components/TextToComponentCollapse.js.map +1 -0
  356. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +9 -9
  357. package/dist/components/UserSearchBox/UserSearchBox.d.ts +23 -0
  358. package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -0
  359. package/dist/components/UserSearchBox/UserSearchBox.js +146 -0
  360. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -0
  361. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js +13 -13
  362. package/dist/components/WizardChoiceButton/WizardChoiceButton.js +3 -3
  363. package/dist/components/dataaccess/AccessHistoryDashboard.js +5 -5
  364. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  365. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  366. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  367. package/dist/components/dataaccess/AccessSubmissionDashboard.js +1 -1
  368. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  369. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +5 -5
  370. package/dist/components/dataaccess/UseAccessRequirementTable.js +3 -3
  371. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  372. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  373. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +10 -5
  374. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  375. package/dist/components/download_list/DownloadConfirmationUI.d.ts +1 -1
  376. package/dist/components/download_list/DownloadConfirmationUI.js +22 -22
  377. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  378. package/dist/components/download_list/DownloadConfirmationUtils.js +4 -4
  379. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  380. package/dist/components/entity/metadata/EntityModal.js +1 -1
  381. package/dist/components/entity/metadata/MetadataTable.js +1 -1
  382. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +1 -1
  383. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js +1 -1
  384. package/dist/components/entity/page/title_bar/TitleBarProperties.js +1 -1
  385. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
  386. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +27 -26
  387. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  388. package/dist/components/index.js +125 -121
  389. package/dist/components/index.js.map +1 -1
  390. package/dist/components/layout/InfiniteTableLayout.js +1 -1
  391. package/dist/components/row_renderers/ObservationCard.js +12 -11
  392. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  393. package/dist/components/row_renderers/utils/CardFooter.d.ts +1 -3
  394. package/dist/components/row_renderers/utils/CardFooter.d.ts.map +1 -1
  395. package/dist/components/row_renderers/utils/CardFooter.js +31 -45
  396. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  397. package/dist/components/styled/HoverPopover.css +1 -0
  398. package/dist/components/styled/HoverPopover.d.ts +28 -0
  399. package/dist/components/styled/HoverPopover.d.ts.map +1 -0
  400. package/dist/components/styled/HoverPopover.js +103 -0
  401. package/dist/components/styled/HoverPopover.js.map +1 -0
  402. package/dist/components/styled/HoverPopover.module.scss +9 -0
  403. package/dist/components/styled/HoverPopover.module.scss.js +10 -0
  404. package/dist/components/styled/HoverPopover.module.scss.js.map +1 -0
  405. package/dist/components/styled/index.d.ts +2 -0
  406. package/dist/components/styled/index.d.ts.map +1 -1
  407. package/dist/components/styled/index.js +11 -9
  408. package/dist/components/styled/index.js.map +1 -1
  409. package/dist/components/table/CsvPreview/CsvPreview.js +10 -5
  410. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  411. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +10 -5
  412. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  413. package/dist/components/widgets/Range.js +1 -1
  414. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  415. package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -32
  416. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  417. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +1 -1
  418. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  419. package/dist/components/widgets/facet-nav/PlotsContainer.js +69 -68
  420. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  421. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  422. package/dist/components/widgets/facet-nav/useFacetPlots.js +24 -21
  423. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  424. package/dist/components/widgets/query-filter/FacetFilterControls.js +3 -3
  425. package/dist/features/curator/GridPage/GridPage.js +10 -5
  426. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  427. package/dist/features/curator/GridPage/components/GridPageTitle.js +10 -5
  428. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  429. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  430. package/dist/index.js +155 -151
  431. package/dist/index.js.map +1 -1
  432. package/dist/mocks/msw/handlers/accessRequirementHandlers.js +5 -5
  433. package/dist/mocks/msw/handlers/projectStorageHandlers.js +5 -5
  434. package/dist/mocks/msw/handlers/wikiHandlers.js +1 -1
  435. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  436. package/dist/mocks/msw/handlers.js +67 -59
  437. package/dist/mocks/msw/handlers.js.map +1 -1
  438. package/dist/style/base/_core.scss +0 -1
  439. package/dist/style/components/_all.scss +0 -2
  440. package/dist/style/components/_cards.scss +22 -0
  441. package/dist/style/components/_download-list-v2.scss +1 -1
  442. package/dist/style/components/_entity-badge.scss +0 -2
  443. package/dist/style/components/_expandable_table_data.scss +3 -3
  444. package/dist/style/components/_query-wrapper-plot-nav.scss +13 -0
  445. package/dist/style/components/facet_nav/_facet-nav-panel.scss +3 -0
  446. package/dist/style/components/facet_nav/_facet-nav.scss +4 -0
  447. package/dist/style/main.css +1 -1
  448. package/dist/synapse-client/SynapseClient.js +118 -118
  449. package/dist/synapse-client/SynapseClient.js.map +1 -1
  450. package/dist/synapse-queries/auth/useOIDC.js +1 -1
  451. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js +1 -1
  452. package/dist/synapse-queries/entity/index.js +6 -6
  453. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  454. package/dist/synapse-queries/index.js +1 -1
  455. package/dist/synapse-queries/user/usePersonalAccessToken.js +1 -1
  456. package/dist/testutils/vitest.setup.js +10 -11
  457. package/dist/testutils/vitest.setup.js.map +1 -1
  458. package/dist/theme/DefaultTheme.js +1 -1
  459. package/dist/theme/ThemeProvider.d.ts +2 -1
  460. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  461. package/dist/theme/ThemeProvider.js +11 -10
  462. package/dist/theme/ThemeProvider.js.map +1 -1
  463. package/dist/theme/index.js +1 -1
  464. package/dist/theme/mergeTheme.js +1 -1
  465. package/dist/tsconfig.build.tsbuildinfo +1 -1
  466. package/dist/utils/AppUtils/AppUtils.js +1 -1
  467. package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
  468. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  469. package/dist/utils/context/FullContextProvider.js +9 -9
  470. package/dist/utils/context/FullContextProvider.js.map +1 -1
  471. package/dist/utils/context/SynapseContext.d.ts.map +1 -1
  472. package/dist/utils/context/SynapseContext.js +1 -0
  473. package/dist/utils/context/SynapseContext.js.map +1 -1
  474. package/dist/utils/functions/SanitizeHtmlUtils.d.ts.map +1 -1
  475. package/dist/utils/functions/SanitizeHtmlUtils.js +34 -40
  476. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  477. package/dist/utils/functions/SqlFunctions.d.ts +4 -0
  478. package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
  479. package/dist/utils/functions/SqlFunctions.js +25 -23
  480. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  481. package/dist/utils/functions/deepLinkingUtils.js +10 -10
  482. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  483. package/dist/utils/hooks/index.js +6 -6
  484. package/dist/utils/hooks/useDetectSSOCode.js +3 -3
  485. package/dist/utils/hooks/useGetEntityMetadata.js +1 -1
  486. package/dist/utils/hooks/useNativeSearchParams.d.ts.map +1 -1
  487. package/dist/utils/hooks/useNativeSearchParams.js +1 -1
  488. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  489. package/dist/utils/hooks/useOneSageURL.d.ts.map +1 -1
  490. package/dist/utils/hooks/useOneSageURL.js +15 -15
  491. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  492. package/dist/utils/hooks/useSourceAppConfigs.d.ts +1 -0
  493. package/dist/utils/hooks/useSourceAppConfigs.d.ts.map +1 -1
  494. package/dist/utils/hooks/useSourceAppConfigs.js +79 -77
  495. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  496. package/dist/utils/index.js +4 -4
  497. package/package.json +15 -16
  498. package/dist/_virtual/index.js +0 -6
  499. package/dist/_virtual/index.js.map +0 -1
  500. package/dist/_virtual/index2.js +0 -5
  501. package/dist/_virtual/index2.js.map +0 -1
  502. package/dist/_virtual/index3.js +0 -5
  503. package/dist/_virtual/index3.js.map +0 -1
  504. package/dist/_virtual/index4.js +0 -5
  505. package/dist/_virtual/index4.js.map +0 -1
  506. package/dist/_virtual/index5.js +0 -5
  507. package/dist/_virtual/index5.js.map +0 -1
  508. package/dist/assets/themed_icons/Challenge.d.ts +0 -3
  509. package/dist/assets/themed_icons/Challenge.d.ts.map +0 -1
  510. package/dist/assets/themed_icons/Challenge.js +0 -25
  511. package/dist/assets/themed_icons/Challenge.js.map +0 -1
  512. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts +0 -21
  513. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts.map +0 -1
  514. package/dist/components/UserSearchBox/UserSearchBoxV2.js +0 -144
  515. package/dist/components/UserSearchBox/UserSearchBoxV2.js.map +0 -1
  516. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +0 -53
  517. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js.map +0 -1
  518. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +0 -948
  519. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js.map +0 -1
  520. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +0 -30
  521. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js.map +0 -1
  522. 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
  523. 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
  524. package/dist/style/components/_download-cart-page.scss +0 -204
  525. package/dist/style/components/_user-search-box.scss +0 -30
@@ -3,6 +3,8 @@
3
3
 
4
4
  .BasePortalCard__root:global(.MuiCard-root) {
5
5
  position: relative;
6
+ display: flex;
7
+ flex-direction: column;
6
8
  }
7
9
 
8
10
  .BasePortalCard__contentBelow {
@@ -11,14 +13,24 @@
11
13
 
12
14
  .BasePortalCard__content:global(.MuiCardContent-root):last-child {
13
15
  padding: 0;
16
+ flex: 1;
17
+ display: flex;
18
+ flex-direction: column;
14
19
  }
15
20
 
16
- .BasePortalCard__media:global(.MuiCardMedia-root) {
21
+ .BasePortalCard__media {
17
22
  height: 50%;
23
+ flex-shrink: 0;
24
+ overflow: hidden;
25
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
18
26
 
19
27
  @media (min-width: map.get(SrcVariables.$breakpoints, 'medium')) {
20
28
  height: 60%;
21
29
  }
30
+
31
+ :global(.MuiCardMedia-root) {
32
+ height: 100%;
33
+ }
22
34
  }
23
35
 
24
36
  .small {
@@ -1,20 +1,20 @@
1
- import './BasePortalCard.css';const a = "_BasePortalCard__root_tra5b_1", t = "_BasePortalCard__contentBelow_tra5b_5", _ = "_BasePortalCard__content_tra5b_5", r = "_BasePortalCard__media_tra5b_13", o = "_small_tra5b_22", e = "_medium_tra5b_33", l = "_large_tra5b_44", s = {
1
+ import './BasePortalCard.css';const a = "_BasePortalCard__root_1hm6w_1", _ = "_BasePortalCard__contentBelow_1hm6w_7", t = "_BasePortalCard__content_1hm6w_7", o = "_BasePortalCard__media_1hm6w_18", e = "_small_1hm6w_33", r = "_medium_1hm6w_44", l = "_large_1hm6w_55", s = {
2
2
  BasePortalCard__root: a,
3
- BasePortalCard__contentBelow: t,
4
- BasePortalCard__content: _,
5
- BasePortalCard__media: r,
6
- small: o,
7
- medium: e,
3
+ BasePortalCard__contentBelow: _,
4
+ BasePortalCard__content: t,
5
+ BasePortalCard__media: o,
6
+ small: e,
7
+ medium: r,
8
8
  large: l
9
9
  };
10
10
  export {
11
- _ as BasePortalCard__content,
12
- t as BasePortalCard__contentBelow,
13
- r as BasePortalCard__media,
11
+ t as BasePortalCard__content,
12
+ _ as BasePortalCard__contentBelow,
13
+ o as BasePortalCard__media,
14
14
  a as BasePortalCard__root,
15
15
  s as default,
16
16
  l as large,
17
- e as medium,
18
- o as small
17
+ r as medium,
18
+ e as small
19
19
  };
20
20
  //# sourceMappingURL=BasePortalCard.module.scss.js.map
@@ -1 +1 @@
1
- ._ColorfulPortalCardWithChips__root_fcyoh_1{position:relative}._ColorfulPortalCardWithChips__container_fcyoh_5{height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center;gap:20px;flex-wrap:wrap}@media(min-width:1024px){._ColorfulPortalCardWithChips__container_fcyoh_5{flex-direction:row;align-items:flex-start;padding:40px 100px 20px}}._ColorfulPortalCardWithChips__titleSection_fcyoh_22{color:#fff;max-width:225px;top:0;position:absolute;padding-left:30px;padding-top:50px}._ColorfulPortalCardWithChips__title_fcyoh_22.MuiTypography-root{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow-wrap:break-word}._ColorfulPortalCardWithChips__sectionTitle_fcyoh_40.MuiTypography-root{color:var(--synapse-black);margin-bottom:25px;font-size:48px;line-height:80px;text-align:center}._ColorfulPortalCardWithChips__backgroundImage_fcyoh_48.MuiCardMedia-root{background-size:contain}._ColorfulPortalCardWithChips__challengeName_fcyoh_52.MuiTypography-root{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:break-word}._ColorfulPortalCardWithChips__sectionContainer_fcyoh_62{height:100%}._ColorfulPortalCardWithChips__bottomSection_fcyoh_66{min-height:0;gap:12px;padding:30px;align-items:flex-start}._ColorfulPortalCardWithChips__descriptionTitle_fcyoh_73.MuiTypography-root{color:var(--synapse-black);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}._ColorfulPortalCardWithChips__registrationStatus_fcyoh_82.MuiChip-root{color:var(--synapse-gray-900);position:absolute;top:0;right:0;margin:26px 20px 0 0}._ColorfulPortalCardWithChips__chipsContainer_fcyoh_91{display:flex;gap:5px;flex-wrap:wrap;max-width:400px}._ColorfulPortalCardWithChips__learnMoreButton_fcyoh_98.MuiButton-root{display:flex;height:36px;padding:6px 16px;border-radius:8px;color:var(--synapse-black)!important;border:1px solid var(--synapse-black)!important}@media(max-width:768px){._ColorfulPortalCardWithChips__learnMoreButton_fcyoh_98.MuiButton-root{width:100%}}._ColorfulPortalCardWithChips__chip_fcyoh_91{flex-direction:row-reverse;padding-right:0;gap:5px;margin-bottom:5px}._ColorfulPortalCardWithChips__chip_fcyoh_91.MuiChip-root .MuiChip-label{padding-right:0;color:var(--synapse-gray-900)}._ColorfulPortalCardWithChips__chip_fcyoh_91.MuiChip-root .MuiChip-icon{margin-left:0;margin-right:5px;padding-right:5px;color:var(--synapse-black)}._ColorfulPortalCardWithChips__triangleImage_fcyoh_131{position:absolute;left:10%;bottom:100%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__triangleImage_fcyoh_131{left:35%}}._ColorfulPortalCardWithChips__circleImage_fcyoh_144{position:absolute;left:10%;top:4%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__circleImage_fcyoh_144{left:35%;top:7%}}._ColorfulPortalCardWithChips__doubleLineImage_fcyoh_158{display:flex;position:absolute;left:42%;top:5%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__doubleLineImage_fcyoh_158{left:45%;top:10%}}._ColorfulPortalCardWithChips__longLineImage_fcyoh_173{position:absolute;right:10%;bottom:100%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__longLineImage_fcyoh_173{right:5%;left:62%}}._ColorfulPortalCardWithChips__shortLineImage_fcyoh_187{position:absolute;right:7%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__shortLineImage_fcyoh_187{right:2%;left:63%}}._ColorfulPortalCardWithChips__description_fcyoh_73 .markdown{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}._ColorfulPortalCardWithChips__description_fcyoh_73 .markdown p{color:var(--synapse-black)!important;font-size:14px;line-height:20px}
1
+ ._ColorfulPortalCardWithChips__root_1uazc_1{position:relative}._ColorfulPortalCardWithChips__container_1uazc_5{height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center;gap:20px;flex-wrap:wrap}@media(min-width:1024px){._ColorfulPortalCardWithChips__container_1uazc_5{flex-direction:row;align-items:flex-start;padding:40px 100px 20px}}._ColorfulPortalCardWithChips__titleSection_1uazc_22{color:#fff;max-width:310px;top:0;position:absolute;padding-left:30px;padding-top:65px}._ColorfulPortalCardWithChips__title_1uazc_22.MuiTypography-root{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow-wrap:break-word}._ColorfulPortalCardWithChips__sectionTitle_1uazc_40.MuiTypography-root{color:var(--synapse-black);margin-bottom:25px;font-size:48px;line-height:80px;text-align:center}._ColorfulPortalCardWithChips__backgroundImage_1uazc_48.MuiCardMedia-root{background-size:contain}._ColorfulPortalCardWithChips__challengeName_1uazc_52.MuiTypography-root{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:break-word}._ColorfulPortalCardWithChips__sectionContainer_1uazc_62{flex:1}._ColorfulPortalCardWithChips__bottomSection_1uazc_66{min-height:0;flex:1;gap:12px;padding:30px;align-items:flex-start}._ColorfulPortalCardWithChips__descriptionTitle_1uazc_74.MuiTypography-root{color:var(--synapse-black);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}._ColorfulPortalCardWithChips__registrationStatus_1uazc_83.MuiChip-root{color:var(--synapse-gray-900);position:absolute;top:0;right:0;margin:26px 20px 0 0}._ColorfulPortalCardWithChips__chipsContainer_1uazc_92{display:flex;gap:5px;flex-wrap:wrap;max-width:400px}._ColorfulPortalCardWithChips__learnMoreButton_1uazc_99.MuiButton-root{display:flex;margin-top:auto;height:36px;padding:6px 16px;border-radius:8px;color:var(--synapse-black)!important;border:1px solid var(--synapse-black)!important}@media(max-width:768px){._ColorfulPortalCardWithChips__learnMoreButton_1uazc_99.MuiButton-root{width:100%}}._ColorfulPortalCardWithChips__chip_1uazc_92{flex-direction:row-reverse;padding-right:0;gap:5px;margin-bottom:5px}._ColorfulPortalCardWithChips__chip_1uazc_92.MuiChip-root .MuiChip-label{padding-right:0;color:var(--synapse-gray-900)}._ColorfulPortalCardWithChips__chip_1uazc_92.MuiChip-root .MuiChip-icon{margin-left:0;margin-right:5px;padding-right:5px;color:var(--synapse-black)}._ColorfulPortalCardWithChips__triangleImage_1uazc_133{position:absolute;left:10%;bottom:100%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__triangleImage_1uazc_133{left:35%}}._ColorfulPortalCardWithChips__circleImage_1uazc_146{position:absolute;left:10%;top:4%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__circleImage_1uazc_146{left:35%;top:7%}}._ColorfulPortalCardWithChips__doubleLineImage_1uazc_160{display:flex;position:absolute;left:42%;top:5%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__doubleLineImage_1uazc_160{left:45%;top:10%}}._ColorfulPortalCardWithChips__longLineImage_1uazc_175{position:absolute;right:10%;bottom:100%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__longLineImage_1uazc_175{right:5%;left:62%}}._ColorfulPortalCardWithChips__shortLineImage_1uazc_189{position:absolute;right:7%;transform:translate(-50%);z-index:1}@media(min-width:1024px){._ColorfulPortalCardWithChips__shortLineImage_1uazc_189{right:2%;left:63%}}._ColorfulPortalCardWithChips__description_1uazc_74 .markdown{--description-line-height: 20px;--description-max-lines: 3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:var(--description-max-lines);-webkit-box-orient:vertical;min-height:calc(var(--description-max-lines) * var(--description-line-height))}._ColorfulPortalCardWithChips__description_1uazc_74 .markdown p{color:var(--synapse-black)!important;font-size:14px;line-height:var(--description-line-height)}
@@ -1 +1 @@
1
- {"version":3,"file":"ColorfulPortalCardWithChips.d.ts","sourceRoot":"","sources":["../../../../src/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,KAAK,gCAAgC,GAAG;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;CACxC,CAAA;AA6BD,QAAA,MAAM,2BAA2B,GAAI,0KAclC,gCAAgC,KAAG,KAAK,CAAC,SAqE3C,CAAA;AAED,eAAe,2BAA2B,CAAA"}
1
+ {"version":3,"file":"ColorfulPortalCardWithChips.d.ts","sourceRoot":"","sources":["../../../../src/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,gCAAgC,GAAG;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;CACxC,CAAA;AA6BD,QAAA,MAAM,2BAA2B,GAAI,0KAclC,gCAAgC,KAAG,KAAK,CAAC,SAqE3C,CAAA;AAED,eAAe,2BAA2B,CAAA"}
@@ -1,17 +1,17 @@
1
1
  import { jsx as r, jsxs as n } from "react/jsx-runtime";
2
- import W from "../BasePortalCard.js";
3
- import { Stack as s, Chip as u, Typography as i, Button as v, Box as x } from "@mui/material";
4
- import a from "./ColorfulPortalCardWithChips.module.scss.js";
2
+ import { Markdown as W } from "../../Markdown/MarkdownSynapse.js";
3
+ import { hashCode as v } from "../../../utils/functions/StringUtils.js";
4
+ import { useImageUrl as x } from "../../../utils/hooks/useImageUrlUtils.js";
5
5
  import b from "@mui/icons-material/ArrowForward";
6
- import { useImageUrl as B } from "../../../utils/hooks/useImageUrlUtils.js";
7
- import { hashCode as y } from "../../../utils/functions/StringUtils.js";
8
- import { MarkdownSynapse as k } from "../../Markdown/MarkdownSynapse.js";
9
- const p = ["#F8CC7D", "#BFE8F4", "#CEFBDD"], w = (o) => o.map((e) => {
10
- const l = y(e), t = Math.abs(l) % p.length;
11
- return p[t];
6
+ import { Stack as s, Chip as u, Typography as i, Button as B, Box as k } from "@mui/material";
7
+ import w from "../BasePortalCard.js";
8
+ import a from "./ColorfulPortalCardWithChips.module.scss.js";
9
+ const C = ["#F8CC7D", "#BFE8F4", "#CEFBDD"], y = (o) => o.map((e) => {
10
+ const l = v(e), t = Math.abs(l) % C.length;
11
+ return C[t];
12
12
  }), F = ({ values: o }) => {
13
- const e = w(o);
14
- return /* @__PURE__ */ r(x, { className: a.ColorfulPortalCardWithChips__chipsContainer, children: o.map((l, t) => /* @__PURE__ */ r(
13
+ const e = y(o);
14
+ return /* @__PURE__ */ r(k, { className: a.ColorfulPortalCardWithChips__chipsContainer, children: o.map((l, t) => /* @__PURE__ */ r(
15
15
  u,
16
16
  {
17
17
  label: /* @__PURE__ */ r(i, { variant: "smallText1", children: l }),
@@ -26,35 +26,35 @@ const p = ["#F8CC7D", "#BFE8F4", "#CEFBDD"], w = (o) => o.map((e) => {
26
26
  subtitle: e,
27
27
  description: l,
28
28
  descriptionTitle: t,
29
- learnMoreLink: C,
29
+ learnMoreLink: c,
30
30
  buttonOverrideText: f,
31
31
  chips: h,
32
- backgroundImage: c,
33
- backgroundColor: d,
34
- tag: m,
32
+ backgroundImage: d,
33
+ backgroundColor: m,
34
+ tag: p,
35
35
  entityId: _,
36
36
  borderRadiusPx: g,
37
37
  cardSize: P = "medium"
38
38
  }) => {
39
- const N = B(c ?? "", _ ?? "") ?? c;
39
+ const N = x(d ?? "", _ ?? "") ?? d;
40
40
  return /* @__PURE__ */ r(
41
- W,
41
+ w,
42
42
  {
43
43
  cardSize: P,
44
44
  borderRadiusPx: g,
45
45
  backgroundImage: N,
46
- backgroundColor: d ?? "",
46
+ backgroundColor: m || C[0],
47
47
  contentBelowCard: h && h.length > 0 && /* @__PURE__ */ r(F, { values: h }),
48
48
  children: /* @__PURE__ */ n(s, { className: a.ColorfulPortalCardWithChips__sectionContainer, children: [
49
49
  /* @__PURE__ */ n(s, { children: [
50
- m && /* @__PURE__ */ r(
50
+ p && /* @__PURE__ */ r(
51
51
  u,
52
52
  {
53
53
  color: "secondary",
54
54
  variant: "filled",
55
55
  className: a.ColorfulPortalCardWithChips__registrationStatus,
56
- sx: { backgroundColor: d },
57
- label: m
56
+ sx: { backgroundColor: m },
57
+ label: p
58
58
  }
59
59
  ),
60
60
  /* @__PURE__ */ n(s, { className: a.ColorfulPortalCardWithChips__titleSection, children: [
@@ -90,16 +90,16 @@ const p = ["#F8CC7D", "#BFE8F4", "#CEFBDD"], w = (o) => o.map((e) => {
90
90
  {
91
91
  variant: "smallText1",
92
92
  className: a.ColorfulPortalCardWithChips__description,
93
- children: /* @__PURE__ */ r(k, { markdown: l ?? "" })
93
+ children: /* @__PURE__ */ r(W, { markdown: l ?? "" })
94
94
  }
95
95
  ),
96
- C && /* @__PURE__ */ r(
97
- v,
96
+ c && /* @__PURE__ */ r(
97
+ B,
98
98
  {
99
99
  className: a.ColorfulPortalCardWithChips__learnMoreButton,
100
100
  variant: "outlined",
101
101
  endIcon: /* @__PURE__ */ r(b, {}),
102
- href: C,
102
+ href: c,
103
103
  target: "_blank",
104
104
  rel: "noopener noreferrer",
105
105
  children: f ?? "Learn more"
@@ -1 +1 @@
1
- {"version":3,"file":"ColorfulPortalCardWithChips.js","sources":["../../../../src/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.tsx"],"sourcesContent":["import React from 'react'\nimport BasePortalCard from '../BasePortalCard'\nimport { Chip, Box, Button, Stack, Typography } from '@mui/material'\nimport styles from './ColorfulPortalCardWithChips.module.scss'\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward'\nimport { useImageUrl } from '@/utils/hooks/useImageUrlUtils'\nimport { hashCode } from '@/utils/functions/StringUtils'\nimport MarkdownSynapse from '@/components/Markdown/MarkdownSynapse'\n\ntype ColorfulPortalCardWithChipsProps = {\n title?: string\n subtitle?: string\n description?: string\n descriptionTitle?: string\n learnMoreLink?: string\n buttonOverrideText?: string\n chips?: string[]\n backgroundImage?: string\n backgroundColor?: string\n tag?: string\n entityId?: string\n borderRadiusPx?: number\n cardSize?: 'small' | 'medium' | 'large'\n}\n\nconst colors = ['#F8CC7D', '#BFE8F4', '#CEFBDD']\n\nconst getChicletColors = (chips: string[]) => {\n return chips.map(chip => {\n const hash = hashCode(chip)\n const index = Math.abs(hash) % colors.length\n return colors[index]\n })\n}\n\nconst Chips = ({ values }: { values: string[] }): React.ReactNode => {\n const chipColors = getChicletColors(values)\n return (\n <Box className={styles.ColorfulPortalCardWithChips__chipsContainer}>\n {values.map((chip, index) => (\n <Chip\n key={chip}\n label={<Typography variant=\"smallText1\">{chip}</Typography>}\n variant=\"filled\"\n style={{ backgroundColor: chipColors[index] }}\n className={styles.ChallengePortalCard__chip}\n />\n ))}\n </Box>\n )\n}\n\nconst ColorfulPortalCardWithChips = ({\n title,\n subtitle,\n description,\n descriptionTitle,\n learnMoreLink,\n buttonOverrideText,\n chips,\n backgroundImage,\n backgroundColor,\n tag,\n entityId,\n borderRadiusPx,\n cardSize = 'medium',\n}: ColorfulPortalCardWithChipsProps): React.ReactNode => {\n const imageUrl = useImageUrl(backgroundImage ?? '', entityId ?? '')\n const backgroundImageValue = imageUrl ?? backgroundImage\n\n return (\n <BasePortalCard\n cardSize={cardSize}\n borderRadiusPx={borderRadiusPx}\n backgroundImage={backgroundImageValue}\n backgroundColor={backgroundColor ?? ''}\n contentBelowCard={chips && chips.length > 0 && <Chips values={chips} />}\n >\n <Stack className={styles.ColorfulPortalCardWithChips__sectionContainer}>\n <Stack>\n {tag && (\n <Chip\n color=\"secondary\"\n variant=\"filled\"\n className={styles.ColorfulPortalCardWithChips__registrationStatus}\n sx={{ backgroundColor }}\n label={tag}\n />\n )}\n <Stack className={styles.ColorfulPortalCardWithChips__titleSection}>\n <Typography\n variant=\"headline1\"\n className={styles.ColorfulPortalCardWithChips__title}\n >\n {title}\n </Typography>\n <Typography\n variant=\"headline1\"\n className={styles.ColorfulPortalCardWithChips__challengeName}\n >\n {subtitle}\n </Typography>\n </Stack>\n </Stack>\n <Stack className={styles.ColorfulPortalCardWithChips__bottomSection}>\n {descriptionTitle && (\n <Typography\n variant=\"headline1\"\n className={styles.ColorfulPortalCardWithChips__descriptionTitle}\n >\n {descriptionTitle}\n </Typography>\n )}\n <Typography\n variant=\"smallText1\"\n className={styles.ColorfulPortalCardWithChips__description}\n >\n <MarkdownSynapse markdown={description ?? ''} />\n </Typography>\n {learnMoreLink && (\n <Button\n className={styles.ColorfulPortalCardWithChips__learnMoreButton}\n variant=\"outlined\"\n endIcon={<ArrowForwardIcon />}\n href={learnMoreLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {buttonOverrideText ?? 'Learn more'}\n </Button>\n )}\n </Stack>\n </Stack>\n </BasePortalCard>\n )\n}\n\nexport default ColorfulPortalCardWithChips\n"],"names":["colors","getChicletColors","chips","chip","hash","hashCode","index","Chips","values","chipColors","jsx","Box","styles","Chip","Typography","ColorfulPortalCardWithChips","title","subtitle","description","descriptionTitle","learnMoreLink","buttonOverrideText","backgroundImage","backgroundColor","tag","entityId","borderRadiusPx","cardSize","backgroundImageValue","useImageUrl","BasePortalCard","jsxs","Stack","MarkdownSynapse","Button","ArrowForwardIcon"],"mappings":"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"}
1
+ {"version":3,"file":"ColorfulPortalCardWithChips.js","sources":["../../../../src/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.tsx"],"sourcesContent":["import MarkdownSynapse from '@/components/Markdown/MarkdownSynapse'\nimport { hashCode } from '@/utils/functions/StringUtils'\nimport { useImageUrl } from '@/utils/hooks/useImageUrlUtils'\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward'\nimport { Box, Button, Chip, Stack, Typography } from '@mui/material'\nimport React from 'react'\nimport BasePortalCard from '../BasePortalCard'\nimport styles from './ColorfulPortalCardWithChips.module.scss'\n\ntype ColorfulPortalCardWithChipsProps = {\n title?: string\n subtitle?: string\n description?: string\n descriptionTitle?: string\n learnMoreLink?: string\n buttonOverrideText?: string\n chips?: string[]\n backgroundImage?: string\n backgroundColor?: string\n tag?: string\n entityId?: string\n borderRadiusPx?: number\n cardSize?: 'small' | 'medium' | 'large'\n}\n\nconst colors = ['#F8CC7D', '#BFE8F4', '#CEFBDD']\n\nconst getChicletColors = (chips: string[]) => {\n return chips.map(chip => {\n const hash = hashCode(chip)\n const index = Math.abs(hash) % colors.length\n return colors[index]\n })\n}\n\nconst Chips = ({ values }: { values: string[] }): React.ReactNode => {\n const chipColors = getChicletColors(values)\n return (\n <Box className={styles.ColorfulPortalCardWithChips__chipsContainer}>\n {values.map((chip, index) => (\n <Chip\n key={chip}\n label={<Typography variant=\"smallText1\">{chip}</Typography>}\n variant=\"filled\"\n style={{ backgroundColor: chipColors[index] }}\n className={styles.ChallengePortalCard__chip}\n />\n ))}\n </Box>\n )\n}\n\nconst ColorfulPortalCardWithChips = ({\n title,\n subtitle,\n description,\n descriptionTitle,\n learnMoreLink,\n buttonOverrideText,\n chips,\n backgroundImage,\n backgroundColor,\n tag,\n entityId,\n borderRadiusPx,\n cardSize = 'medium',\n}: ColorfulPortalCardWithChipsProps): React.ReactNode => {\n const imageUrl = useImageUrl(backgroundImage ?? '', entityId ?? '')\n const backgroundImageValue = imageUrl ?? backgroundImage\n\n return (\n <BasePortalCard\n cardSize={cardSize}\n borderRadiusPx={borderRadiusPx}\n backgroundImage={backgroundImageValue}\n backgroundColor={backgroundColor || colors[0]}\n contentBelowCard={chips && chips.length > 0 && <Chips values={chips} />}\n >\n <Stack className={styles.ColorfulPortalCardWithChips__sectionContainer}>\n <Stack>\n {tag && (\n <Chip\n color=\"secondary\"\n variant=\"filled\"\n className={styles.ColorfulPortalCardWithChips__registrationStatus}\n sx={{ backgroundColor }}\n label={tag}\n />\n )}\n <Stack className={styles.ColorfulPortalCardWithChips__titleSection}>\n <Typography\n variant=\"headline1\"\n className={styles.ColorfulPortalCardWithChips__title}\n >\n {title}\n </Typography>\n <Typography\n variant=\"headline1\"\n className={styles.ColorfulPortalCardWithChips__challengeName}\n >\n {subtitle}\n </Typography>\n </Stack>\n </Stack>\n <Stack className={styles.ColorfulPortalCardWithChips__bottomSection}>\n {descriptionTitle && (\n <Typography\n variant=\"headline1\"\n className={styles.ColorfulPortalCardWithChips__descriptionTitle}\n >\n {descriptionTitle}\n </Typography>\n )}\n <Typography\n variant=\"smallText1\"\n className={styles.ColorfulPortalCardWithChips__description}\n >\n <MarkdownSynapse markdown={description ?? ''} />\n </Typography>\n {learnMoreLink && (\n <Button\n className={styles.ColorfulPortalCardWithChips__learnMoreButton}\n variant=\"outlined\"\n endIcon={<ArrowForwardIcon />}\n href={learnMoreLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {buttonOverrideText ?? 'Learn more'}\n </Button>\n )}\n </Stack>\n </Stack>\n </BasePortalCard>\n )\n}\n\nexport default ColorfulPortalCardWithChips\n"],"names":["colors","getChicletColors","chips","chip","hash","hashCode","index","Chips","values","chipColors","jsx","Box","styles","Chip","Typography","ColorfulPortalCardWithChips","title","subtitle","description","descriptionTitle","learnMoreLink","buttonOverrideText","backgroundImage","backgroundColor","tag","entityId","borderRadiusPx","cardSize","backgroundImageValue","useImageUrl","BasePortalCard","jsxs","Stack","MarkdownSynapse","Button","ArrowForwardIcon"],"mappings":"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"}
@@ -23,11 +23,11 @@
23
23
 
24
24
  .ColorfulPortalCardWithChips__titleSection {
25
25
  color: #fff;
26
- max-width: 225px;
26
+ max-width: 310px;
27
27
  top: 0;
28
28
  position: absolute;
29
29
  padding-left: 30px;
30
- padding-top: 50px;
30
+ padding-top: 65px;
31
31
  }
32
32
 
33
33
  .ColorfulPortalCardWithChips__title:global(.MuiTypography-root) {
@@ -62,11 +62,12 @@
62
62
  }
63
63
 
64
64
  .ColorfulPortalCardWithChips__sectionContainer {
65
- height: 100%;
65
+ flex: 1;
66
66
  }
67
67
 
68
68
  .ColorfulPortalCardWithChips__bottomSection {
69
69
  min-height: 0;
70
+ flex: 1;
70
71
  gap: 12px;
71
72
  padding: 30px;
72
73
  align-items: flex-start;
@@ -99,6 +100,7 @@
99
100
 
100
101
  .ColorfulPortalCardWithChips__learnMoreButton:global(.MuiButton-root) {
101
102
  display: flex;
103
+ margin-top: auto;
102
104
  height: 36px;
103
105
  padding: 6px 16px;
104
106
  border-radius: 8px;
@@ -196,15 +198,21 @@
196
198
  }
197
199
 
198
200
  .ColorfulPortalCardWithChips__description :global(.markdown) {
201
+ --description-line-height: 20px;
202
+ --description-max-lines: 3;
203
+
199
204
  overflow: hidden;
200
205
  text-overflow: ellipsis;
201
206
  display: -webkit-box;
202
- -webkit-line-clamp: 3;
207
+ -webkit-line-clamp: var(--description-max-lines);
203
208
  -webkit-box-orient: vertical;
209
+ min-height: calc(
210
+ var(--description-max-lines) * var(--description-line-height)
211
+ );
204
212
  }
205
213
 
206
214
  .ColorfulPortalCardWithChips__description :global(.markdown) p {
207
215
  color: var(--synapse-black) !important;
208
216
  font-size: 14px;
209
- line-height: 20px;
217
+ line-height: var(--description-line-height);
210
218
  }
@@ -1,23 +1,23 @@
1
- import './ColorfulPortalCardWithChips.css';const o = "_ColorfulPortalCardWithChips__titleSection_fcyoh_22", t = "_ColorfulPortalCardWithChips__title_fcyoh_22", r = "_ColorfulPortalCardWithChips__challengeName_fcyoh_52", l = "_ColorfulPortalCardWithChips__sectionContainer_fcyoh_62", i = "_ColorfulPortalCardWithChips__bottomSection_fcyoh_66", C = "_ColorfulPortalCardWithChips__descriptionTitle_fcyoh_73", _ = "_ColorfulPortalCardWithChips__registrationStatus_fcyoh_82", a = "_ColorfulPortalCardWithChips__chipsContainer_fcyoh_91", h = "_ColorfulPortalCardWithChips__learnMoreButton_fcyoh_98", s = "_ColorfulPortalCardWithChips__description_fcyoh_73", e = {
1
+ import './ColorfulPortalCardWithChips.css';const o = "_ColorfulPortalCardWithChips__titleSection_1uazc_22", t = "_ColorfulPortalCardWithChips__title_1uazc_22", r = "_ColorfulPortalCardWithChips__challengeName_1uazc_52", l = "_ColorfulPortalCardWithChips__sectionContainer_1uazc_62", i = "_ColorfulPortalCardWithChips__bottomSection_1uazc_66", C = "_ColorfulPortalCardWithChips__descriptionTitle_1uazc_74", a = "_ColorfulPortalCardWithChips__registrationStatus_1uazc_83", _ = "_ColorfulPortalCardWithChips__chipsContainer_1uazc_92", h = "_ColorfulPortalCardWithChips__learnMoreButton_1uazc_99", s = "_ColorfulPortalCardWithChips__description_1uazc_74", e = {
2
2
  ColorfulPortalCardWithChips__titleSection: o,
3
3
  ColorfulPortalCardWithChips__title: t,
4
4
  ColorfulPortalCardWithChips__challengeName: r,
5
5
  ColorfulPortalCardWithChips__sectionContainer: l,
6
6
  ColorfulPortalCardWithChips__bottomSection: i,
7
7
  ColorfulPortalCardWithChips__descriptionTitle: C,
8
- ColorfulPortalCardWithChips__registrationStatus: _,
9
- ColorfulPortalCardWithChips__chipsContainer: a,
8
+ ColorfulPortalCardWithChips__registrationStatus: a,
9
+ ColorfulPortalCardWithChips__chipsContainer: _,
10
10
  ColorfulPortalCardWithChips__learnMoreButton: h,
11
11
  ColorfulPortalCardWithChips__description: s
12
12
  };
13
13
  export {
14
14
  i as ColorfulPortalCardWithChips__bottomSection,
15
15
  r as ColorfulPortalCardWithChips__challengeName,
16
- a as ColorfulPortalCardWithChips__chipsContainer,
16
+ _ as ColorfulPortalCardWithChips__chipsContainer,
17
17
  s as ColorfulPortalCardWithChips__description,
18
18
  C as ColorfulPortalCardWithChips__descriptionTitle,
19
19
  h as ColorfulPortalCardWithChips__learnMoreButton,
20
- _ as ColorfulPortalCardWithChips__registrationStatus,
20
+ a as ColorfulPortalCardWithChips__registrationStatus,
21
21
  l as ColorfulPortalCardWithChips__sectionContainer,
22
22
  t as ColorfulPortalCardWithChips__title,
23
23
  o as ColorfulPortalCardWithChips__titleSection,
@@ -11,6 +11,18 @@ export type CardLink = ({
11
11
  } & ({
12
12
  baseURL: string;
13
13
  URLColumnName: string;
14
+ /**
15
+ * Controls how the record identifier is appended to baseURL.
16
+ *
17
+ * - `'query-param'` (default): appends as a query string parameter, e.g.
18
+ * `/<baseURL>?<URLColumnName>=<value>`
19
+ * - `'path-segment'`: appends as a path segment, e.g.
20
+ * `/<baseURL>/<value>`
21
+ *
22
+ * Use `'path-segment'` for clean-URL detail pages that use React Router
23
+ * dynamic segments (`:param`) rather than `?param=` query strings.
24
+ */
25
+ urlParamStyle?: 'query-param' | 'path-segment';
14
26
  wrapValueWithParens?: boolean;
15
27
  resolveEntityName?: boolean;
16
28
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"CardLink.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainer/CardLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAClB,CAAE;IAEE,eAAe,EAAE,MAAM,CAAA;IAEvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC,UAAU,EAAE,KAAK,CAAA;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;IAEf,aAAa,EAAE,MAAM,CAAA;IAGrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,GACD;IAEE,yBAAyB,EAAE,MAAM,CAAA;IAEjC,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAA;CACjE,CACJ,CAAA,CAAA"}
1
+ {"version":3,"file":"CardLink.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainer/CardLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAClB,CAAE;IAEE,eAAe,EAAE,MAAM,CAAA;IAEvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC,UAAU,EAAE,KAAK,CAAA;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,MAAM,CAAC,EAAE,UAAU,CAAA;CACpB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;IAEf,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,cAAc,CAAA;IAG9C,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,GACD;IAEE,yBAAyB,EAAE,MAAM,CAAA;IAEjC,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAA;CACjE,CACJ,CAAA,CAAA"}
@@ -4,6 +4,7 @@ import { LockedColumn, UniqueFacetIdentifier } from '@/utils';
4
4
  import { SQLOperator } from '@/utils/functions/SqlFunctions';
5
5
  import { Query, SelectColumn, SortDirection } from '@sage-bionetworks/synapse-types';
6
6
  import React from 'react';
7
+ import { SxProps } from '@mui/material';
7
8
  import { IconSvgProps } from '../IconSvg';
8
9
  import { QueryVisualizationWrapperProps } from '../QueryVisualizationWrapper';
9
10
  /**
@@ -51,10 +52,13 @@ export type MapValueToReactComponentConfig = {
51
52
  isMapValueToReactNodeConfig: true;
52
53
  };
53
54
  export type LabelLinkConfig = (MarkdownLink | CardLink | ColumnSpecifiedLink | EntityImage | MapValueToReactComponentConfig)[];
55
+ export type ColumnIconConfig = IconSvgProps & {
56
+ containerSx?: SxProps;
57
+ };
54
58
  export type ColumnIconConfigs = {
55
59
  columns: {
56
60
  [index: string]: {
57
- [index: string]: IconSvgProps;
61
+ [index: string]: ColumnIconConfig;
58
62
  };
59
63
  };
60
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CardContainerLogic.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainerLogic/CardContainerLogic.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CardContainerLogic.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainerLogic/CardContainerLogic.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardContainerLogic.js","sources":["../../../src/components/CardContainerLogic/CardContainerLogic.tsx"],"sourcesContent":["import { CardConfiguration } from '@/components/CardContainer/CardConfiguration'\nimport { CardLink } from '@/components/CardContainer/CardLink'\nimport { LockedColumn, SynapseConstants, UniqueFacetIdentifier } from '@/utils'\nimport {\n getAdditionalFilters,\n parseEntityIdFromSqlStatement,\n SQLOperator,\n} from '@/utils/functions/SqlFunctions'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport {\n Query,\n QueryBundleRequest,\n SelectColumn,\n SortDirection,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useMemo } from 'react'\nimport ColumnFilter from '../ColumnFilter/ColumnFilter'\nimport { IconSvgProps } from '../IconSvg'\nimport QuerySortSelector from '../QuerySortSelector'\nimport {\n QueryVisualizationWrapper,\n QueryVisualizationWrapperProps,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper } from '../QueryWrapper'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport { RowSetView } from '../QueryWrapperPlotNav/RowSetView'\nimport { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\n\n/**\n * Used when a column value should link to an external URL defined by a value in another column.\n * Currently only works in SynapseTable (not cards!)\n */\nexport interface ColumnSpecifiedLink {\n isMarkdown: false\n /* The column which should have the displayed value */\n matchColumnName: string\n /* The column which has the link. If the link is empty, the value will be displayed without a link. */\n linkColumnName: string\n // If set, also show a tooltip\n tooltipText?: string\n}\n\n/**\n * Used when a column value should be previewed\n * Currently only works in SynapseTable (not cards!)\n */\nexport interface EntityImage {\n // the columns whos value will be used for the markdown\n matchColumnName: string\n isEntityImage: boolean\n}\n\nexport type MarkdownLink = {\n isMarkdown: true\n // the columns whos value will be used for the markdown\n matchColumnName: string\n // If set, also show a tooltip\n tooltipText?: string\n}\n\nexport type SortConfiguration = {\n // the column that the query should be sorted on by default\n defaultColumn: string\n // the direction that the defaultColumn should be sorted on by default\n defaultDirection: SortDirection\n // the columns that the UI should surface as sortable\n sortableColumns: string[]\n}\n\nexport type CTACardLink = {\n // link text\n text: string\n // column name to use for href\n link: string\n}\n\nexport type DescriptionConfig = {\n isMarkdown?: boolean\n showFullDescriptionByDefault?: boolean\n}\n\nexport type MapValueToReactComponentConfig = {\n // The column to apply the mapping to\n matchColumnName: string\n Component: React.ComponentType<{\n /* The value of the table cell. If the column is a _LIST type, then the LIST will be parsed and this will be a string array. */\n value: string | string[] | null\n selectColumn: SelectColumn\n }>\n // discriminator\n isMapValueToReactNodeConfig: true\n}\n\n// Specify the indices in the values [] that should be rendered specially\nexport type LabelLinkConfig = (\n | MarkdownLink\n | CardLink\n | ColumnSpecifiedLink\n | EntityImage\n | MapValueToReactComponentConfig\n)[]\n\nexport type ColumnIconConfigs = {\n columns: {\n [index: string]: {\n [index: string]: IconSvgProps\n }\n }\n}\n\nexport type QueryOrDeprecatedSearchParams = {\n /** The initial SQL query which will be used to populate the data in the component */\n query?: Query\n /** @deprecated use `query` */\n sql?: string\n /** Optional limit for the number of cards shown per page\n * @deprecated use `query */\n limit?: number\n /** Applies filters to the query where the key is the column name and the value is the value to filter on.\n * The filter function is controlled by sqlOperator.\n * @deprecated use `query` */\n searchParams?: Record<string, string>\n /** Operator used in the filter created using the searchParams prop\n * @deprecated use `query` */\n sqlOperator?: SQLOperator\n}\n\nexport type CardContainerLogicProps = QueryOrDeprecatedSearchParams & {\n /** Optional title to display above the component */\n title?: string\n isAlignToLeftNav?: boolean\n /** Provide a `SortConfiguration` that can be used to render UI to toggle the sorting of the cards. */\n sortConfig?: SortConfiguration\n /** Configuration used to render UI that can be used to alter a filter against a column with enumerated facets. */\n topLevelEnumeratedFacetToFilter?: UniqueFacetIdentifier\n /** Optional column to 'lock'; Values and filter controls for a locked column will not be displayed in the UI. */\n lockedColumn?: LockedColumn\n /** Optionally limit the initial number of cards shown on the first page */\n initialLimit?: number\n multiCardList?: boolean\n cardConfiguration: CardConfiguration\n} & Pick<\n QueryVisualizationWrapperProps,\n | 'rgbIndex'\n | 'unitDescription'\n | 'columnAliases'\n | 'noContentPlaceholderType'\n | 'additionalFiltersSessionStorageKey'\n >\n\n/**\n * Class wraps around CardContainer and serves as a standalone logic container for rendering cards.\n */\nexport function CardContainerLogic(props: CardContainerLogicProps) {\n const { sql: deprecatedSql } = props\n const sql = props.query?.sql ?? deprecatedSql ?? ''\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const { sortConfig, columnAliases, topLevelEnumeratedFacetToFilter } = props\n const defaultSortItems = useMemo(\n () =>\n sortConfig\n ? [\n {\n column: sortConfig.defaultColumn,\n direction: sortConfig.defaultDirection,\n },\n ]\n : undefined,\n [sortConfig],\n )\n\n const initQueryRequest: QueryBundleRequest = useMemo(() => {\n let query: Query\n if (props.query) {\n query = {\n sort: defaultSortItems,\n limit: DEFAULT_PAGE_SIZE,\n ...props.query,\n }\n } else {\n // Deprecated props were used\n const queryFilters = getAdditionalFilters(\n props.searchParams,\n props.sqlOperator,\n props.additionalFiltersSessionStorageKey,\n )\n query = {\n sql: props.sql!,\n limit: props.limit ?? DEFAULT_PAGE_SIZE,\n sort: defaultSortItems,\n additionalFilters: queryFilters,\n }\n }\n\n return {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId: entityId,\n query: query,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |\n SynapseConstants.BUNDLE_MASK_QUERY_COUNT |\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_MAX_ROWS_PER_PAGE |\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS |\n SynapseConstants.BUNDLE_MASK_SUM_FILES_SIZE_BYTES |\n SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON,\n }\n }, [\n defaultSortItems,\n entityId,\n props.additionalFiltersSessionStorageKey,\n props.limit,\n props.query,\n props.searchParams,\n props.sql,\n props.sqlOperator,\n ])\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey = JSON.stringify(initQueryRequest)\n\n return (\n <QueryWrapper\n {...props}\n initQueryRequest={initQueryRequest}\n isInfinite\n key={queryWrapperKey}\n >\n <QueryVisualizationWrapper\n rgbIndex={props.rgbIndex}\n unitDescription={props.unitDescription}\n columnAliases={columnAliases}\n noContentPlaceholderType={\n props.noContentPlaceholderType ?? NoContentPlaceholderType.STATIC\n }\n >\n <QueryWrapperErrorBoundary>\n {sortConfig && <QuerySortSelector sortConfig={sortConfig} />}\n {topLevelEnumeratedFacetToFilter && (\n <ColumnFilter\n topLevelEnumeratedFacetToFilter={topLevelEnumeratedFacetToFilter}\n />\n )}\n <RowSetView\n cardConfiguration={props.cardConfiguration}\n initialLimit={props.initialLimit}\n multiCardList={props.multiCardList}\n />\n </QueryWrapperErrorBoundary>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default CardContainerLogic\n"],"names":["CardContainerLogic","props","deprecatedSql","sql","entityId","parseEntityIdFromSqlStatement","sortConfig","columnAliases","topLevelEnumeratedFacetToFilter","defaultSortItems","useMemo","initQueryRequest","query","DEFAULT_PAGE_SIZE","queryFilters","getAdditionalFilters","SynapseConstants.BUNDLE_MASK_QUERY_RESULTS","SynapseConstants.BUNDLE_MASK_QUERY_COUNT","SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS","SynapseConstants.BUNDLE_MASK_QUERY_MAX_ROWS_PER_PAGE","SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS","SynapseConstants.BUNDLE_MASK_QUERY_FACETS","SynapseConstants.BUNDLE_MASK_SUM_FILES_SIZE_BYTES","SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON","queryWrapperKey","createElement","QueryWrapper","jsx","QueryVisualizationWrapper","NoContentPlaceholderType","QueryWrapperErrorBoundary","QuerySortSelector","ColumnFilter","RowSetView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJO,SAASA,GAAmBC,GAAgC;AACjE,QAAM,EAAE,KAAKC,EAAA,IAAkBD,GACzBE,IAAMF,EAAM,OAAO,OAAOC,KAAiB,IAC3CE,IAAWC,EAA8BF,CAAG,GAE5C,EAAE,YAAAG,GAAY,eAAAC,GAAe,iCAAAC,EAAA,IAAoCP,GACjEQ,IAAmBC;AAAA,IACvB,MACEJ,IACI;AAAA,MACE;AAAA,QACE,QAAQA,EAAW;AAAA,QACnB,WAAWA,EAAW;AAAA,MAAA;AAAA,IACxB,IAEF;AAAA,IACN,CAACA,CAAU;AAAA,EAAA,GAGPK,IAAuCD,EAAQ,MAAM;AACzD,QAAIE;AACJ,QAAIX,EAAM;AACR,MAAAW,IAAQ;AAAA,QACN,MAAMH;AAAA,QACN,OAAOI;AAAA,QACP,GAAGZ,EAAM;AAAA,MAAA;AAAA,SAEN;AAEL,YAAMa,IAAeC;AAAA,QACnBd,EAAM;AAAA,QACNA,EAAM;AAAA,QACNA,EAAM;AAAA,MAAA;AAER,MAAAW,IAAQ;AAAA,QACN,KAAKX,EAAM;AAAA,QACX,OAAOA,EAAM,SAASY;AAAA,QACtB,MAAMJ;AAAA,QACN,mBAAmBK;AAAA,MAAA;AAAA,IAEvB;AAEA,WAAO;AAAA,MACL,cAAc;AAAA,MACd,UAAAV;AAAA,MACA,OAAAQ;AAAA,MACA,UACEI,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC;AAAAA,IAAiB;AAAA,EAEvB,GAAG;AAAA,IACDd;AAAA,IACAL;AAAA,IACAH,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,EAAA,CACP,GAQKuB,IAAkB,KAAK,UAAUb,CAAgB;AAEvD,SACE,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGzB;AAAA,MACJ,kBAAAU;AAAA,MACA,YAAU;AAAA,MACV,KAAKa;AAAA,IAAA;AAAA,IAEL,gBAAAG;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAU3B,EAAM;AAAA,QAChB,iBAAiBA,EAAM;AAAA,QACvB,eAAAM;AAAA,QACA,0BACEN,EAAM,4BAA4B4B,EAAyB;AAAA,QAG7D,4BAACC,GAAA,EACE,UAAA;AAAA,UAAAxB,KAAc,gBAAAqB,EAACI,KAAkB,YAAAzB,EAAA,CAAwB;AAAA,UACzDE,KACC,gBAAAmB;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,iCAAAxB;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJ,gBAAAmB;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,mBAAmBhC,EAAM;AAAA,cACzB,cAAcA,EAAM;AAAA,cACpB,eAAeA,EAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACvB,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAGN;"}
1
+ {"version":3,"file":"CardContainerLogic.js","sources":["../../../src/components/CardContainerLogic/CardContainerLogic.tsx"],"sourcesContent":["import { CardConfiguration } from '@/components/CardContainer/CardConfiguration'\nimport { CardLink } from '@/components/CardContainer/CardLink'\nimport { LockedColumn, SynapseConstants, UniqueFacetIdentifier } from '@/utils'\nimport {\n getAdditionalFilters,\n parseEntityIdFromSqlStatement,\n SQLOperator,\n} from '@/utils/functions/SqlFunctions'\nimport { DEFAULT_PAGE_SIZE } from '@/utils/SynapseConstants'\nimport {\n Query,\n QueryBundleRequest,\n SelectColumn,\n SortDirection,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useMemo } from 'react'\nimport ColumnFilter from '../ColumnFilter/ColumnFilter'\nimport { SxProps } from '@mui/material'\nimport { IconSvgProps } from '../IconSvg'\nimport QuerySortSelector from '../QuerySortSelector'\nimport {\n QueryVisualizationWrapper,\n QueryVisualizationWrapperProps,\n} from '../QueryVisualizationWrapper'\nimport { QueryWrapper } from '../QueryWrapper'\nimport { QueryWrapperErrorBoundary } from '../QueryWrapperErrorBoundary'\nimport { RowSetView } from '../QueryWrapperPlotNav/RowSetView'\nimport { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\n\n/**\n * Used when a column value should link to an external URL defined by a value in another column.\n * Currently only works in SynapseTable (not cards!)\n */\nexport interface ColumnSpecifiedLink {\n isMarkdown: false\n /* The column which should have the displayed value */\n matchColumnName: string\n /* The column which has the link. If the link is empty, the value will be displayed without a link. */\n linkColumnName: string\n // If set, also show a tooltip\n tooltipText?: string\n}\n\n/**\n * Used when a column value should be previewed\n * Currently only works in SynapseTable (not cards!)\n */\nexport interface EntityImage {\n // the columns whos value will be used for the markdown\n matchColumnName: string\n isEntityImage: boolean\n}\n\nexport type MarkdownLink = {\n isMarkdown: true\n // the columns whos value will be used for the markdown\n matchColumnName: string\n // If set, also show a tooltip\n tooltipText?: string\n}\n\nexport type SortConfiguration = {\n // the column that the query should be sorted on by default\n defaultColumn: string\n // the direction that the defaultColumn should be sorted on by default\n defaultDirection: SortDirection\n // the columns that the UI should surface as sortable\n sortableColumns: string[]\n}\n\nexport type CTACardLink = {\n // link text\n text: string\n // column name to use for href\n link: string\n}\n\nexport type DescriptionConfig = {\n isMarkdown?: boolean\n showFullDescriptionByDefault?: boolean\n}\n\nexport type MapValueToReactComponentConfig = {\n // The column to apply the mapping to\n matchColumnName: string\n Component: React.ComponentType<{\n /* The value of the table cell. If the column is a _LIST type, then the LIST will be parsed and this will be a string array. */\n value: string | string[] | null\n selectColumn: SelectColumn\n }>\n // discriminator\n isMapValueToReactNodeConfig: true\n}\n\n// Specify the indices in the values [] that should be rendered specially\nexport type LabelLinkConfig = (\n | MarkdownLink\n | CardLink\n | ColumnSpecifiedLink\n | EntityImage\n | MapValueToReactComponentConfig\n)[]\n\nexport type ColumnIconConfig = IconSvgProps & {\n containerSx?: SxProps\n}\n\nexport type ColumnIconConfigs = {\n columns: {\n [index: string]: {\n [index: string]: ColumnIconConfig\n }\n }\n}\n\nexport type QueryOrDeprecatedSearchParams = {\n /** The initial SQL query which will be used to populate the data in the component */\n query?: Query\n /** @deprecated use `query` */\n sql?: string\n /** Optional limit for the number of cards shown per page\n * @deprecated use `query */\n limit?: number\n /** Applies filters to the query where the key is the column name and the value is the value to filter on.\n * The filter function is controlled by sqlOperator.\n * @deprecated use `query` */\n searchParams?: Record<string, string>\n /** Operator used in the filter created using the searchParams prop\n * @deprecated use `query` */\n sqlOperator?: SQLOperator\n}\n\nexport type CardContainerLogicProps = QueryOrDeprecatedSearchParams & {\n /** Optional title to display above the component */\n title?: string\n isAlignToLeftNav?: boolean\n /** Provide a `SortConfiguration` that can be used to render UI to toggle the sorting of the cards. */\n sortConfig?: SortConfiguration\n /** Configuration used to render UI that can be used to alter a filter against a column with enumerated facets. */\n topLevelEnumeratedFacetToFilter?: UniqueFacetIdentifier\n /** Optional column to 'lock'; Values and filter controls for a locked column will not be displayed in the UI. */\n lockedColumn?: LockedColumn\n /** Optionally limit the initial number of cards shown on the first page */\n initialLimit?: number\n multiCardList?: boolean\n cardConfiguration: CardConfiguration\n} & Pick<\n QueryVisualizationWrapperProps,\n | 'rgbIndex'\n | 'unitDescription'\n | 'columnAliases'\n | 'noContentPlaceholderType'\n | 'additionalFiltersSessionStorageKey'\n >\n\n/**\n * Class wraps around CardContainer and serves as a standalone logic container for rendering cards.\n */\nexport function CardContainerLogic(props: CardContainerLogicProps) {\n const { sql: deprecatedSql } = props\n const sql = props.query?.sql ?? deprecatedSql ?? ''\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const { sortConfig, columnAliases, topLevelEnumeratedFacetToFilter } = props\n const defaultSortItems = useMemo(\n () =>\n sortConfig\n ? [\n {\n column: sortConfig.defaultColumn,\n direction: sortConfig.defaultDirection,\n },\n ]\n : undefined,\n [sortConfig],\n )\n\n const initQueryRequest: QueryBundleRequest = useMemo(() => {\n let query: Query\n if (props.query) {\n query = {\n sort: defaultSortItems,\n limit: DEFAULT_PAGE_SIZE,\n ...props.query,\n }\n } else {\n // Deprecated props were used\n const queryFilters = getAdditionalFilters(\n props.searchParams,\n props.sqlOperator,\n props.additionalFiltersSessionStorageKey,\n )\n query = {\n sql: props.sql!,\n limit: props.limit ?? DEFAULT_PAGE_SIZE,\n sort: defaultSortItems,\n additionalFilters: queryFilters,\n }\n }\n\n return {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId: entityId,\n query: query,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |\n SynapseConstants.BUNDLE_MASK_QUERY_COUNT |\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_MAX_ROWS_PER_PAGE |\n SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |\n SynapseConstants.BUNDLE_MASK_QUERY_FACETS |\n SynapseConstants.BUNDLE_MASK_SUM_FILES_SIZE_BYTES |\n SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON,\n }\n }, [\n defaultSortItems,\n entityId,\n props.additionalFiltersSessionStorageKey,\n props.limit,\n props.query,\n props.searchParams,\n props.sql,\n props.sqlOperator,\n ])\n\n /**\n * Fully re-render the uncontrolled QueryWrapper component when the initial query changes. This eliminates a class of\n * bugs where our 'derived' state (the current query), which should be reset, is out of sync with props.\n *\n * See https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key\n */\n const queryWrapperKey = JSON.stringify(initQueryRequest)\n\n return (\n <QueryWrapper\n {...props}\n initQueryRequest={initQueryRequest}\n isInfinite\n key={queryWrapperKey}\n >\n <QueryVisualizationWrapper\n rgbIndex={props.rgbIndex}\n unitDescription={props.unitDescription}\n columnAliases={columnAliases}\n noContentPlaceholderType={\n props.noContentPlaceholderType ?? NoContentPlaceholderType.STATIC\n }\n >\n <QueryWrapperErrorBoundary>\n {sortConfig && <QuerySortSelector sortConfig={sortConfig} />}\n {topLevelEnumeratedFacetToFilter && (\n <ColumnFilter\n topLevelEnumeratedFacetToFilter={topLevelEnumeratedFacetToFilter}\n />\n )}\n <RowSetView\n cardConfiguration={props.cardConfiguration}\n initialLimit={props.initialLimit}\n multiCardList={props.multiCardList}\n />\n </QueryWrapperErrorBoundary>\n </QueryVisualizationWrapper>\n </QueryWrapper>\n )\n}\n\nexport default CardContainerLogic\n"],"names":["CardContainerLogic","props","deprecatedSql","sql","entityId","parseEntityIdFromSqlStatement","sortConfig","columnAliases","topLevelEnumeratedFacetToFilter","defaultSortItems","useMemo","initQueryRequest","query","DEFAULT_PAGE_SIZE","queryFilters","getAdditionalFilters","SynapseConstants.BUNDLE_MASK_QUERY_RESULTS","SynapseConstants.BUNDLE_MASK_QUERY_COUNT","SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS","SynapseConstants.BUNDLE_MASK_QUERY_MAX_ROWS_PER_PAGE","SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS","SynapseConstants.BUNDLE_MASK_QUERY_FACETS","SynapseConstants.BUNDLE_MASK_SUM_FILES_SIZE_BYTES","SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON","queryWrapperKey","createElement","QueryWrapper","jsx","QueryVisualizationWrapper","NoContentPlaceholderType","QueryWrapperErrorBoundary","QuerySortSelector","ColumnFilter","RowSetView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JO,SAASA,GAAmBC,GAAgC;AACjE,QAAM,EAAE,KAAKC,EAAA,IAAkBD,GACzBE,IAAMF,EAAM,OAAO,OAAOC,KAAiB,IAC3CE,IAAWC,EAA8BF,CAAG,GAE5C,EAAE,YAAAG,GAAY,eAAAC,GAAe,iCAAAC,EAAA,IAAoCP,GACjEQ,IAAmBC;AAAA,IACvB,MACEJ,IACI;AAAA,MACE;AAAA,QACE,QAAQA,EAAW;AAAA,QACnB,WAAWA,EAAW;AAAA,MAAA;AAAA,IACxB,IAEF;AAAA,IACN,CAACA,CAAU;AAAA,EAAA,GAGPK,IAAuCD,EAAQ,MAAM;AACzD,QAAIE;AACJ,QAAIX,EAAM;AACR,MAAAW,IAAQ;AAAA,QACN,MAAMH;AAAA,QACN,OAAOI;AAAA,QACP,GAAGZ,EAAM;AAAA,MAAA;AAAA,SAEN;AAEL,YAAMa,IAAeC;AAAA,QACnBd,EAAM;AAAA,QACNA,EAAM;AAAA,QACNA,EAAM;AAAA,MAAA;AAER,MAAAW,IAAQ;AAAA,QACN,KAAKX,EAAM;AAAA,QACX,OAAOA,EAAM,SAASY;AAAA,QACtB,MAAMJ;AAAA,QACN,mBAAmBK;AAAA,MAAA;AAAA,IAEvB;AAEA,WAAO;AAAA,MACL,cAAc;AAAA,MACd,UAAAV;AAAA,MACA,OAAAQ;AAAA,MACA,UACEI,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC;AAAAA,IAAiB;AAAA,EAEvB,GAAG;AAAA,IACDd;AAAA,IACAL;AAAA,IACAH,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,IACNA,EAAM;AAAA,EAAA,CACP,GAQKuB,IAAkB,KAAK,UAAUb,CAAgB;AAEvD,SACE,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGzB;AAAA,MACJ,kBAAAU;AAAA,MACA,YAAU;AAAA,MACV,KAAKa;AAAA,IAAA;AAAA,IAEL,gBAAAG;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAU3B,EAAM;AAAA,QAChB,iBAAiBA,EAAM;AAAA,QACvB,eAAAM;AAAA,QACA,0BACEN,EAAM,4BAA4B4B,EAAyB;AAAA,QAG7D,4BAACC,GAAA,EACE,UAAA;AAAA,UAAAxB,KAAc,gBAAAqB,EAACI,KAAkB,YAAAzB,EAAA,CAAwB;AAAA,UACzDE,KACC,gBAAAmB;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,iCAAAxB;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJ,gBAAAmB;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,mBAAmBhC,EAAM;AAAA,cACzB,cAAcA,EAAM;AAAA,cACpB,eAAeA,EAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACvB,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAGN;"}
@@ -1,3 +1,3 @@
1
- export type { SortConfiguration, ColumnIconConfigs, MarkdownLink, LabelLinkConfig, DescriptionConfig, ColumnSpecifiedLink, CardContainerLogicProps, } from './CardContainerLogic';
1
+ export type { SortConfiguration, ColumnIconConfig, ColumnIconConfigs, MarkdownLink, LabelLinkConfig, DescriptionConfig, ColumnSpecifiedLink, CardContainerLogicProps, } from './CardContainerLogic';
2
2
  export { default, CardContainerLogic } from './CardContainerLogic';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainerLogic/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainerLogic/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -41,11 +41,14 @@ import "@mui/material/SvgIcon";
41
41
  import "../../assets/icons/AccessPending.svg.js";
42
42
  import "../../assets/icons/AccessPendingCloud.svg.js";
43
43
  import "../../assets/icons/FileWithShield.svg.js";
44
+ import "../../assets/icons/MultiFile.svg.js";
45
+ import "../../assets/icons/UnpackagableFile.svg.js";
44
46
  import "../../assets/icons/bioChemicalPhysical.svg.js";
45
47
  import "../../assets/icons/computationalTool.svg.js";
46
48
  import "../../assets/icons/dataReuse.svg.js";
47
49
  import "../../assets/icons/inSilicoModel.svg.js";
48
50
  import "../../assets/icons/modelSystem.svg.js";
51
+ import "../../assets/mui_components/PackagableFile.svg.js";
49
52
  import "../../assets/icons/spatialProfiling.svg.js";
50
53
  import "@mui/icons-material";
51
54
  import "react-error-boundary";
@@ -57,7 +60,7 @@ import "react-transition-group";
57
60
  import "@mui/system";
58
61
  import "../GenericCard/Linkify.js";
59
62
  import "../GenericCard/GenericCard.js";
60
- function Wt(I) {
63
+ function to(I) {
61
64
  const {
62
65
  entityId: r,
63
66
  titleColumnName: f,
@@ -68,7 +71,7 @@ function Wt(I) {
68
71
  headerImageFileHandleColumnName: x,
69
72
  cardDeckType: a,
70
73
  linkConfig: B
71
- } = I, s = b(r), h = {
74
+ } = I, p = b(r), h = {
72
75
  concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
73
76
  entityId: r,
74
77
  partMask: G | K,
@@ -94,14 +97,14 @@ function Wt(I) {
94
97
  (i) => {
95
98
  const o = i.values;
96
99
  o.some((m) => m === null) && console.warn("Row has null value(s) when no nulls expected");
97
- const T = o[q], k = o[H], w = o[L], A = o[U] ?? "", _ = o[E] ?? "", S = o[F] ?? "", p = {};
100
+ const T = o[q], k = o[H], w = o[L], A = o[U] ?? "", _ = o[E] ?? "", S = o[F] ?? "", s = {};
98
101
  t?.queryResult.queryResults.headers.forEach(
99
102
  (m, Q) => {
100
- p[m.name] = Q;
103
+ s[m.name] = Q;
101
104
  }
102
105
  );
103
- const { href: v } = V(A, B, o, p), l = d(
104
- s.data,
106
+ const { href: v } = V(A, B, o, s), l = d(
107
+ p.data,
105
108
  _,
106
109
  `syn${i.rowId}`
107
110
  ), D = l ? /* @__PURE__ */ n(
@@ -110,7 +113,7 @@ function Wt(I) {
110
113
  fileHandleAssociation: l
111
114
  }
112
115
  ) : void 0, c = d(
113
- s.data,
116
+ p.data,
114
117
  S,
115
118
  `syn${i.rowId}`
116
119
  );
@@ -133,7 +136,7 @@ function Wt(I) {
133
136
  return /* @__PURE__ */ n(M, { cards: N || [], cardDeckType: a });
134
137
  }
135
138
  export {
136
- Wt as TableQueryCardDeck,
137
- Wt as default
139
+ to as TableQueryCardDeck,
140
+ to as default
138
141
  };
139
142
  //# sourceMappingURL=TableQueryCardDeck.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableQueryCardDeck.js","sources":["../../../src/components/CardDeck/TableQueryCardDeck.tsx"],"sourcesContent":["import { CardDeck } from '@/components/CardDeck/CardDeck'\nimport { CardDeckCardProps } from '@/components/CardDeck/CardDeckCardProps'\nimport { ImageFileHandle } from '@/components/widgets/ImageFileHandle'\nimport { useGetEntity } from '@/synapse-queries/entity/useEntity'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { CardLink } from '../CardContainer/CardLink'\nimport { getFileHandleAssociation, getLinkParams } from '../GenericCard'\n\nexport type TableQueryCardDeckProps = {\n entityId: string /* The table entity which should be queried */\n titleColumnName: string /* The column name for the title */\n descriptionColumnName: string /* The column name for the description */\n ctaButtonTextColumnName: string /* The column name for the call to action button text */\n ctaButtonURLColumnName: string /* The column name for the call to action button URL */\n titleIconFileHandleColumnName?: string /* The column name for the title icon image file */\n headerImageFileHandleColumnName?: string /* The column name for the header image file */\n cardDeckType?: 'cckp' | 'b2ai' /* The type of card deck (cckp or b2ai)*/\n linkConfig: CardLink /* The link configuration */\n}\n\n/**\n * Transforms a Synapse table into a card deck.\n */\nexport function TableQueryCardDeck(props: TableQueryCardDeckProps) {\n const {\n entityId,\n titleColumnName,\n descriptionColumnName,\n ctaButtonTextColumnName,\n ctaButtonURLColumnName,\n titleIconFileHandleColumnName,\n headerImageFileHandleColumnName,\n cardDeckType,\n linkConfig,\n } = props\n const entity = useGetEntity(entityId)\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `select * from ${entityId}`,\n },\n }\n const { data: queryResultBundle } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const titleColumnIndex = getFieldIndex(titleColumnName, queryResultBundle)\n const descriptionColumnIndex = getFieldIndex(\n descriptionColumnName,\n queryResultBundle,\n )\n const ctaButtonTextColumnIndex = getFieldIndex(\n ctaButtonTextColumnName,\n queryResultBundle,\n )\n const ctaButtonURLColumnIndex = getFieldIndex(\n ctaButtonURLColumnName,\n queryResultBundle,\n )\n const titleIconColumnIndex = getFieldIndex(\n titleIconFileHandleColumnName,\n queryResultBundle,\n )\n const headerImageColumnIndex = getFieldIndex(\n headerImageFileHandleColumnName,\n queryResultBundle,\n )\n\n const cards = queryResultBundle?.queryResult!.queryResults.rows.map(\n (el): CardDeckCardProps => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n // We cast values above assuming there are no null values, emit a warning just in case.\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const title = values[titleColumnIndex]\n const description = values[descriptionColumnIndex]\n const ctaButtonText = values[ctaButtonTextColumnIndex]\n const ctaButtonURL = values[ctaButtonURLColumnIndex] ?? ''\n const titleIconFileHandleIdValue = values[titleIconColumnIndex] ?? ''\n const headerImageFileHandleIdValue = values[headerImageColumnIndex] ?? ''\n\n const schema: Record<string, number> = {}\n queryResultBundle?.queryResult!.queryResults.headers.forEach(\n (header, colIndex) => {\n schema[header.name] = colIndex\n },\n )\n const { href } = getLinkParams(ctaButtonURL, linkConfig, values, schema)\n\n const titleIconFileHandleAssociation = getFileHandleAssociation(\n entity.data,\n titleIconFileHandleIdValue,\n `syn${el.rowId}`,\n )\n\n const titleIcon = titleIconFileHandleAssociation ? (\n <ImageFileHandle\n fileHandleAssociation={titleIconFileHandleAssociation}\n />\n ) : undefined\n\n const headerImageFileHandleAssociation = getFileHandleAssociation(\n entity.data,\n headerImageFileHandleIdValue,\n `syn${el.rowId}`,\n )\n\n const headerImage = headerImageFileHandleAssociation ? (\n <ImageFileHandle\n fileHandleAssociation={headerImageFileHandleAssociation}\n />\n ) : undefined\n\n return {\n title,\n description,\n ctaButtonText,\n ctaButtonURL: href,\n titleIcon,\n headerImage,\n cardDeckType,\n } satisfies CardDeckCardProps\n },\n )\n\n return <CardDeck cards={cards || []} cardDeckType={cardDeckType} />\n}\n\nexport default TableQueryCardDeck\n"],"names":["TableQueryCardDeck","props","entityId","titleColumnName","descriptionColumnName","ctaButtonTextColumnName","ctaButtonURLColumnName","titleIconFileHandleColumnName","headerImageFileHandleColumnName","cardDeckType","linkConfig","entity","useGetEntity","queryBundleRequest","SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS","SynapseConstants.BUNDLE_MASK_QUERY_RESULTS","queryResultBundle","useGetQueryResultBundle","titleColumnIndex","getFieldIndex","descriptionColumnIndex","ctaButtonTextColumnIndex","ctaButtonURLColumnIndex","titleIconColumnIndex","headerImageColumnIndex","cards","el","values","value","title","description","ctaButtonText","ctaButtonURL","titleIconFileHandleIdValue","headerImageFileHandleIdValue","schema","header","colIndex","href","getLinkParams","titleIconFileHandleAssociation","getFileHandleAssociation","titleIcon","jsx","ImageFileHandle","headerImageFileHandleAssociation","CardDeck"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAASA,GAAmBC,GAAgC;AACjE,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,+BAAAC;AAAA,IACA,iCAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACET,GACEU,IAASC,EAAaV,CAAQ,GAC9BW,IAAyC;AAAA,IAC7C,cAAc;AAAA,IACd,UAAAX;AAAA,IACA,UACEY,IACAC;AAAAA,IACF,OAAO;AAAA,MACL,KAAK,iBAAiBb,CAAQ;AAAA,IAAA;AAAA,EAChC,GAEI,EAAE,MAAMc,MACZC,EAAwBJ,CAAkB,GAEtCK,IAAmBC,EAAchB,GAAiBa,CAAiB,GACnEI,IAAyBD;AAAA,IAC7Bf;AAAA,IACAY;AAAA,EAAA,GAEIK,IAA2BF;AAAA,IAC/Bd;AAAA,IACAW;AAAA,EAAA,GAEIM,IAA0BH;AAAA,IAC9Bb;AAAA,IACAU;AAAA,EAAA,GAEIO,IAAuBJ;AAAA,IAC3BZ;AAAA,IACAS;AAAA,EAAA,GAEIQ,IAAyBL;AAAA,IAC7BX;AAAA,IACAQ;AAAA,EAAA,GAGIS,IAAQT,GAAmB,YAAa,aAAa,KAAK;AAAA,IAC9D,CAACU,MAA0B;AACzB,YAAMC,IAASD,EAAG;AAClB,MAAIC,EAAO,KAAK,CAAAC,MAASA,MAAU,IAAI,KAErC,QAAQ,KAAK,8CAA8C;AAG7D,YAAMC,IAAQF,EAAOT,CAAgB,GAC/BY,IAAcH,EAAOP,CAAsB,GAC3CW,IAAgBJ,EAAON,CAAwB,GAC/CW,IAAeL,EAAOL,CAAuB,KAAK,IAClDW,IAA6BN,EAAOJ,CAAoB,KAAK,IAC7DW,IAA+BP,EAAOH,CAAsB,KAAK,IAEjEW,IAAiC,CAAA;AACvC,MAAAnB,GAAmB,YAAa,aAAa,QAAQ;AAAA,QACnD,CAACoB,GAAQC,MAAa;AACpB,UAAAF,EAAOC,EAAO,IAAI,IAAIC;AAAA,QACxB;AAAA,MAAA;AAEF,YAAM,EAAE,MAAAC,EAAA,IAASC,EAAcP,GAActB,GAAYiB,GAAQQ,CAAM,GAEjEK,IAAiCC;AAAA,QACrC9B,EAAO;AAAA,QACPsB;AAAA,QACA,MAAMP,EAAG,KAAK;AAAA,MAAA,GAGVgB,IAAYF,IAChB,gBAAAG;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,uBAAuBJ;AAAA,QAAA;AAAA,MAAA,IAEvB,QAEEK,IAAmCJ;AAAA,QACvC9B,EAAO;AAAA,QACPuB;AAAA,QACA,MAAMR,EAAG,KAAK;AAAA,MAAA;AAShB,aAAO;AAAA,QACL,OAAAG;AAAA,QACA,aAAAC;AAAA,QACA,eAAAC;AAAA,QACA,cAAcO;AAAA,QACd,WAAAI;AAAA,QACA,aAZkBG,IAClB,gBAAAF;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,uBAAuBC;AAAA,UAAA;AAAA,QAAA,IAEvB;AAAA,QASF,cAAApC;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGF,2BAAQqC,GAAA,EAAS,OAAOrB,KAAS,CAAA,GAAI,cAAAhB,GAA4B;AACnE;"}
1
+ {"version":3,"file":"TableQueryCardDeck.js","sources":["../../../src/components/CardDeck/TableQueryCardDeck.tsx"],"sourcesContent":["import { CardDeck } from '@/components/CardDeck/CardDeck'\nimport { CardDeckCardProps } from '@/components/CardDeck/CardDeckCardProps'\nimport { ImageFileHandle } from '@/components/widgets/ImageFileHandle'\nimport { useGetEntity } from '@/synapse-queries/entity/useEntity'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { CardLink } from '../CardContainer/CardLink'\nimport { getFileHandleAssociation, getLinkParams } from '../GenericCard'\n\nexport type TableQueryCardDeckProps = {\n entityId: string /* The table entity which should be queried */\n titleColumnName: string /* The column name for the title */\n descriptionColumnName: string /* The column name for the description */\n ctaButtonTextColumnName: string /* The column name for the call to action button text */\n ctaButtonURLColumnName: string /* The column name for the call to action button URL */\n titleIconFileHandleColumnName?: string /* The column name for the title icon image file */\n headerImageFileHandleColumnName?: string /* The column name for the header image file */\n cardDeckType?: 'cckp' | 'b2ai' /* The type of card deck (cckp or b2ai)*/\n linkConfig: CardLink /* The link configuration */\n}\n\n/**\n * Transforms a Synapse table into a card deck.\n */\nexport function TableQueryCardDeck(props: TableQueryCardDeckProps) {\n const {\n entityId,\n titleColumnName,\n descriptionColumnName,\n ctaButtonTextColumnName,\n ctaButtonURLColumnName,\n titleIconFileHandleColumnName,\n headerImageFileHandleColumnName,\n cardDeckType,\n linkConfig,\n } = props\n const entity = useGetEntity(entityId)\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `select * from ${entityId}`,\n },\n }\n const { data: queryResultBundle } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const titleColumnIndex = getFieldIndex(titleColumnName, queryResultBundle)\n const descriptionColumnIndex = getFieldIndex(\n descriptionColumnName,\n queryResultBundle,\n )\n const ctaButtonTextColumnIndex = getFieldIndex(\n ctaButtonTextColumnName,\n queryResultBundle,\n )\n const ctaButtonURLColumnIndex = getFieldIndex(\n ctaButtonURLColumnName,\n queryResultBundle,\n )\n const titleIconColumnIndex = getFieldIndex(\n titleIconFileHandleColumnName,\n queryResultBundle,\n )\n const headerImageColumnIndex = getFieldIndex(\n headerImageFileHandleColumnName,\n queryResultBundle,\n )\n\n const cards = queryResultBundle?.queryResult!.queryResults.rows.map(\n (el): CardDeckCardProps => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n // We cast values above assuming there are no null values, emit a warning just in case.\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const title = values[titleColumnIndex]\n const description = values[descriptionColumnIndex]\n const ctaButtonText = values[ctaButtonTextColumnIndex]\n const ctaButtonURL = values[ctaButtonURLColumnIndex] ?? ''\n const titleIconFileHandleIdValue = values[titleIconColumnIndex] ?? ''\n const headerImageFileHandleIdValue = values[headerImageColumnIndex] ?? ''\n\n const schema: Record<string, number> = {}\n queryResultBundle?.queryResult!.queryResults.headers.forEach(\n (header, colIndex) => {\n schema[header.name] = colIndex\n },\n )\n const { href } = getLinkParams(ctaButtonURL, linkConfig, values, schema)\n\n const titleIconFileHandleAssociation = getFileHandleAssociation(\n entity.data,\n titleIconFileHandleIdValue,\n `syn${el.rowId}`,\n )\n\n const titleIcon = titleIconFileHandleAssociation ? (\n <ImageFileHandle\n fileHandleAssociation={titleIconFileHandleAssociation}\n />\n ) : undefined\n\n const headerImageFileHandleAssociation = getFileHandleAssociation(\n entity.data,\n headerImageFileHandleIdValue,\n `syn${el.rowId}`,\n )\n\n const headerImage = headerImageFileHandleAssociation ? (\n <ImageFileHandle\n fileHandleAssociation={headerImageFileHandleAssociation}\n />\n ) : undefined\n\n return {\n title,\n description,\n ctaButtonText,\n ctaButtonURL: href,\n titleIcon,\n headerImage,\n cardDeckType,\n } satisfies CardDeckCardProps\n },\n )\n\n return <CardDeck cards={cards || []} cardDeckType={cardDeckType} />\n}\n\nexport default TableQueryCardDeck\n"],"names":["TableQueryCardDeck","props","entityId","titleColumnName","descriptionColumnName","ctaButtonTextColumnName","ctaButtonURLColumnName","titleIconFileHandleColumnName","headerImageFileHandleColumnName","cardDeckType","linkConfig","entity","useGetEntity","queryBundleRequest","SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS","SynapseConstants.BUNDLE_MASK_QUERY_RESULTS","queryResultBundle","useGetQueryResultBundle","titleColumnIndex","getFieldIndex","descriptionColumnIndex","ctaButtonTextColumnIndex","ctaButtonURLColumnIndex","titleIconColumnIndex","headerImageColumnIndex","cards","el","values","value","title","description","ctaButtonText","ctaButtonURL","titleIconFileHandleIdValue","headerImageFileHandleIdValue","schema","header","colIndex","href","getLinkParams","titleIconFileHandleAssociation","getFileHandleAssociation","titleIcon","jsx","ImageFileHandle","headerImageFileHandleAssociation","CardDeck"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAASA,GAAmBC,GAAgC;AACjE,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,+BAAAC;AAAA,IACA,iCAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACET,GACEU,IAASC,EAAaV,CAAQ,GAC9BW,IAAyC;AAAA,IAC7C,cAAc;AAAA,IACd,UAAAX;AAAA,IACA,UACEY,IACAC;AAAAA,IACF,OAAO;AAAA,MACL,KAAK,iBAAiBb,CAAQ;AAAA,IAAA;AAAA,EAChC,GAEI,EAAE,MAAMc,MACZC,EAAwBJ,CAAkB,GAEtCK,IAAmBC,EAAchB,GAAiBa,CAAiB,GACnEI,IAAyBD;AAAA,IAC7Bf;AAAA,IACAY;AAAA,EAAA,GAEIK,IAA2BF;AAAA,IAC/Bd;AAAA,IACAW;AAAA,EAAA,GAEIM,IAA0BH;AAAA,IAC9Bb;AAAA,IACAU;AAAA,EAAA,GAEIO,IAAuBJ;AAAA,IAC3BZ;AAAA,IACAS;AAAA,EAAA,GAEIQ,IAAyBL;AAAA,IAC7BX;AAAA,IACAQ;AAAA,EAAA,GAGIS,IAAQT,GAAmB,YAAa,aAAa,KAAK;AAAA,IAC9D,CAACU,MAA0B;AACzB,YAAMC,IAASD,EAAG;AAClB,MAAIC,EAAO,KAAK,CAAAC,MAASA,MAAU,IAAI,KAErC,QAAQ,KAAK,8CAA8C;AAG7D,YAAMC,IAAQF,EAAOT,CAAgB,GAC/BY,IAAcH,EAAOP,CAAsB,GAC3CW,IAAgBJ,EAAON,CAAwB,GAC/CW,IAAeL,EAAOL,CAAuB,KAAK,IAClDW,IAA6BN,EAAOJ,CAAoB,KAAK,IAC7DW,IAA+BP,EAAOH,CAAsB,KAAK,IAEjEW,IAAiC,CAAA;AACvC,MAAAnB,GAAmB,YAAa,aAAa,QAAQ;AAAA,QACnD,CAACoB,GAAQC,MAAa;AACpB,UAAAF,EAAOC,EAAO,IAAI,IAAIC;AAAA,QACxB;AAAA,MAAA;AAEF,YAAM,EAAE,MAAAC,EAAA,IAASC,EAAcP,GAActB,GAAYiB,GAAQQ,CAAM,GAEjEK,IAAiCC;AAAA,QACrC9B,EAAO;AAAA,QACPsB;AAAA,QACA,MAAMP,EAAG,KAAK;AAAA,MAAA,GAGVgB,IAAYF,IAChB,gBAAAG;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,uBAAuBJ;AAAA,QAAA;AAAA,MAAA,IAEvB,QAEEK,IAAmCJ;AAAA,QACvC9B,EAAO;AAAA,QACPuB;AAAA,QACA,MAAMR,EAAG,KAAK;AAAA,MAAA;AAShB,aAAO;AAAA,QACL,OAAAG;AAAA,QACA,aAAAC;AAAA,QACA,eAAAC;AAAA,QACA,cAAcO;AAAA,QACd,WAAAI;AAAA,QACA,aAZkBG,IAClB,gBAAAF;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,uBAAuBC;AAAA,UAAA;AAAA,QAAA,IAEvB;AAAA,QASF,cAAApC;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGF,2BAAQqC,GAAA,EAAS,OAAOrB,KAAS,CAAA,GAAI,cAAAhB,GAA4B;AACnE;"}