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
@@ -1 +1 @@
1
- {"version":3,"file":"CardFooter.js","sources":["../../../../src/components/row_renderers/utils/CardFooter.tsx"],"sourcesContent":["import { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport { Component, Fragment } from 'react'\nimport { ColumnIconConfigs } from '../../CardContainerLogic'\nimport IconSVG from '../../IconSvg/IconSvg'\n\nexport type CardLabel = {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n}\n\ntype State = {\n isShowMoreOn: boolean\n isDesktop: boolean\n}\n\ntype CardFooterProps = {\n values: CardLabel[]\n isHeader: boolean\n secondaryLabelLimit?: number\n columnIconOptions?: ColumnIconConfigs\n className?: string\n cardTopContent?: React.ReactNode\n}\n\nclass CardFooter extends Component<CardFooterProps, State> {\n constructor(props: CardFooterProps) {\n super(props)\n this.state = {\n isShowMoreOn: false,\n isDesktop: false,\n }\n this.toggleShowMore = this.toggleShowMore.bind(this)\n this.updatePredicate = this.updatePredicate.bind(this)\n }\n\n toggleShowMore() {\n this.setState({\n isShowMoreOn: !this.state.isShowMoreOn,\n })\n }\n\n componentDidMount() {\n this.updatePredicate()\n window.addEventListener('resize', this.updatePredicate)\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.updatePredicate)\n }\n\n updatePredicate() {\n this.setState({ isDesktop: window.innerWidth > 600 })\n }\n\n renderRowValue = (\n key: string,\n value: React.ReactNode,\n tableColumnName?: string,\n ) => {\n const columnIconOptions = this.props.columnIconOptions\n if (typeof value !== 'string') {\n // value can sometimes be a react element\n return value\n }\n const valueAsString = value.trim()\n const doiLink = convertDoiToLink(valueAsString)\n\n if (doiLink) {\n return (\n <a target=\"_blank\" rel=\"noopener noreferrer\" href={doiLink}>\n {valueAsString}\n </a>\n )\n }\n // Only display icon when columnIconOptions is set in config file\n if (\n columnIconOptions &&\n columnIconOptions.columns &&\n tableColumnName &&\n Object.keys(columnIconOptions.columns).includes(tableColumnName)\n ) {\n const iconProps = columnIconOptions.columns[tableColumnName][value]\n if (!iconProps) {\n // if we can't find an icon to match, just return the value\n return <span>{value}</span>\n } else {\n iconProps.sx = { ...iconProps.sx, paddingRight: '0.2rem' }\n return (\n <>\n <IconSVG {...iconProps}></IconSVG>\n <span style={{ verticalAlign: 'middle' }}>{value}</span>\n </>\n )\n }\n }\n\n return value\n }\n renderRows = (values: CardLabel[], limit: number, isDesktop: boolean) => {\n return values.map((label, index) => {\n const { columnDisplayName, value: labelValue, columnName } = label\n const hideClass = index >= limit ? 'SRC-hidden' : ''\n const value = this.renderRowValue(\n columnDisplayName,\n labelValue,\n columnName,\n )\n if (isDesktop) {\n return (\n <tr className={'SRC-cardRowDesktop ' + hideClass} key={index}>\n <td className={'SRC-verticalAlignTop SRC-row-label'}>\n {columnDisplayName}\n </td>\n <td className={'SRC-row-data SRC-limitMaxWidth '}>{value}</td>\n </tr>\n )\n }\n return (\n <Fragment key={index}>\n <tr className={'SRC-cardRowMobile ' + hideClass}>\n <td className={'SRC-verticalAlignTop SRC-row-label'}>\n {columnDisplayName}\n </td>\n </tr>\n <tr className={'SRC-cardRowMobile ' + hideClass}>\n <td className=\"SRC-row-data SRC-limitMaxWidth\">{value}</td>\n </tr>\n </Fragment>\n )\n })\n }\n\n render() {\n const { values, secondaryLabelLimit = 3, cardTopContent } = this.props\n const { isShowMoreOn, isDesktop } = this.state\n const valuesFiltered = values.filter(el => Boolean(el.value))\n const hasMoreValuesThanLimit = valuesFiltered.length > secondaryLabelLimit\n const limit =\n !hasMoreValuesThanLimit || isShowMoreOn ? Infinity : secondaryLabelLimit\n return (\n <div\n data-testid=\"CardFooter\"\n className={`SRC-cardMetadata ${this.props.className ?? ''}`}\n >\n {cardTopContent}\n <table\n style={{\n width: '100%',\n wordBreak: 'break-word',\n }}\n >\n <colgroup>\n <col className=\"SRC-cardMetadata-column1\" />\n <col className=\"SRC-cardMetadata-column2\" />\n </colgroup>\n <tbody>\n {this.renderRows(valuesFiltered, limit, isDesktop)}\n {hasMoreValuesThanLimit && (\n <tr className=\"SRC-cardRow\">\n <td>\n <a\n style={{ textAlign: 'left', margin: 0, padding: 0 }}\n onClick={this.toggleShowMore}\n className=\"highlight-link\"\n >\n Show {isShowMoreOn ? 'Less' : 'More'}\n <IconSVG\n icon={isShowMoreOn ? 'expandLess' : 'expandMore'}\n />\n </a>\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n )\n }\n}\nexport default CardFooter\n"],"names":["CardFooter","Component","props","key","value","tableColumnName","columnIconOptions","valueAsString","doiLink","convertDoiToLink","jsx","iconProps","jsxs","Fragment","IconSVG","values","limit","isDesktop","label","index","columnDisplayName","labelValue","columnName","hideClass","secondaryLabelLimit","cardTopContent","isShowMoreOn","valuesFiltered","el","hasMoreValuesThanLimit"],"mappings":"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"}
1
+ {"version":3,"file":"CardFooter.js","sources":["../../../../src/components/row_renderers/utils/CardFooter.tsx"],"sourcesContent":["import { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport { Component, Fragment } from 'react'\nimport IconSVG from '../../IconSvg/IconSvg'\n\nexport type CardLabel = {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n}\n\ntype State = {\n isShowMoreOn: boolean\n isDesktop: boolean\n}\n\ntype CardFooterProps = {\n values: CardLabel[]\n isHeader: boolean\n secondaryLabelLimit?: number\n className?: string\n cardTopContent?: React.ReactNode\n}\n\nclass CardFooter extends Component<CardFooterProps, State> {\n constructor(props: CardFooterProps) {\n super(props)\n this.state = {\n isShowMoreOn: false,\n isDesktop: false,\n }\n this.toggleShowMore = this.toggleShowMore.bind(this)\n this.updatePredicate = this.updatePredicate.bind(this)\n }\n\n toggleShowMore() {\n this.setState({\n isShowMoreOn: !this.state.isShowMoreOn,\n })\n }\n\n componentDidMount() {\n this.updatePredicate()\n window.addEventListener('resize', this.updatePredicate)\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.updatePredicate)\n }\n\n updatePredicate() {\n this.setState({ isDesktop: window.innerWidth > 600 })\n }\n\n renderRowValue = (value: React.ReactNode) => {\n if (typeof value !== 'string') {\n // value can sometimes be a react element\n return value\n }\n const valueAsString = value.trim()\n const doiLink = convertDoiToLink(valueAsString)\n if (doiLink) {\n return (\n <a target=\"_blank\" rel=\"noopener noreferrer\" href={doiLink}>\n {valueAsString}\n </a>\n )\n }\n return value\n }\n renderRows = (values: CardLabel[], limit: number, isDesktop: boolean) => {\n return values.map((label, index) => {\n const { columnDisplayName, value: labelValue } = label\n const hideClass = index >= limit ? 'SRC-hidden' : ''\n const value = this.renderRowValue(labelValue)\n if (isDesktop) {\n return (\n <tr className={'SRC-cardRowDesktop ' + hideClass} key={index}>\n <td className={'SRC-verticalAlignTop SRC-row-label'}>\n {columnDisplayName}\n </td>\n <td className={'SRC-row-data SRC-limitMaxWidth '}>{value}</td>\n </tr>\n )\n }\n return (\n <Fragment key={index}>\n <tr className={'SRC-cardRowMobile ' + hideClass}>\n <td className={'SRC-verticalAlignTop SRC-row-label'}>\n {columnDisplayName}\n </td>\n </tr>\n <tr className={'SRC-cardRowMobile ' + hideClass}>\n <td className=\"SRC-row-data SRC-limitMaxWidth\">{value}</td>\n </tr>\n </Fragment>\n )\n })\n }\n\n render() {\n const { values, secondaryLabelLimit = 3, cardTopContent } = this.props\n const { isShowMoreOn, isDesktop } = this.state\n const valuesFiltered = values.filter(el => Boolean(el.value))\n const hasMoreValuesThanLimit = valuesFiltered.length > secondaryLabelLimit\n const limit =\n !hasMoreValuesThanLimit || isShowMoreOn ? Infinity : secondaryLabelLimit\n return (\n <div\n data-testid=\"CardFooter\"\n className={`SRC-cardMetadata ${this.props.className ?? ''}`}\n >\n {cardTopContent}\n <table\n style={{\n width: '100%',\n wordBreak: 'break-word',\n }}\n >\n <colgroup>\n <col className=\"SRC-cardMetadata-column1\" />\n <col className=\"SRC-cardMetadata-column2\" />\n </colgroup>\n <tbody>\n {this.renderRows(valuesFiltered, limit, isDesktop)}\n {hasMoreValuesThanLimit && (\n <tr className=\"SRC-cardRow\">\n <td>\n <a\n style={{ textAlign: 'left', margin: 0, padding: 0 }}\n onClick={this.toggleShowMore}\n className=\"highlight-link\"\n >\n Show {isShowMoreOn ? 'Less' : 'More'}\n <IconSVG\n icon={isShowMoreOn ? 'expandLess' : 'expandMore'}\n />\n </a>\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n )\n }\n}\nexport default CardFooter\n"],"names":["CardFooter","Component","props","value","valueAsString","doiLink","convertDoiToLink","jsx","values","limit","isDesktop","label","index","columnDisplayName","labelValue","hideClass","jsxs","Fragment","secondaryLabelLimit","cardTopContent","isShowMoreOn","valuesFiltered","el","hasMoreValuesThanLimit","IconSVG"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ ._triggerWrapper_9prk2_1{display:inline-block}._paper_9prk2_5{display:flex;flex-direction:column;overflow:hidden}
@@ -0,0 +1,28 @@
1
+ import { ButtonProps } from '@mui/material';
2
+ import { PropsWithChildren, ReactNode } from 'react';
3
+ export type HoverPopoverPlacement = 'top' | 'bottom' | 'left' | 'right';
4
+ export type HoverPopoverProps = PropsWithChildren<{
5
+ popoverContent: ReactNode;
6
+ /** Optional title rendered as a sticky header above the scrollable content */
7
+ title?: string;
8
+ placement?: HoverPopoverPlacement;
9
+ maxWidth?: string | number;
10
+ minWidth?: string | number;
11
+ /** Max height of the scrollable content area. Default 400px. */
12
+ maxHeight?: string | number;
13
+ actionButton?: {
14
+ content: ReactNode;
15
+ color?: ButtonProps['color'];
16
+ variant?: ButtonProps['variant'];
17
+ onClick: () => void;
18
+ /** If true, closes the popover after the button is clicked */
19
+ closeOnClick?: boolean;
20
+ };
21
+ }>;
22
+ /**
23
+ * A popover that opens when the user hovers over the trigger child and remains
24
+ * open as long as the mouse is over either the trigger or the popover itself.
25
+ * The content area is scrollable, avoiding any interaction with browser scroll.
26
+ */
27
+ export declare function HoverPopover({ children, popoverContent, title, placement, maxWidth, minWidth, maxHeight, actionButton, }: HoverPopoverProps): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=HoverPopover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HoverPopover.d.ts","sourceRoot":"","sources":["../../../src/components/styled/HoverPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAMZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAoB,MAAM,OAAO,CAAA;AAGtE,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAiCvE,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;IAChD,cAAc,EAAE,SAAS,CAAA;IACzB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,qBAAqB,CAAA;IAEjC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,SAAS,CAAA;QAClB,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;QAChC,OAAO,EAAE,MAAM,IAAI,CAAA;QACnB,8DAA8D;QAC9D,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;CACF,CAAC,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,cAAc,EACd,KAAK,EACL,SAAmB,EACnB,QAAc,EACd,QAAc,EACd,SAAe,EACf,YAAY,GACb,EAAE,iBAAiB,2CAgFnB"}
@@ -0,0 +1,103 @@
1
+ import { jsxs as s, Fragment as O, jsx as e } from "react/jsx-runtime";
2
+ import { Box as z, Popover as C, DialogTitle as E, DialogContent as b, DialogActions as k, Button as L } from "@mui/material";
3
+ import { useState as M, useRef as S } from "react";
4
+ import u from "./HoverPopover.module.scss.js";
5
+ function T(t) {
6
+ switch (t) {
7
+ case "top":
8
+ return {
9
+ anchorOrigin: { vertical: "top", horizontal: "center" },
10
+ transformOrigin: { vertical: "bottom", horizontal: "center" }
11
+ };
12
+ case "bottom":
13
+ return {
14
+ anchorOrigin: { vertical: "bottom", horizontal: "center" },
15
+ transformOrigin: { vertical: "top", horizontal: "center" }
16
+ };
17
+ case "left":
18
+ return {
19
+ anchorOrigin: { vertical: "center", horizontal: "left" },
20
+ transformOrigin: { vertical: "center", horizontal: "right" }
21
+ };
22
+ case "right":
23
+ return {
24
+ anchorOrigin: { vertical: "center", horizontal: "right" },
25
+ transformOrigin: { vertical: "center", horizontal: "left" }
26
+ };
27
+ }
28
+ }
29
+ const A = 150;
30
+ function y({
31
+ children: t,
32
+ popoverContent: p,
33
+ title: l,
34
+ placement: h = "right",
35
+ maxWidth: g = 500,
36
+ minWidth: m = 300,
37
+ maxHeight: f = 400,
38
+ actionButton: r
39
+ }) {
40
+ const [c, n] = M(null), o = S(null), i = () => {
41
+ o.current !== null && (clearTimeout(o.current), o.current = null);
42
+ }, a = () => {
43
+ i(), o.current = setTimeout(() => {
44
+ n(null);
45
+ }, A);
46
+ }, { anchorOrigin: d, transformOrigin: v } = T(h);
47
+ return /* @__PURE__ */ s(O, { children: [
48
+ /* @__PURE__ */ e(
49
+ z,
50
+ {
51
+ component: "span",
52
+ onMouseEnter: (x) => {
53
+ i(), n(x.currentTarget);
54
+ },
55
+ onMouseLeave: a,
56
+ className: u.triggerWrapper,
57
+ children: t
58
+ }
59
+ ),
60
+ /* @__PURE__ */ s(
61
+ C,
62
+ {
63
+ open: c !== null,
64
+ anchorEl: c,
65
+ anchorOrigin: d,
66
+ transformOrigin: v,
67
+ onClose: () => n(null),
68
+ disableAutoFocus: !0,
69
+ disableEnforceFocus: !0,
70
+ disableScrollLock: !0,
71
+ slotProps: {
72
+ backdrop: { sx: { pointerEvents: "none" } },
73
+ paper: {
74
+ onMouseEnter: i,
75
+ onMouseLeave: a,
76
+ className: u.paper,
77
+ sx: { maxWidth: g, minWidth: m }
78
+ }
79
+ },
80
+ children: [
81
+ l && /* @__PURE__ */ e(E, { sx: { fontSize: "18px", padding: "16px 10px" }, children: l }),
82
+ /* @__PURE__ */ e(b, { sx: { maxHeight: f, padding: "10px" }, children: p }),
83
+ r && /* @__PURE__ */ e(k, { sx: { paddingX: "10px" }, children: /* @__PURE__ */ e(
84
+ L,
85
+ {
86
+ color: r.color ?? "primary",
87
+ variant: r.variant ?? "contained",
88
+ fullWidth: !0,
89
+ onClick: () => {
90
+ r.onClick(), r.closeOnClick && n(null);
91
+ },
92
+ children: r.content
93
+ }
94
+ ) })
95
+ ]
96
+ }
97
+ )
98
+ ] });
99
+ }
100
+ export {
101
+ y as HoverPopover
102
+ };
103
+ //# sourceMappingURL=HoverPopover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HoverPopover.js","sources":["../../../src/components/styled/HoverPopover.tsx"],"sourcesContent":["import {\n Box,\n Button,\n ButtonProps,\n DialogActions,\n DialogContent,\n DialogTitle,\n Popover,\n PopoverOrigin,\n} from '@mui/material'\nimport { PropsWithChildren, ReactNode, useRef, useState } from 'react'\nimport styles from './HoverPopover.module.scss'\n\nexport type HoverPopoverPlacement = 'top' | 'bottom' | 'left' | 'right'\n\nfunction getOrigins(placement: HoverPopoverPlacement): {\n anchorOrigin: PopoverOrigin\n transformOrigin: PopoverOrigin\n} {\n switch (placement) {\n case 'top':\n return {\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n transformOrigin: { vertical: 'bottom', horizontal: 'center' },\n }\n case 'bottom':\n return {\n anchorOrigin: { vertical: 'bottom', horizontal: 'center' },\n transformOrigin: { vertical: 'top', horizontal: 'center' },\n }\n case 'left':\n return {\n anchorOrigin: { vertical: 'center', horizontal: 'left' },\n transformOrigin: { vertical: 'center', horizontal: 'right' },\n }\n case 'right':\n return {\n anchorOrigin: { vertical: 'center', horizontal: 'right' },\n transformOrigin: { vertical: 'center', horizontal: 'left' },\n }\n }\n}\n\n/** Delay in ms before the popover closes after the mouse leaves the trigger or popover */\nconst CLOSE_DELAY_MS = 150\n\nexport type HoverPopoverProps = PropsWithChildren<{\n popoverContent: ReactNode\n /** Optional title rendered as a sticky header above the scrollable content */\n title?: string\n placement?: HoverPopoverPlacement\n\n maxWidth?: string | number\n minWidth?: string | number\n /** Max height of the scrollable content area. Default 400px. */\n maxHeight?: string | number\n actionButton?: {\n content: ReactNode\n color?: ButtonProps['color']\n variant?: ButtonProps['variant']\n onClick: () => void\n /** If true, closes the popover after the button is clicked */\n closeOnClick?: boolean\n }\n}>\n\n/**\n * A popover that opens when the user hovers over the trigger child and remains\n * open as long as the mouse is over either the trigger or the popover itself.\n * The content area is scrollable, avoiding any interaction with browser scroll.\n */\nexport function HoverPopover({\n children,\n popoverContent,\n title,\n placement = 'right',\n maxWidth = 500,\n minWidth = 300,\n maxHeight = 400,\n actionButton,\n}: HoverPopoverProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null)\n const closeTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const cancelClose = () => {\n if (closeTimeoutRef.current !== null) {\n clearTimeout(closeTimeoutRef.current)\n closeTimeoutRef.current = null\n }\n }\n\n const scheduleClose = () => {\n cancelClose()\n closeTimeoutRef.current = setTimeout(() => {\n setAnchorEl(null)\n }, CLOSE_DELAY_MS)\n }\n\n const { anchorOrigin, transformOrigin } = getOrigins(placement)\n\n return (\n <>\n <Box\n component=\"span\"\n onMouseEnter={e => {\n cancelClose()\n setAnchorEl(e.currentTarget)\n }}\n onMouseLeave={scheduleClose}\n className={styles.triggerWrapper}\n >\n {children}\n </Box>\n <Popover\n open={anchorEl !== null}\n anchorEl={anchorEl}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n onClose={() => setAnchorEl(null)}\n disableAutoFocus\n disableEnforceFocus\n disableScrollLock\n slotProps={{\n backdrop: { sx: { pointerEvents: 'none' } },\n paper: {\n onMouseEnter: cancelClose,\n onMouseLeave: scheduleClose,\n className: styles.paper,\n sx: { maxWidth, minWidth },\n },\n }}\n >\n {title && (\n <DialogTitle sx={{ fontSize: '18px', padding: '16px 10px' }}>\n {title}\n </DialogTitle>\n )}\n <DialogContent sx={{ maxHeight, padding: '10px' }}>\n {popoverContent}\n </DialogContent>\n {actionButton && (\n <DialogActions sx={{ paddingX: '10px' }}>\n <Button\n color={actionButton.color ?? 'primary'}\n variant={actionButton.variant ?? 'contained'}\n fullWidth\n onClick={() => {\n actionButton.onClick()\n if (actionButton.closeOnClick) {\n setAnchorEl(null)\n }\n }}\n >\n {actionButton.content}\n </Button>\n </DialogActions>\n )}\n </Popover>\n </>\n )\n}\n"],"names":["getOrigins","placement","CLOSE_DELAY_MS","HoverPopover","children","popoverContent","title","maxWidth","minWidth","maxHeight","actionButton","anchorEl","setAnchorEl","useState","closeTimeoutRef","useRef","cancelClose","scheduleClose","anchorOrigin","transformOrigin","jsxs","Fragment","jsx","Box","e","styles","Popover","DialogTitle","DialogContent","DialogActions","Button"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ .triggerWrapper {
2
+ display: inline-block;
3
+ }
4
+
5
+ .paper {
6
+ display: flex;
7
+ flex-direction: column;
8
+ overflow: hidden;
9
+ }
@@ -0,0 +1,10 @@
1
+ import './HoverPopover.css';const r = "_triggerWrapper_9prk2_1", p = "_paper_9prk2_5", e = {
2
+ triggerWrapper: r,
3
+ paper: p
4
+ };
5
+ export {
6
+ e as default,
7
+ p as paper,
8
+ r as triggerWrapper
9
+ };
10
+ //# sourceMappingURL=HoverPopover.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HoverPopover.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -3,4 +3,6 @@ export { LightTooltip } from './LightTooltip';
3
3
  export { StyledFormControl } from './StyledFormControl';
4
4
  export { WideButton } from './WideButton';
5
5
  export { InputSizedButton } from './InputSizedButton';
6
+ export { HoverPopover } from './HoverPopover';
7
+ export type { HoverPopoverProps, HoverPopoverPlacement } from './HoverPopover';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/styled/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/styled/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,15 +1,17 @@
1
- import { LeftRightPanel as e, StyledInnerContainer as r, StyledOuterContainer as n } from "./LeftRightPanel.js";
2
- import { LightTooltip as p } from "./LightTooltip.js";
3
- import { StyledFormControl as l } from "./StyledFormControl.js";
4
- import { WideButton as d } from "./WideButton.js";
1
+ import { LeftRightPanel as r, StyledInnerContainer as e, StyledOuterContainer as n } from "./LeftRightPanel.js";
2
+ import { LightTooltip as f } from "./LightTooltip.js";
3
+ import { StyledFormControl as m } from "./StyledFormControl.js";
4
+ import { WideButton as x } from "./WideButton.js";
5
5
  import { InputSizedButton as u } from "./InputSizedButton.js";
6
+ import { HoverPopover as a } from "./HoverPopover.js";
6
7
  export {
8
+ a as HoverPopover,
7
9
  u as InputSizedButton,
8
- e as LeftRightPanel,
9
- p as LightTooltip,
10
- l as StyledFormControl,
11
- r as StyledInnerContainer,
10
+ r as LeftRightPanel,
11
+ f as LightTooltip,
12
+ m as StyledFormControl,
13
+ e as StyledInnerContainer,
12
14
  n as StyledOuterContainer,
13
- d as WideButton
15
+ x as WideButton
14
16
  };
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -29,7 +29,7 @@ import "universal-cookie";
29
29
  import "../../../utils/AppUtils/session/ApplicationSessionContext.js";
30
30
  import "../../../utils/context/FullContextProvider.js";
31
31
  import "../../../utils/context/DocumentMetadataContext.js";
32
- import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
32
+ import '../../Plot/SynapsePlot.css';import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
33
33
  import "react-router";
34
34
  import "@mui/icons-material/Close";
35
35
  import "../../styled/StyledPopover.js";
@@ -54,11 +54,14 @@ import "@mui/material/SvgIcon";
54
54
  import "../../../assets/icons/AccessPending.svg.js";
55
55
  import "../../../assets/icons/AccessPendingCloud.svg.js";
56
56
  import "../../../assets/icons/FileWithShield.svg.js";
57
+ import "../../../assets/icons/MultiFile.svg.js";
58
+ import "../../../assets/icons/UnpackagableFile.svg.js";
57
59
  import "../../../assets/icons/bioChemicalPhysical.svg.js";
58
60
  import "../../../assets/icons/computationalTool.svg.js";
59
61
  import "../../../assets/icons/dataReuse.svg.js";
60
62
  import "../../../assets/icons/inSilicoModel.svg.js";
61
63
  import "../../../assets/icons/modelSystem.svg.js";
64
+ import "../../../assets/mui_components/PackagableFile.svg.js";
62
65
  import "../../../assets/icons/spatialProfiling.svg.js";
63
66
  import "../../Authentication/AuthenticationMethodSelection.js";
64
67
  import "mui-one-time-password-input";
@@ -83,6 +86,7 @@ import "../../../assets/icons/study-complete.svg.js";
83
86
  import "../../../assets/icons/translational.svg.js";
84
87
  import "../../../assets/icons/tree_horizontal.svg.js";
85
88
  import "../../../assets/icons/standardDataModel.svg.js";
89
+ import "../../../assets/icons/Challenge.svg.js";
86
90
  import "react-intersection-observer";
87
91
  import "@rjsf/utils";
88
92
  import "../../SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js";
@@ -100,10 +104,10 @@ import "../../../assets/icons/DoubleQuotes.svg.js";
100
104
  import "../../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
101
105
  import "../../QueryContext/QueryContext.js";
102
106
  import "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
107
+ import "react-share";
103
108
  import "../../GenericCard/GenericCard.js";
104
109
  import "@mui/system";
105
110
  import "../../GenericCard/Linkify.js";
106
- import "react-share";
107
111
  import "jotai";
108
112
  import f from "lodash-es/noop";
109
113
  import "../../QueryWrapper/TableRowSelectionState.js";
@@ -164,7 +168,6 @@ import "@mui/x-date-pickers/AdapterDayjs";
164
168
  import "@mui/x-date-pickers/LocalizationProvider";
165
169
  import "../../FeaturedDataTabs/FacetPlotsCardGrid.js";
166
170
  import "../../Forum/ForumTable.js";
167
- import "@mui/material/IconButton";
168
171
  import "@mui/icons-material/NavigateNext";
169
172
  import "@react-google-maps/api";
170
173
  import "../../Markdown/MarkdownUtils.js";
@@ -178,6 +181,7 @@ import "lodash-es/orderBy";
178
181
  import "../../styled/LargeButton.js";
179
182
  import "../../../assets/illustrations/diagonalLinePattern.svg.js";
180
183
  import "@upsetjs/react";
184
+ /* empty css */
181
185
  import "reactflow";
182
186
  import "../../ProvenanceGraph/ProvenanceUtils.js";
183
187
  import "reactflow/dist/style.css";
@@ -202,6 +206,7 @@ import "lodash-es/set";
202
206
  import "lodash-es/trimStart";
203
207
  import "../../SynapseForm/SynapseFormSubmissionGrid.js";
204
208
  import "../../SynapseChat/AccessLevelMenu.js";
209
+ import "react-draggable";
205
210
  import "../../TimelinePlot/phasesQueryResponseData.js";
206
211
  import "../../EntityHeaderTable/EntityHeaderTable.js";
207
212
  import "../../MuiContainer.js";
@@ -213,7 +218,7 @@ import b from "../../TanStackTable/ColumnHeader.js";
213
218
  import T from "../../TanStackTable/StyledTanStackTable.js";
214
219
  import { useGetCsvPreview as h } from "../../../synapse-queries/table/useGetCsvPreview.js";
215
220
  import { useReactTable as y, getCoreRowModel as P, createColumnHelper as R } from "@tanstack/react-table";
216
- function Hi(e) {
221
+ function $i(e) {
217
222
  const {
218
223
  fileHandleId: a,
219
224
  csvTableDescriptor: i,
@@ -272,6 +277,6 @@ function S(e) {
272
277
  }));
273
278
  }
274
279
  export {
275
- Hi as default
280
+ $i as default
276
281
  };
277
282
  //# sourceMappingURL=CsvPreview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CsvPreview.js","sources":["../../../../src/components/table/CsvPreview/CsvPreview.tsx"],"sourcesContent":["import { ErrorBanner } from '@/components/index'\nimport ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '@/components/TanStackTable/StyledTanStackTable'\nimport { useGetCsvPreview } from '@/synapse-queries/table/useGetCsvPreview'\nimport Typography from '@mui/material/Typography'\nimport {\n ColumnModel,\n CsvTableDescriptor,\n TableRow,\n UploadToTablePreviewResult,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport noop from 'lodash-es/noop'\nimport { useEffect, useMemo } from 'react'\n\nexport type CsvPreviewProps = {\n fileHandleId: string\n csvTableDescriptor: CsvTableDescriptor\n onCsvPreviewDataChange?: (data: UploadToTablePreviewResult) => void\n onIsLoadingChange?: (isLoading: boolean) => void\n}\n\n/**\n * Given a file handle ID and CSV Table Descriptor, fetches and displays a preview of the CSV file as it would be parsed into a table.\n */\nexport default function CsvPreview(props: CsvPreviewProps) {\n const {\n fileHandleId,\n csvTableDescriptor,\n onCsvPreviewDataChange = noop,\n onIsLoadingChange = noop,\n } = props\n\n const {\n data: csvPreviewData,\n isLoading,\n error,\n } = useGetCsvPreview({\n concreteType:\n 'org.sagebionetworks.repo.model.table.UploadToTablePreviewRequest',\n uploadFileHandleId: fileHandleId,\n csvTableDescriptor,\n })\n\n useEffect(() => {\n if (csvPreviewData) {\n onCsvPreviewDataChange(csvPreviewData)\n }\n }, [csvPreviewData, onCsvPreviewDataChange])\n\n useEffect(() => {\n onIsLoadingChange(isLoading)\n }, [isLoading, onIsLoadingChange])\n\n const tableData = useMemo(\n () => csvPreviewData?.sampleRows ?? [],\n [csvPreviewData?.sampleRows],\n )\n\n const columns = useMemo(\n () => getPreviewColumns(csvPreviewData?.suggestedColumns ?? []),\n [csvPreviewData?.suggestedColumns],\n )\n\n const table = useReactTable({\n getCoreRowModel: getCoreRowModel(),\n data: tableData,\n columns: columns,\n })\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n\n return (\n <>\n {isLoading && <div>Loading preview...</div>}\n {!isLoading && csvPreviewData && table && (\n <>\n <Typography variant={'body1'}>\n Scanned {csvPreviewData?.rowsScanned?.toLocaleString()} rows to\n generate preview:\n </Typography>\n <StyledTanStackTable table={table} />\n </>\n )}\n </>\n )\n}\n\nfunction getPreviewColumns(columnModels: ColumnModel[]) {\n const columnHelper = createColumnHelper<TableRow>()\n return columnModels.map((columnModel, index) => {\n return columnHelper.accessor(tr => tr.values![index], {\n id: `column-${index}`,\n header: props => (\n <ColumnHeader\n {...props}\n title={`${columnModel.name} (${columnModel.columnType})`}\n />\n ),\n enableColumnFilter: false,\n enableSorting: false,\n })\n })\n}\n"],"names":["CsvPreview","props","fileHandleId","csvTableDescriptor","onCsvPreviewDataChange","noop","onIsLoadingChange","csvPreviewData","isLoading","error","useGetCsvPreview","useEffect","tableData","useMemo","columns","getPreviewColumns","table","useReactTable","getCoreRowModel","jsx","ErrorBanner","jsxs","Fragment","Typography","StyledTanStackTable","columnModels","columnHelper","createColumnHelper","columnModel","index","tr","ColumnHeader"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAwBA,GAAWC,GAAwB;AACzD,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,wBAAAC,IAAyBC;AAAA,IACzB,mBAAAC,IAAoBD;AAAA,EAAA,IAClBJ,GAEE;AAAA,IACJ,MAAMM;AAAA,IACN,WAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACEC,EAAiB;AAAA,IACnB,cACE;AAAA,IACF,oBAAoBR;AAAA,IACpB,oBAAAC;AAAA,EAAA,CACD;AAED,EAAAQ,EAAU,MAAM;AACd,IAAIJ,KACFH,EAAuBG,CAAc;AAAA,EAEzC,GAAG,CAACA,GAAgBH,CAAsB,CAAC,GAE3CO,EAAU,MAAM;AACd,IAAAL,EAAkBE,CAAS;AAAA,EAC7B,GAAG,CAACA,GAAWF,CAAiB,CAAC;AAEjC,QAAMM,IAAYC;AAAA,IAChB,MAAMN,GAAgB,cAAc,CAAA;AAAA,IACpC,CAACA,GAAgB,UAAU;AAAA,EAAA,GAGvBO,IAAUD;AAAA,IACd,MAAME,EAAkBR,GAAgB,oBAAoB,EAAE;AAAA,IAC9D,CAACA,GAAgB,gBAAgB;AAAA,EAAA,GAG7BS,IAAQC,EAAc;AAAA,IAC1B,iBAAiBC,EAAA;AAAA,IACjB,MAAMN;AAAA,IACN,SAAAE;AAAA,EAAA,CACD;AAED,SAAIL,IACK,gBAAAU,EAACC,KAAY,OAAAX,GAAc,IAIlC,gBAAAY,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAd,KAAa,gBAAAW,EAAC,SAAI,UAAA,qBAAA,CAAkB;AAAA,IACpC,CAACX,KAAaD,KAAkBS,KAC/B,gBAAAK,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EAAW,SAAS,SAAS,UAAA;AAAA,QAAA;AAAA,QACnBhB,GAAgB,aAAa,eAAA;AAAA,QAAiB;AAAA,MAAA,GAEzD;AAAA,MACA,gBAAAY,EAACK,KAAoB,OAAAR,EAAA,CAAc;AAAA,IAAA,EAAA,CACrC;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASD,EAAkBU,GAA6B;AACtD,QAAMC,IAAeC,EAAA;AACrB,SAAOF,EAAa,IAAI,CAACG,GAAaC,MAC7BH,EAAa,SAAS,CAAAI,MAAMA,EAAG,OAAQD,CAAK,GAAG;AAAA,IACpD,IAAI,UAAUA,CAAK;AAAA,IACnB,QAAQ,CAAA5B,MACN,gBAAAkB;AAAA,MAACY;AAAA,MAAA;AAAA,QACE,GAAG9B;AAAA,QACJ,OAAO,GAAG2B,EAAY,IAAI,KAAKA,EAAY,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAGzD,oBAAoB;AAAA,IACpB,eAAe;AAAA,EAAA,CAChB,CACF;AACH;"}
1
+ {"version":3,"file":"CsvPreview.js","sources":["../../../../src/components/table/CsvPreview/CsvPreview.tsx"],"sourcesContent":["import { ErrorBanner } from '@/components/index'\nimport ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '@/components/TanStackTable/StyledTanStackTable'\nimport { useGetCsvPreview } from '@/synapse-queries/table/useGetCsvPreview'\nimport Typography from '@mui/material/Typography'\nimport {\n ColumnModel,\n CsvTableDescriptor,\n TableRow,\n UploadToTablePreviewResult,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport noop from 'lodash-es/noop'\nimport { useEffect, useMemo } from 'react'\n\nexport type CsvPreviewProps = {\n fileHandleId: string\n csvTableDescriptor: CsvTableDescriptor\n onCsvPreviewDataChange?: (data: UploadToTablePreviewResult) => void\n onIsLoadingChange?: (isLoading: boolean) => void\n}\n\n/**\n * Given a file handle ID and CSV Table Descriptor, fetches and displays a preview of the CSV file as it would be parsed into a table.\n */\nexport default function CsvPreview(props: CsvPreviewProps) {\n const {\n fileHandleId,\n csvTableDescriptor,\n onCsvPreviewDataChange = noop,\n onIsLoadingChange = noop,\n } = props\n\n const {\n data: csvPreviewData,\n isLoading,\n error,\n } = useGetCsvPreview({\n concreteType:\n 'org.sagebionetworks.repo.model.table.UploadToTablePreviewRequest',\n uploadFileHandleId: fileHandleId,\n csvTableDescriptor,\n })\n\n useEffect(() => {\n if (csvPreviewData) {\n onCsvPreviewDataChange(csvPreviewData)\n }\n }, [csvPreviewData, onCsvPreviewDataChange])\n\n useEffect(() => {\n onIsLoadingChange(isLoading)\n }, [isLoading, onIsLoadingChange])\n\n const tableData = useMemo(\n () => csvPreviewData?.sampleRows ?? [],\n [csvPreviewData?.sampleRows],\n )\n\n const columns = useMemo(\n () => getPreviewColumns(csvPreviewData?.suggestedColumns ?? []),\n [csvPreviewData?.suggestedColumns],\n )\n\n const table = useReactTable({\n getCoreRowModel: getCoreRowModel(),\n data: tableData,\n columns: columns,\n })\n\n if (error) {\n return <ErrorBanner error={error} />\n }\n\n return (\n <>\n {isLoading && <div>Loading preview...</div>}\n {!isLoading && csvPreviewData && table && (\n <>\n <Typography variant={'body1'}>\n Scanned {csvPreviewData?.rowsScanned?.toLocaleString()} rows to\n generate preview:\n </Typography>\n <StyledTanStackTable table={table} />\n </>\n )}\n </>\n )\n}\n\nfunction getPreviewColumns(columnModels: ColumnModel[]) {\n const columnHelper = createColumnHelper<TableRow>()\n return columnModels.map((columnModel, index) => {\n return columnHelper.accessor(tr => tr.values![index], {\n id: `column-${index}`,\n header: props => (\n <ColumnHeader\n {...props}\n title={`${columnModel.name} (${columnModel.columnType})`}\n />\n ),\n enableColumnFilter: false,\n enableSorting: false,\n })\n })\n}\n"],"names":["CsvPreview","props","fileHandleId","csvTableDescriptor","onCsvPreviewDataChange","noop","onIsLoadingChange","csvPreviewData","isLoading","error","useGetCsvPreview","useEffect","tableData","useMemo","columns","getPreviewColumns","table","useReactTable","getCoreRowModel","jsx","ErrorBanner","jsxs","Fragment","Typography","StyledTanStackTable","columnModels","columnHelper","createColumnHelper","columnModel","index","tr","ColumnHeader"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAwBA,GAAWC,GAAwB;AACzD,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,wBAAAC,IAAyBC;AAAA,IACzB,mBAAAC,IAAoBD;AAAA,EAAA,IAClBJ,GAEE;AAAA,IACJ,MAAMM;AAAA,IACN,WAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACEC,EAAiB;AAAA,IACnB,cACE;AAAA,IACF,oBAAoBR;AAAA,IACpB,oBAAAC;AAAA,EAAA,CACD;AAED,EAAAQ,EAAU,MAAM;AACd,IAAIJ,KACFH,EAAuBG,CAAc;AAAA,EAEzC,GAAG,CAACA,GAAgBH,CAAsB,CAAC,GAE3CO,EAAU,MAAM;AACd,IAAAL,EAAkBE,CAAS;AAAA,EAC7B,GAAG,CAACA,GAAWF,CAAiB,CAAC;AAEjC,QAAMM,IAAYC;AAAA,IAChB,MAAMN,GAAgB,cAAc,CAAA;AAAA,IACpC,CAACA,GAAgB,UAAU;AAAA,EAAA,GAGvBO,IAAUD;AAAA,IACd,MAAME,EAAkBR,GAAgB,oBAAoB,EAAE;AAAA,IAC9D,CAACA,GAAgB,gBAAgB;AAAA,EAAA,GAG7BS,IAAQC,EAAc;AAAA,IAC1B,iBAAiBC,EAAA;AAAA,IACjB,MAAMN;AAAA,IACN,SAAAE;AAAA,EAAA,CACD;AAED,SAAIL,IACK,gBAAAU,EAACC,KAAY,OAAAX,GAAc,IAIlC,gBAAAY,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAd,KAAa,gBAAAW,EAAC,SAAI,UAAA,qBAAA,CAAkB;AAAA,IACpC,CAACX,KAAaD,KAAkBS,KAC/B,gBAAAK,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EAAW,SAAS,SAAS,UAAA;AAAA,QAAA;AAAA,QACnBhB,GAAgB,aAAa,eAAA;AAAA,QAAiB;AAAA,MAAA,GAEzD;AAAA,MACA,gBAAAY,EAACK,KAAoB,OAAAR,EAAA,CAAc;AAAA,IAAA,EAAA,CACrC;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASD,EAAkBU,GAA6B;AACtD,QAAMC,IAAeC,EAAA;AACrB,SAAOF,EAAa,IAAI,CAACG,GAAaC,MAC7BH,EAAa,SAAS,CAAAI,MAAMA,EAAG,OAAQD,CAAK,GAAG;AAAA,IACpD,IAAI,UAAUA,CAAK;AAAA,IACnB,QAAQ,CAAA5B,MACN,gBAAAkB;AAAA,MAACY;AAAA,MAAA;AAAA,QACE,GAAG9B;AAAA,QACJ,OAAO,GAAG2B,EAAY,IAAI,KAAKA,EAAY,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAGzD,oBAAoB;AAAA,IACpB,eAAe;AAAA,EAAA,CAChB,CACF;AACH;"}
@@ -31,7 +31,7 @@ import "universal-cookie";
31
31
  import "../../../utils/AppUtils/session/ApplicationSessionContext.js";
32
32
  import "../../../utils/context/FullContextProvider.js";
33
33
  import "../../../utils/context/DocumentMetadataContext.js";
34
- import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
34
+ import '../../Plot/SynapsePlot.css';import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
35
35
  import "react-router";
36
36
  import "react-hot-toast";
37
37
  import "react-transition-group";
@@ -53,11 +53,14 @@ import "@mui/material/SvgIcon";
53
53
  import "../../../assets/icons/AccessPending.svg.js";
54
54
  import "../../../assets/icons/AccessPendingCloud.svg.js";
55
55
  import "../../../assets/icons/FileWithShield.svg.js";
56
+ import "../../../assets/icons/MultiFile.svg.js";
57
+ import "../../../assets/icons/UnpackagableFile.svg.js";
56
58
  import "../../../assets/icons/bioChemicalPhysical.svg.js";
57
59
  import "../../../assets/icons/computationalTool.svg.js";
58
60
  import "../../../assets/icons/dataReuse.svg.js";
59
61
  import "../../../assets/icons/inSilicoModel.svg.js";
60
62
  import "../../../assets/icons/modelSystem.svg.js";
63
+ import "../../../assets/mui_components/PackagableFile.svg.js";
61
64
  import "../../../assets/icons/spatialProfiling.svg.js";
62
65
  import "../../Authentication/AuthenticationMethodSelection.js";
63
66
  import "mui-one-time-password-input";
@@ -82,6 +85,7 @@ import "../../../assets/icons/study-complete.svg.js";
82
85
  import "../../../assets/icons/translational.svg.js";
83
86
  import "../../../assets/icons/tree_horizontal.svg.js";
84
87
  import "../../../assets/icons/standardDataModel.svg.js";
88
+ import "../../../assets/icons/Challenge.svg.js";
85
89
  import "react-intersection-observer";
86
90
  import "@rjsf/utils";
87
91
  import "../../styled/StyledPopover.js";
@@ -102,10 +106,10 @@ import "@mui/icons-material/Close";
102
106
  import "../../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
103
107
  import "../../QueryContext/QueryContext.js";
104
108
  import "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
109
+ import "react-share";
105
110
  import "../../GenericCard/GenericCard.js";
106
111
  import "@mui/system";
107
112
  import "../../GenericCard/Linkify.js";
108
- import "react-share";
109
113
  import "jotai";
110
114
  import "lodash-es/noop";
111
115
  import "../../QueryWrapper/TableRowSelectionState.js";
@@ -166,7 +170,6 @@ import "@mui/x-date-pickers/AdapterDayjs";
166
170
  import "@mui/x-date-pickers/LocalizationProvider";
167
171
  import "../../FeaturedDataTabs/FacetPlotsCardGrid.js";
168
172
  import "../../Forum/ForumTable.js";
169
- import "@mui/material/IconButton";
170
173
  import "@mui/icons-material/NavigateNext";
171
174
  import "@react-google-maps/api";
172
175
  import "../../Markdown/MarkdownUtils.js";
@@ -180,6 +183,7 @@ import "lodash-es/orderBy";
180
183
  import "../../styled/LargeButton.js";
181
184
  import "../../../assets/illustrations/diagonalLinePattern.svg.js";
182
185
  import "@upsetjs/react";
186
+ /* empty css */
183
187
  import "reactflow";
184
188
  import "../../ProvenanceGraph/ProvenanceUtils.js";
185
189
  import "reactflow/dist/style.css";
@@ -204,6 +208,7 @@ import "lodash-es/set";
204
208
  import "lodash-es/trimStart";
205
209
  import "../../SynapseForm/SynapseFormSubmissionGrid.js";
206
210
  import "../../SynapseChat/AccessLevelMenu.js";
211
+ import "react-draggable";
207
212
  import "../../TimelinePlot/phasesQueryResponseData.js";
208
213
  import "../../EntityHeaderTable/EntityHeaderTable.js";
209
214
  import "../../MuiContainer.js";
@@ -219,7 +224,7 @@ import E from "@mui/material/AccordionDetails";
219
224
  import M from "@mui/material/AccordionSummary";
220
225
  import a from "@mui/material/Button";
221
226
  import j from "@mui/material/Stack";
222
- function Ni(u) {
227
+ function _i(u) {
223
228
  const { open: C, onClose: l, onConfirm: v, confirmIsPending: h, errorMessage: s } = u, [i, g] = t(
224
229
  0
225
230
  /* UPLOAD_CSV */
@@ -327,6 +332,6 @@ function Ni(u) {
327
332
  );
328
333
  }
329
334
  export {
330
- Ni as default
335
+ _i as default
331
336
  };
332
337
  //# sourceMappingURL=CsvPreviewDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CsvPreviewDialog.js","sources":["../../../../src/components/table/CsvPreview/CsvPreviewDialog.tsx"],"sourcesContent":["import { DialogBase } from '@/components/DialogBase'\nimport {\n BasicFileHandleUpload,\n FileUploadHandle,\n} from '@/components/file/upload/BasicFileHandleUpload'\nimport { ErrorBanner } from '@/components/index'\nimport CsvPreview from '@/components/table/CsvPreview/CsvPreview'\nimport CsvTableDescriptorForm, {\n CsvTableDescriptorFormHandle,\n} from '@/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm'\nimport { RefreshTwoTone } from '@mui/icons-material'\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport Accordion from '@mui/material/Accordion'\nimport AccordionDetails from '@mui/material/AccordionDetails'\nimport AccordionSummary from '@mui/material/AccordionSummary'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport Typography from '@mui/material/Typography'\nimport {\n ColumnModel,\n CsvTableDescriptor,\n UploadToTablePreviewResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useCallback, useRef, useState } from 'react'\n\nenum CsvPreviewDialogStep {\n UPLOAD_CSV = 0,\n COLUMN_PREVIEW = 1,\n}\n\nexport type CsvPreviewDialogProps = {\n /** Whether the dialog is open */\n open: boolean\n /** Callback when the dialog is closed */\n onClose: () => void\n /** Callback when the user confirms the column models\n * @param dataFileHandleId - The file handle ID of the uploaded CSV\n * @param columnModels - The confirmed column models\n * */\n onConfirm: (\n dataFileHandleId: string,\n columnModels: ColumnModel[],\n csvTableDescriptor: CsvTableDescriptor,\n ) => void\n /** Whether the confirm action is pending */\n confirmIsPending?: boolean\n /** An optional error message to display */\n errorMessage?: string\n}\n\nexport default function CsvPreviewDialog(props: CsvPreviewDialogProps) {\n const { open, onClose, onConfirm, confirmIsPending, errorMessage } = props\n const [step, setStep] = useState(CsvPreviewDialogStep.UPLOAD_CSV)\n const [csvTableDescriptor, setCsvTableDescriptor] =\n useState<CsvTableDescriptor>({\n separator: ',',\n quoteCharacter: '\"',\n escapeCharacter: '\\\\',\n lineEnd: '\\n',\n isFirstLineHeader: true,\n })\n const [csvPreviewData, setCsvPreviewData] =\n useState<UploadToTablePreviewResult | null>(null)\n const [isLoadingPreview, setIsLoadingPreview] = useState(false)\n\n const [uploadedFileHandleId, setUploadedFileHandleId] = useState<\n string | null\n >(null)\n\n const onFileUploaded = useCallback((fileHandleId: string) => {\n setUploadedFileHandleId(fileHandleId)\n setStep(CsvPreviewDialogStep.COLUMN_PREVIEW)\n }, [])\n\n const uploadRef = useRef<FileUploadHandle | null>(null)\n const csvDescriptorFormRef = useRef<CsvTableDescriptorFormHandle | null>(null)\n\n const uploadStepContent = (\n <BasicFileHandleUpload\n ref={uploadRef}\n allowMultipleUpload={false}\n onFileUploadComplete={fileHandleId => {\n onFileUploaded(fileHandleId)\n }}\n disableDragAndDrop={true}\n />\n )\n\n const previewStepContent = (\n <Stack spacing={2}>\n {uploadedFileHandleId && (\n <CsvPreview\n fileHandleId={uploadedFileHandleId}\n csvTableDescriptor={csvTableDescriptor}\n onCsvPreviewDataChange={setCsvPreviewData}\n onIsLoadingChange={setIsLoadingPreview}\n />\n )}\n <Accordion>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant={'headline3'}>Show Options</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CsvTableDescriptorForm\n defaultValue={csvTableDescriptor}\n ref={csvDescriptorFormRef}\n />\n <Button\n variant={'outlined'}\n startIcon={<RefreshTwoTone />}\n sx={{ mt: 2 }}\n onClick={() => {\n // Get the state from the form and update local state, which will re-render the preview\n if (csvDescriptorFormRef.current) {\n setCsvTableDescriptor(\n csvDescriptorFormRef.current.getFormData(),\n )\n }\n }}\n >\n Refresh Preview\n </Button>\n </AccordionDetails>\n </Accordion>\n </Stack>\n )\n\n return (\n <DialogBase\n maxWidth={'lg'}\n title={'Upload CSV'}\n onCancel={onClose}\n open={open}\n content={\n <>\n {step === CsvPreviewDialogStep.UPLOAD_CSV && uploadStepContent}\n {step === CsvPreviewDialogStep.COLUMN_PREVIEW && previewStepContent}\n {errorMessage && <ErrorBanner error={errorMessage} />}\n </>\n }\n actions={\n <>\n <Button\n variant={'outlined'}\n disabled={isLoadingPreview}\n onClick={() => {\n onClose()\n }}\n >\n Cancel\n </Button>\n {step === CsvPreviewDialogStep.COLUMN_PREVIEW && (\n <Button\n disabled={isLoadingPreview}\n variant={'contained'}\n onClick={() => {\n onConfirm(\n uploadedFileHandleId!,\n csvPreviewData!.suggestedColumns!,\n csvTableDescriptor,\n )\n }}\n loading={confirmIsPending}\n >\n Confirm\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"names":["CsvPreviewDialog","props","open","onClose","onConfirm","confirmIsPending","errorMessage","step","setStep","useState","csvTableDescriptor","setCsvTableDescriptor","csvPreviewData","setCsvPreviewData","isLoadingPreview","setIsLoadingPreview","uploadedFileHandleId","setUploadedFileHandleId","onFileUploaded","useCallback","fileHandleId","uploadRef","useRef","csvDescriptorFormRef","jsx","DialogBase","jsxs","Fragment","BasicFileHandleUpload","Stack","CsvPreview","Accordion","AccordionSummary","ExpandMoreIcon","Typography","AccordionDetails","CsvTableDescriptorForm","Button","RefreshTwoTone","ErrorBanner"],"mappings":"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"}
1
+ {"version":3,"file":"CsvPreviewDialog.js","sources":["../../../../src/components/table/CsvPreview/CsvPreviewDialog.tsx"],"sourcesContent":["import { DialogBase } from '@/components/DialogBase'\nimport {\n BasicFileHandleUpload,\n FileUploadHandle,\n} from '@/components/file/upload/BasicFileHandleUpload'\nimport { ErrorBanner } from '@/components/index'\nimport CsvPreview from '@/components/table/CsvPreview/CsvPreview'\nimport CsvTableDescriptorForm, {\n CsvTableDescriptorFormHandle,\n} from '@/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm'\nimport { RefreshTwoTone } from '@mui/icons-material'\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport Accordion from '@mui/material/Accordion'\nimport AccordionDetails from '@mui/material/AccordionDetails'\nimport AccordionSummary from '@mui/material/AccordionSummary'\nimport Button from '@mui/material/Button'\nimport Stack from '@mui/material/Stack'\nimport Typography from '@mui/material/Typography'\nimport {\n ColumnModel,\n CsvTableDescriptor,\n UploadToTablePreviewResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useCallback, useRef, useState } from 'react'\n\nenum CsvPreviewDialogStep {\n UPLOAD_CSV = 0,\n COLUMN_PREVIEW = 1,\n}\n\nexport type CsvPreviewDialogProps = {\n /** Whether the dialog is open */\n open: boolean\n /** Callback when the dialog is closed */\n onClose: () => void\n /** Callback when the user confirms the column models\n * @param dataFileHandleId - The file handle ID of the uploaded CSV\n * @param columnModels - The confirmed column models\n * */\n onConfirm: (\n dataFileHandleId: string,\n columnModels: ColumnModel[],\n csvTableDescriptor: CsvTableDescriptor,\n ) => void\n /** Whether the confirm action is pending */\n confirmIsPending?: boolean\n /** An optional error message to display */\n errorMessage?: string\n}\n\nexport default function CsvPreviewDialog(props: CsvPreviewDialogProps) {\n const { open, onClose, onConfirm, confirmIsPending, errorMessage } = props\n const [step, setStep] = useState(CsvPreviewDialogStep.UPLOAD_CSV)\n const [csvTableDescriptor, setCsvTableDescriptor] =\n useState<CsvTableDescriptor>({\n separator: ',',\n quoteCharacter: '\"',\n escapeCharacter: '\\\\',\n lineEnd: '\\n',\n isFirstLineHeader: true,\n })\n const [csvPreviewData, setCsvPreviewData] =\n useState<UploadToTablePreviewResult | null>(null)\n const [isLoadingPreview, setIsLoadingPreview] = useState(false)\n\n const [uploadedFileHandleId, setUploadedFileHandleId] = useState<\n string | null\n >(null)\n\n const onFileUploaded = useCallback((fileHandleId: string) => {\n setUploadedFileHandleId(fileHandleId)\n setStep(CsvPreviewDialogStep.COLUMN_PREVIEW)\n }, [])\n\n const uploadRef = useRef<FileUploadHandle | null>(null)\n const csvDescriptorFormRef = useRef<CsvTableDescriptorFormHandle | null>(null)\n\n const uploadStepContent = (\n <BasicFileHandleUpload\n ref={uploadRef}\n allowMultipleUpload={false}\n onFileUploadComplete={fileHandleId => {\n onFileUploaded(fileHandleId)\n }}\n disableDragAndDrop={true}\n />\n )\n\n const previewStepContent = (\n <Stack spacing={2}>\n {uploadedFileHandleId && (\n <CsvPreview\n fileHandleId={uploadedFileHandleId}\n csvTableDescriptor={csvTableDescriptor}\n onCsvPreviewDataChange={setCsvPreviewData}\n onIsLoadingChange={setIsLoadingPreview}\n />\n )}\n <Accordion>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant={'headline3'}>Show Options</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CsvTableDescriptorForm\n defaultValue={csvTableDescriptor}\n ref={csvDescriptorFormRef}\n />\n <Button\n variant={'outlined'}\n startIcon={<RefreshTwoTone />}\n sx={{ mt: 2 }}\n onClick={() => {\n // Get the state from the form and update local state, which will re-render the preview\n if (csvDescriptorFormRef.current) {\n setCsvTableDescriptor(\n csvDescriptorFormRef.current.getFormData(),\n )\n }\n }}\n >\n Refresh Preview\n </Button>\n </AccordionDetails>\n </Accordion>\n </Stack>\n )\n\n return (\n <DialogBase\n maxWidth={'lg'}\n title={'Upload CSV'}\n onCancel={onClose}\n open={open}\n content={\n <>\n {step === CsvPreviewDialogStep.UPLOAD_CSV && uploadStepContent}\n {step === CsvPreviewDialogStep.COLUMN_PREVIEW && previewStepContent}\n {errorMessage && <ErrorBanner error={errorMessage} />}\n </>\n }\n actions={\n <>\n <Button\n variant={'outlined'}\n disabled={isLoadingPreview}\n onClick={() => {\n onClose()\n }}\n >\n Cancel\n </Button>\n {step === CsvPreviewDialogStep.COLUMN_PREVIEW && (\n <Button\n disabled={isLoadingPreview}\n variant={'contained'}\n onClick={() => {\n onConfirm(\n uploadedFileHandleId!,\n csvPreviewData!.suggestedColumns!,\n csvTableDescriptor,\n )\n }}\n loading={confirmIsPending}\n >\n Confirm\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"names":["CsvPreviewDialog","props","open","onClose","onConfirm","confirmIsPending","errorMessage","step","setStep","useState","csvTableDescriptor","setCsvTableDescriptor","csvPreviewData","setCsvPreviewData","isLoadingPreview","setIsLoadingPreview","uploadedFileHandleId","setUploadedFileHandleId","onFileUploaded","useCallback","fileHandleId","uploadRef","useRef","csvDescriptorFormRef","jsx","DialogBase","jsxs","Fragment","BasicFileHandleUpload","Stack","CsvPreview","Accordion","AccordionSummary","ExpandMoreIcon","Typography","AccordionDetails","CsvTableDescriptorForm","Button","RefreshTwoTone","ErrorBanner"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { jsxs as d, jsx as a, Fragment as x } from "react/jsx-runtime";
1
+ import { jsxs as d, Fragment as x, jsx as a } from "react/jsx-runtime";
2
2
  import { useState as f } from "react";
3
3
  import r from "dayjs";
4
4
  import { DatePicker as c } from "@mui/x-date-pickers";
@@ -1 +1 @@
1
- {"version":3,"file":"FacetNavPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/FacetNavPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,iCAAiC,CAAA;AAExC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAW9C,OAAO,EAAE,cAAc,EAAY,MAAM,wBAAwB,CAAA;AAGjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wBAAwB,EAAE,CACxB,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,2BAA2B,GAAG,SAAS,EAC9C,UAAU,EAAE,OAAO,KAChB,IAAI,CAAA;IACT,yBAAyB,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAA;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,uBAAuB,CAAA;IACpC,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3C,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAKD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,wBAAwB,CAAA;AAgB/D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IACnB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,MAAM;;;;;;;;;GAyJrB;AAsBD,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8BnC;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAyK/C;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"FacetNavPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/FacetNavPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,iCAAiC,CAAA;AAExC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAW9C,OAAO,EAAE,cAAc,EAAY,MAAM,wBAAwB,CAAA;AAGjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wBAAwB,EAAE,CACxB,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,2BAA2B,GAAG,SAAS,EAC9C,UAAU,EAAE,OAAO,KAChB,IAAI,CAAA;IACT,yBAAyB,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAA;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,uBAAuB,CAAA;IACpC,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3C,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAKD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,wBAAwB,CAAA;AAgB/D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IACnB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,MAAM;;;;;;;;;GA+JrB;AAsBD,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8BnC;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAyK/C;AAED,eAAe,aAAa,CAAA"}