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,4 +1,4 @@
1
- import { jsxs as y, Fragment as w, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as C, Fragment as w, jsx as e } from "react/jsx-runtime";
2
2
  import "../../synapse-client/SynapseClient.js";
3
3
  import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
4
4
  import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
@@ -13,7 +13,7 @@ import "../../utils/PermissionLevelToAccessType.js";
13
13
  import { useCallback as l } from "react";
14
14
  import { useSynapseContext as E } from "../../utils/context/SynapseContext.js";
15
15
  import "use-deep-compare-effect";
16
- import { Box as m, Button as T } from "@mui/material";
16
+ import { Box as s, Button as T } from "@mui/material";
17
17
  import "../../utils/hooks/useCookiePreferences.js";
18
18
  import "../../utils/hooks/useSourceAppConfigs.js";
19
19
  import "universal-cookie";
@@ -26,75 +26,75 @@ import "lodash-es/isEmpty";
26
26
  import "lodash-es/isEqual";
27
27
  import "lodash-es/xorWith";
28
28
  import "react-router";
29
- import { EntityType as s } from "@sage-bionetworks/synapse-client";
29
+ import { EntityType as m } from "@sage-bionetworks/synapse-client";
30
30
  import "../../utils/types/IsType.js";
31
31
  import { useAddFileBatchToDownloadList as g } from "../../synapse-queries/download/useDownloadList.js";
32
32
  import A from "@mui/icons-material/AddCircleTwoTone";
33
33
  import { EntityChildrenDetails as S } from "../EntityFinder/details/configurations/EntityChildrenDetails.js";
34
- import { DetailsViewColumn as r } from "../EntityFinder/details/view/DetailsView.js";
34
+ import { DetailsViewColumn as i } from "../EntityFinder/details/view/DetailsView.js";
35
35
  import { useEntitySelection as x } from "../EntityFinder/useEntitySelection.js";
36
36
  import { VersionSelectionType as b } from "../EntityFinder/VersionSelectionType.js";
37
- import { displayToast as a } from "../ToastMessage/ToastMessage.js";
38
- function po({
39
- parentContainerId: p
37
+ import { displayToast as p } from "../ToastMessage/ToastMessage.js";
38
+ function ao({
39
+ parentContainerId: a
40
40
  }) {
41
- const { downloadCartPageUrl: d } = E(), c = !0, { selectedEntities: o, toggleSelection: u, setInitialVersion: f } = x(c), { mutate: i } = g({
41
+ const { downloadCartPageUrl: d } = E(), c = !0, { selectedEntities: o, toggleSelection: u, setInitialVersion: f } = x(c), { mutate: r } = g({
42
42
  onSuccess: () => {
43
- a(
44
- "File(s) were successfully added to your Download Cart.",
43
+ p(
44
+ "File(s) were successfully added to your Download List.",
45
45
  "success",
46
46
  {
47
47
  primaryButtonConfig: {
48
- text: "View Download Cart",
48
+ text: "View Download List",
49
49
  onClick: () => window.location.href = d
50
50
  }
51
51
  }
52
52
  );
53
53
  },
54
54
  onError: (t) => {
55
- a(
56
- `Unable to add the file to your Download Cart. ${t.reason}`,
55
+ p(
56
+ `Unable to add the file to your Download List. ${t.reason}`,
57
57
  "danger"
58
58
  );
59
59
  }
60
- }), C = l(
60
+ }), D = l(
61
61
  (t) => o.has(t.id),
62
62
  [o]
63
- ), D = l(() => {
63
+ ), h = l(() => {
64
64
  const t = Array.from(o.values()).map((n) => ({
65
65
  fileEntityId: n.targetId,
66
66
  versionNumber: n.targetVersionNumber
67
67
  }));
68
- i(t);
69
- }, [o, i]), h = {
68
+ r(t);
69
+ }, [o, r]), y = {
70
70
  versionSelection: b.REQUIRED,
71
71
  selectColumnType: "checkbox",
72
72
  enableSelectAll: !0,
73
- visibleTypes: [s.file],
73
+ visibleTypes: [m.file],
74
74
  selected: o,
75
- selectableTypes: [s.file],
76
- isIdSelected: C,
75
+ selectableTypes: [m.file],
76
+ isIdSelected: D,
77
77
  isSelectable: () => !0,
78
78
  toggleSelection: u,
79
79
  setInitialVersion: f,
80
80
  hiddenColumns: [
81
- r.BADGES,
82
- r.ADD_TO_DOWNLOAD_CART,
83
- r.CREATED_ON,
84
- r.VERSION,
85
- r.MODIFIED_BY
81
+ i.BADGES,
82
+ i.ADD_TO_DOWNLOAD_CART,
83
+ i.CREATED_ON,
84
+ i.VERSION,
85
+ i.MODIFIED_BY
86
86
  ]
87
87
  };
88
- return /* @__PURE__ */ y(w, { children: [
89
- /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(
88
+ return /* @__PURE__ */ C(w, { children: [
89
+ /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(
90
90
  S,
91
91
  {
92
- parentContainerId: p,
93
- ...h
92
+ parentContainerId: a,
93
+ ...y
94
94
  }
95
95
  ) }),
96
96
  /* @__PURE__ */ e(
97
- m,
97
+ s,
98
98
  {
99
99
  sx: {
100
100
  mt: 4
@@ -105,9 +105,9 @@ function po({
105
105
  endIcon: /* @__PURE__ */ e(A, {}),
106
106
  variant: "outlined",
107
107
  sx: { alignSelf: "flex-end", height: "47px" },
108
- onClick: D,
108
+ onClick: h,
109
109
  disabled: !o.toArray().length,
110
- children: "Add to Download Cart"
110
+ children: "Add to Download List"
111
111
  }
112
112
  )
113
113
  }
@@ -115,6 +115,6 @@ function po({
115
115
  ] });
116
116
  }
117
117
  export {
118
- po as ChallengeDataDownload
118
+ ao as ChallengeDataDownload
119
119
  };
120
120
  //# sourceMappingURL=ChallengeDataDownload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeDataDownload.js","sources":["../../../src/components/ChallengeDataDownload/ChallengeDataDownload.tsx"],"sourcesContent":["import { useAddFileBatchToDownloadList } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport AddCircleTwoToneIcon from '@mui/icons-material/AddCircleTwoTone'\nimport { Box, Button } from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { useCallback } from 'react'\nimport { EntityChildrenDetails } from '../EntityFinder/details/configurations/EntityChildrenDetails'\nimport { EntityDetailsListSharedProps } from '../EntityFinder/details/EntityDetailsList'\nimport { DetailsViewColumn } from '../EntityFinder/details/view/DetailsView'\nimport { EntityFinderHeader } from '../EntityFinder/EntityFinderHeader'\nimport { useEntitySelection } from '../EntityFinder/useEntitySelection'\nimport { VersionSelectionType } from '../EntityFinder/VersionSelectionType'\nimport { displayToast } from '../ToastMessage'\n\nexport type ChallengeDataDownloadProps = {\n parentContainerId: string\n}\n\nexport function ChallengeDataDownload({\n parentContainerId,\n}: ChallengeDataDownloadProps) {\n const { downloadCartPageUrl } = useSynapseContext()\n const selectMultiple = true\n const { selectedEntities, toggleSelection, setInitialVersion } =\n useEntitySelection(selectMultiple)\n\n const { mutate: addBatchToDownloadList } = useAddFileBatchToDownloadList({\n onSuccess: () => {\n displayToast(\n 'File(s) were successfully added to your Download Cart.',\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download Cart',\n onClick: () => (window.location.href = downloadCartPageUrl),\n },\n },\n )\n },\n onError: e => {\n displayToast(\n `Unable to add the file to your Download Cart. ${e.reason}`,\n 'danger',\n )\n },\n })\n\n const isIdSelected = useCallback(\n (entity: EntityFinderHeader) => {\n return selectedEntities.has(entity.id)\n },\n [selectedEntities],\n )\n\n const onAddClick = useCallback(() => {\n const entities = Array.from(selectedEntities.values()).map(reference => {\n return {\n fileEntityId: reference.targetId,\n versionNumber: reference.targetVersionNumber,\n }\n })\n addBatchToDownloadList(entities)\n }, [selectedEntities, addBatchToDownloadList])\n\n const sharedProps: EntityDetailsListSharedProps = {\n versionSelection: VersionSelectionType.REQUIRED,\n selectColumnType: 'checkbox',\n enableSelectAll: true,\n visibleTypes: [EntityType.file],\n selected: selectedEntities,\n selectableTypes: [EntityType.file],\n isIdSelected,\n isSelectable: () => true,\n toggleSelection,\n setInitialVersion,\n hiddenColumns: [\n DetailsViewColumn.BADGES,\n DetailsViewColumn.ADD_TO_DOWNLOAD_CART,\n DetailsViewColumn.CREATED_ON,\n DetailsViewColumn.VERSION,\n DetailsViewColumn.MODIFIED_BY,\n ],\n }\n return (\n <>\n <Box>\n <EntityChildrenDetails\n parentContainerId={parentContainerId}\n {...sharedProps}\n />\n </Box>\n <Box\n sx={{\n mt: 4,\n }}\n >\n <Button\n endIcon={<AddCircleTwoToneIcon />}\n variant={'outlined'}\n sx={{ alignSelf: 'flex-end', height: '47px' }}\n onClick={onAddClick}\n disabled={!selectedEntities.toArray().length}\n >\n Add to Download Cart\n </Button>\n </Box>\n </>\n )\n}\n"],"names":["ChallengeDataDownload","parentContainerId","downloadCartPageUrl","useSynapseContext","selectMultiple","selectedEntities","toggleSelection","setInitialVersion","useEntitySelection","addBatchToDownloadList","useAddFileBatchToDownloadList","displayToast","e","isIdSelected","useCallback","entity","onAddClick","entities","reference","sharedProps","VersionSelectionType","EntityType","DetailsViewColumn","jsxs","Fragment","jsx","Box","EntityChildrenDetails","Button","AddCircleTwoToneIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,SAASA,GAAsB;AAAA,EACpC,mBAAAC;AACF,GAA+B;AAC7B,QAAM,EAAE,qBAAAC,EAAA,IAAwBC,EAAA,GAC1BC,IAAiB,IACjB,EAAE,kBAAAC,GAAkB,iBAAAC,GAAiB,mBAAAC,EAAA,IACzCC,EAAmBJ,CAAc,GAE7B,EAAE,QAAQK,EAAA,IAA2BC,EAA8B;AAAA,IACvE,WAAW,MAAM;AACf,MAAAC;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,UACE,qBAAqB;AAAA,YACnB,MAAM;AAAA,YACN,SAAS,MAAO,OAAO,SAAS,OAAOT;AAAA,UAAA;AAAA,QACzC;AAAA,MACF;AAAA,IAEJ;AAAA,IACA,SAAS,CAAAU,MAAK;AACZ,MAAAD;AAAA,QACE,iDAAiDC,EAAE,MAAM;AAAA,QACzD;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA,CACD,GAEKC,IAAeC;AAAA,IACnB,CAACC,MACQV,EAAiB,IAAIU,EAAO,EAAE;AAAA,IAEvC,CAACV,CAAgB;AAAA,EAAA,GAGbW,IAAaF,EAAY,MAAM;AACnC,UAAMG,IAAW,MAAM,KAAKZ,EAAiB,QAAQ,EAAE,IAAI,CAAAa,OAClD;AAAA,MACL,cAAcA,EAAU;AAAA,MACxB,eAAeA,EAAU;AAAA,IAAA,EAE5B;AACD,IAAAT,EAAuBQ,CAAQ;AAAA,EACjC,GAAG,CAACZ,GAAkBI,CAAsB,CAAC,GAEvCU,IAA4C;AAAA,IAChD,kBAAkBC,EAAqB;AAAA,IACvC,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,cAAc,CAACC,EAAW,IAAI;AAAA,IAC9B,UAAUhB;AAAA,IACV,iBAAiB,CAACgB,EAAW,IAAI;AAAA,IACjC,cAAAR;AAAA,IACA,cAAc,MAAM;AAAA,IACpB,iBAAAP;AAAA,IACA,mBAAAC;AAAA,IACA,eAAe;AAAA,MACbe,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IAAA;AAAA,EACpB;AAEF,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,mBAAA1B;AAAA,QACC,GAAGkB;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,IACA,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,IAAI;AAAA,QAAA;AAAA,QAGN,UAAA,gBAAAD;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,2BAAUC,GAAA,EAAqB;AAAA,YAC/B,SAAS;AAAA,YACT,IAAI,EAAE,WAAW,YAAY,QAAQ,OAAA;AAAA,YACrC,SAASb;AAAA,YACT,UAAU,CAACX,EAAiB,QAAA,EAAU;AAAA,YACvC,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"ChallengeDataDownload.js","sources":["../../../src/components/ChallengeDataDownload/ChallengeDataDownload.tsx"],"sourcesContent":["import { useAddFileBatchToDownloadList } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport AddCircleTwoToneIcon from '@mui/icons-material/AddCircleTwoTone'\nimport { Box, Button } from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { useCallback } from 'react'\nimport { EntityChildrenDetails } from '../EntityFinder/details/configurations/EntityChildrenDetails'\nimport { EntityDetailsListSharedProps } from '../EntityFinder/details/EntityDetailsList'\nimport { DetailsViewColumn } from '../EntityFinder/details/view/DetailsView'\nimport { EntityFinderHeader } from '../EntityFinder/EntityFinderHeader'\nimport { useEntitySelection } from '../EntityFinder/useEntitySelection'\nimport { VersionSelectionType } from '../EntityFinder/VersionSelectionType'\nimport { displayToast } from '../ToastMessage'\n\nexport type ChallengeDataDownloadProps = {\n parentContainerId: string\n}\n\nexport function ChallengeDataDownload({\n parentContainerId,\n}: ChallengeDataDownloadProps) {\n const { downloadCartPageUrl } = useSynapseContext()\n const selectMultiple = true\n const { selectedEntities, toggleSelection, setInitialVersion } =\n useEntitySelection(selectMultiple)\n\n const { mutate: addBatchToDownloadList } = useAddFileBatchToDownloadList({\n onSuccess: () => {\n displayToast(\n 'File(s) were successfully added to your Download List.',\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download List',\n onClick: () => (window.location.href = downloadCartPageUrl),\n },\n },\n )\n },\n onError: e => {\n displayToast(\n `Unable to add the file to your Download List. ${e.reason}`,\n 'danger',\n )\n },\n })\n\n const isIdSelected = useCallback(\n (entity: EntityFinderHeader) => {\n return selectedEntities.has(entity.id)\n },\n [selectedEntities],\n )\n\n const onAddClick = useCallback(() => {\n const entities = Array.from(selectedEntities.values()).map(reference => {\n return {\n fileEntityId: reference.targetId,\n versionNumber: reference.targetVersionNumber,\n }\n })\n addBatchToDownloadList(entities)\n }, [selectedEntities, addBatchToDownloadList])\n\n const sharedProps: EntityDetailsListSharedProps = {\n versionSelection: VersionSelectionType.REQUIRED,\n selectColumnType: 'checkbox',\n enableSelectAll: true,\n visibleTypes: [EntityType.file],\n selected: selectedEntities,\n selectableTypes: [EntityType.file],\n isIdSelected,\n isSelectable: () => true,\n toggleSelection,\n setInitialVersion,\n hiddenColumns: [\n DetailsViewColumn.BADGES,\n DetailsViewColumn.ADD_TO_DOWNLOAD_CART,\n DetailsViewColumn.CREATED_ON,\n DetailsViewColumn.VERSION,\n DetailsViewColumn.MODIFIED_BY,\n ],\n }\n return (\n <>\n <Box>\n <EntityChildrenDetails\n parentContainerId={parentContainerId}\n {...sharedProps}\n />\n </Box>\n <Box\n sx={{\n mt: 4,\n }}\n >\n <Button\n endIcon={<AddCircleTwoToneIcon />}\n variant={'outlined'}\n sx={{ alignSelf: 'flex-end', height: '47px' }}\n onClick={onAddClick}\n disabled={!selectedEntities.toArray().length}\n >\n Add to Download List\n </Button>\n </Box>\n </>\n )\n}\n"],"names":["ChallengeDataDownload","parentContainerId","downloadCartPageUrl","useSynapseContext","selectMultiple","selectedEntities","toggleSelection","setInitialVersion","useEntitySelection","addBatchToDownloadList","useAddFileBatchToDownloadList","displayToast","e","isIdSelected","useCallback","entity","onAddClick","entities","reference","sharedProps","VersionSelectionType","EntityType","DetailsViewColumn","jsxs","Fragment","jsx","Box","EntityChildrenDetails","Button","AddCircleTwoToneIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,SAASA,GAAsB;AAAA,EACpC,mBAAAC;AACF,GAA+B;AAC7B,QAAM,EAAE,qBAAAC,EAAA,IAAwBC,EAAA,GAC1BC,IAAiB,IACjB,EAAE,kBAAAC,GAAkB,iBAAAC,GAAiB,mBAAAC,EAAA,IACzCC,EAAmBJ,CAAc,GAE7B,EAAE,QAAQK,EAAA,IAA2BC,EAA8B;AAAA,IACvE,WAAW,MAAM;AACf,MAAAC;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,UACE,qBAAqB;AAAA,YACnB,MAAM;AAAA,YACN,SAAS,MAAO,OAAO,SAAS,OAAOT;AAAA,UAAA;AAAA,QACzC;AAAA,MACF;AAAA,IAEJ;AAAA,IACA,SAAS,CAAAU,MAAK;AACZ,MAAAD;AAAA,QACE,iDAAiDC,EAAE,MAAM;AAAA,QACzD;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA,CACD,GAEKC,IAAeC;AAAA,IACnB,CAACC,MACQV,EAAiB,IAAIU,EAAO,EAAE;AAAA,IAEvC,CAACV,CAAgB;AAAA,EAAA,GAGbW,IAAaF,EAAY,MAAM;AACnC,UAAMG,IAAW,MAAM,KAAKZ,EAAiB,QAAQ,EAAE,IAAI,CAAAa,OAClD;AAAA,MACL,cAAcA,EAAU;AAAA,MACxB,eAAeA,EAAU;AAAA,IAAA,EAE5B;AACD,IAAAT,EAAuBQ,CAAQ;AAAA,EACjC,GAAG,CAACZ,GAAkBI,CAAsB,CAAC,GAEvCU,IAA4C;AAAA,IAChD,kBAAkBC,EAAqB;AAAA,IACvC,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,cAAc,CAACC,EAAW,IAAI;AAAA,IAC9B,UAAUhB;AAAA,IACV,iBAAiB,CAACgB,EAAW,IAAI;AAAA,IACjC,cAAAR;AAAA,IACA,cAAc,MAAM;AAAA,IACpB,iBAAAP;AAAA,IACA,mBAAAC;AAAA,IACA,eAAe;AAAA,MACbe,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IAAA;AAAA,EACpB;AAEF,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,mBAAA1B;AAAA,QACC,GAAGkB;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,IACA,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,IAAI;AAAA,QAAA;AAAA,QAGN,UAAA,gBAAAD;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,2BAAUC,GAAA,EAAqB;AAAA,YAC/B,SAAS;AAAA,YACT,IAAI,EAAE,WAAW,YAAY,QAAQ,OAAA;AAAA,YACrC,SAASb;AAAA,YACT,UAAU,CAACX,EAAiB,QAAA,EAAU;AAAA,YACvC,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
@@ -1,10 +1,10 @@
1
1
  import { jsx as e, jsxs as u, Fragment as r } from "react/jsx-runtime";
2
2
  import { LightTooltip as b } from "../styled/LightTooltip.js";
3
3
  import { HelpOutlineTwoTone as x } from "@mui/icons-material";
4
- import { Typography as d, Box as c, Autocomplete as g, TextField as E, MenuItem as L, Button as S, Collapse as A, List as T, ListItem as w } from "@mui/material";
4
+ import { Typography as d, Box as c, Autocomplete as g, TextField as E, MenuItem as L, Button as S, Collapse as w, List as A, ListItem as M } from "@mui/material";
5
5
  import { noop as h } from "lodash-es";
6
- import { useEffect as M, useState as p } from "react";
7
- import { MarkdownSynapse as y } from "../Markdown/MarkdownSynapse.js";
6
+ import { useEffect as T, useState as p } from "react";
7
+ import { Markdown as k } from "../Markdown/MarkdownSynapse.js";
8
8
  function m(t) {
9
9
  const { text: i, tooltipMarkdownText: n } = t;
10
10
  return /* @__PURE__ */ u(r, { children: [
@@ -19,7 +19,7 @@ function m(t) {
19
19
  sx: {
20
20
  mb: 0
21
21
  },
22
- children: /* @__PURE__ */ e(y, { markdown: n })
22
+ children: /* @__PURE__ */ e(k, { markdown: n })
23
23
  }
24
24
  ),
25
25
  children: /* @__PURE__ */ e(
@@ -40,7 +40,7 @@ function v(t) {
40
40
  const { evaluations: i } = t;
41
41
  return /* @__PURE__ */ u(r, { children: [
42
42
  /* @__PURE__ */ e(d, { variant: "body1", children: "Available Evaluation Queues:" }),
43
- /* @__PURE__ */ e(T, { dense: !0, children: i.map((n) => /* @__PURE__ */ e(w, { children: /* @__PURE__ */ e(
43
+ /* @__PURE__ */ e(A, { dense: !0, children: i.map((n) => /* @__PURE__ */ e(M, { children: /* @__PURE__ */ e(
44
44
  m,
45
45
  {
46
46
  text: n.name,
@@ -49,7 +49,7 @@ function v(t) {
49
49
  ) }, n.id)) })
50
50
  ] });
51
51
  }
52
- function C(t) {
52
+ function y(t) {
53
53
  const { evaluations: i, isSelectable: n } = t, [a, l] = p(!1), o = n ? 2 : 8, s = i.length >= o;
54
54
  return /* @__PURE__ */ e(
55
55
  c,
@@ -67,12 +67,12 @@ function C(t) {
67
67
  children: `${a ? "Hide" : "Show"} All Available Evaluation Queues`
68
68
  }
69
69
  ),
70
- /* @__PURE__ */ e(A, { in: a, children: /* @__PURE__ */ e(v, { ...t }) })
70
+ /* @__PURE__ */ e(w, { in: a, children: /* @__PURE__ */ e(v, { ...t }) })
71
71
  ] }) : /* @__PURE__ */ e(r, { children: /* @__PURE__ */ e(v, { ...t }) })
72
72
  }
73
73
  );
74
74
  }
75
- function I(t) {
75
+ function C(t) {
76
76
  const { evaluations: i, onChangeSelectedEvaluation: n = h } = t, [a, l] = p(null);
77
77
  return /* @__PURE__ */ e(
78
78
  g,
@@ -84,7 +84,7 @@ function I(t) {
84
84
  },
85
85
  options: i,
86
86
  getOptionLabel: (o) => o.name,
87
- renderOption: (o, s, Q, f) => /* @__PURE__ */ e(L, { ...o, children: /* @__PURE__ */ e(
87
+ renderOption: (o, s, I, f) => /* @__PURE__ */ e(L, { ...o, children: /* @__PURE__ */ e(
88
88
  m,
89
89
  {
90
90
  text: f.getOptionLabel(s),
@@ -101,7 +101,7 @@ function z(t) {
101
101
  onChangeSelectedEvaluation: n = h,
102
102
  evaluations: a
103
103
  } = t, l = a.length;
104
- if (M(() => {
104
+ if (T(() => {
105
105
  l === 1 && i && n(a[0]);
106
106
  }, [a, i, l, n]), l === 0)
107
107
  return /* @__PURE__ */ e(d, { variant: "body1", children: "No evaluations found" });
@@ -129,8 +129,8 @@ function z(t) {
129
129
  {
130
130
  className: "AvailableEvaluationQueueList",
131
131
  children: [
132
- i && /* @__PURE__ */ e(I, { ...t }),
133
- /* @__PURE__ */ e(C, { ...t })
132
+ i && /* @__PURE__ */ e(C, { ...t }),
133
+ /* @__PURE__ */ e(y, { ...t })
134
134
  ]
135
135
  }
136
136
  );
@@ -1 +1 @@
1
- {"version":3,"file":"CreateChallengeTeam.d.ts","sourceRoot":"","sources":["../../../src/components/ChallengeTeamWizard/CreateChallengeTeam.tsx"],"names":[],"mappings":"AAeA,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC,CAAA;AAGD,eAAO,MAAM,uBAAuB,iIAC4F,CAAA;AAEhI,MAAM,MAAM,yBAAyB,GAAG;IAEtC,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,mBAAmB,gIAmL9B,CAAA"}
1
+ {"version":3,"file":"CreateChallengeTeam.d.ts","sourceRoot":"","sources":["../../../src/components/ChallengeTeamWizard/CreateChallengeTeam.tsx"],"names":[],"mappings":"AAiBA,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC,CAAA;AAGD,eAAO,MAAM,uBAAuB,iIAC4F,CAAA;AAEhI,MAAM,MAAM,yBAAyB,GAAG;IAEtC,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,mBAAmB,gIAmL9B,CAAA"}
@@ -4,8 +4,8 @@ import { Box as n, Typography as l, Alert as _ } from "@mui/material";
4
4
  import o from "../TextField/TextField.js";
5
5
  import F from "./useCreateAndRegisterChallengeTeam.js";
6
6
  import { noop as T, isEmpty as S } from "lodash-es";
7
- import { parse as V } from "papaparse";
8
- const j = 3, B = "Please limit the initial number of invited members to three. You may add additional members after the team has been created.", J = P(function(C, R) {
7
+ import V from "papaparse";
8
+ const { parse: j } = V, B = 3, D = "Please limit the initial number of invited members to three. You may add additional members after the team has been created.", K = P(function(C, R) {
9
9
  const { challengeId: v, onCanSubmitChange: f = T, onFinished: g = T } = C, [a, w] = p({
10
10
  name: "",
11
11
  description: ""
@@ -13,14 +13,14 @@ const j = 3, B = "Please limit the initial number of invited members to three. Y
13
13
  const i = { ...a, ...e };
14
14
  w(i);
15
15
  }, { inviteesParseResult: I, parsedInvitees: u } = N(() => {
16
- const e = V(m, {
16
+ const e = j(m, {
17
17
  delimiter: ",",
18
18
  transform(A) {
19
19
  return A.trim();
20
20
  }
21
21
  }), i = e.data[0] || [];
22
22
  return { inviteesParseResult: e, parsedInvitees: i };
23
- }, [m]), c = u.length > j, r = !!(a && a.name && a.name.length > 1 && !c);
23
+ }, [m]), c = u.length > B, r = !!(a && a.name && a.name.length > 1 && !c);
24
24
  O(() => {
25
25
  f(r);
26
26
  }, [r, f]);
@@ -147,14 +147,14 @@ const j = 3, B = "Please limit the initial number of invited members to three. Y
147
147
  }
148
148
  ),
149
149
  (c || !S(I.errors) || h) && /* @__PURE__ */ y(_, { severity: "error", children: [
150
- c && /* @__PURE__ */ t(l, { variant: "body1", children: B }),
150
+ c && /* @__PURE__ */ t(l, { variant: "body1", children: D }),
151
151
  I.errors.map((e, i) => /* @__PURE__ */ t(l, { variant: "body1", children: e.message }, i)),
152
152
  h && h.map((e) => /* @__PURE__ */ t(l, { variant: "body1", children: e.reason }, e.reason))
153
153
  ] })
154
154
  ] });
155
155
  });
156
156
  export {
157
- J as CreateChallengeTeam,
158
- B as TOO_MANY_INVITEES_ERROR
157
+ K as CreateChallengeTeam,
158
+ D as TOO_MANY_INVITEES_ERROR
159
159
  };
160
160
  //# sourceMappingURL=CreateChallengeTeam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateChallengeTeam.js","sources":["../../../src/components/ChallengeTeamWizard/CreateChallengeTeam.tsx"],"sourcesContent":["import {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { Alert, Box, Typography } from '@mui/material'\nimport TextField from '../TextField'\nimport { CreateTeamRequest, Team } from '@sage-bionetworks/synapse-types'\nimport useCreateAndRegisterChallengeTeam from './useCreateAndRegisterChallengeTeam'\nimport { isEmpty, noop } from 'lodash-es'\nimport { parse } from 'papaparse'\n\nexport type CreateChallengeTeamProps = {\n challengeId: string\n onCanSubmitChange?: (canSubmit: boolean) => void\n onFinished?: (teamId: string) => void\n}\n\nconst INVITEE_LIMIT = 3\nexport const TOO_MANY_INVITEES_ERROR =\n 'Please limit the initial number of invited members to three. You may add additional members after the team has been created.'\n\nexport type CreateChallengeTeamHandle = {\n // Allow the parent component to trigger a submit of the form, so this may be embedded in an arbitrary modal.\n submit: () => void\n}\n\nexport const CreateChallengeTeam = forwardRef(function CreateChallengeTeam(\n props: CreateChallengeTeamProps,\n ref: ForwardedRef<CreateChallengeTeamHandle>,\n) {\n const { challengeId, onCanSubmitChange = noop, onFinished = noop } = props\n const [team, setTeam] = useState<CreateTeamRequest>({\n name: '',\n description: '',\n })\n const [invitationMessage, setInvitationMessage] = useState('')\n const [rawInvitees, setRawInvitees] = useState('')\n\n const handleTeamUpdate = (update: Partial<Team>) => {\n const updatedTeam: CreateTeamRequest = { ...team, ...update }\n setTeam(updatedTeam)\n }\n\n const { inviteesParseResult, parsedInvitees } = useMemo(() => {\n const inviteesParseResult = parse<string[]>(rawInvitees, {\n delimiter: ',',\n transform(value) {\n return value.trim()\n },\n })\n const parsedInvitees: string[] = inviteesParseResult.data[0] || []\n\n return { inviteesParseResult, parsedInvitees }\n }, [rawInvitees])\n\n const numberOfInvitees = parsedInvitees.length\n const tooManyInvitees = numberOfInvitees > INVITEE_LIMIT\n\n const formDataIsValid = Boolean(\n team && team.name && team.name.length > 1 && !tooManyInvitees,\n )\n\n useEffect(() => {\n onCanSubmitChange(formDataIsValid)\n }, [formDataIsValid, onCanSubmitChange])\n\n const {\n createAndRegisterTeam,\n isPending: mutationIsPending,\n errors,\n } = useCreateAndRegisterChallengeTeam()\n\n useImperativeHandle(\n ref,\n () => {\n return {\n submit() {\n if (!formDataIsValid) {\n console.warn(\n 'Attempted to submit when form data was not valid. Nothing will happen.',\n )\n return\n }\n createAndRegisterTeam(\n team,\n challengeId,\n parsedInvitees,\n invitationMessage,\n )\n .then(([newTeam]) => {\n onFinished(newTeam.id)\n })\n .catch(() => {\n // The hook will return errors, so no need to handle them here\n })\n },\n }\n },\n [\n formDataIsValid,\n parsedInvitees,\n createAndRegisterTeam,\n team,\n challengeId,\n invitationMessage,\n onFinished,\n ],\n )\n\n return (\n <Box>\n <Typography variant=\"body1\" sx={{ lineHeight: '20px' }}>\n Create a new team for this Challenge!\n </Typography>\n <TextField\n id=\"name\"\n label=\"Team Name\"\n value={team.name}\n fullWidth\n autoFocus\n required\n onChange={event => handleTeamUpdate({ name: event.target.value })}\n disabled={mutationIsPending}\n />\n <Box\n sx={{\n display: 'flex',\n }}\n >\n <TextField\n id=\"description\"\n label={\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n }}\n >\n <Box>Team Description</Box>\n </Box>\n }\n value={team.description}\n fullWidth\n multiline\n rows={4}\n onChange={event =>\n handleTeamUpdate({ description: event.target.value })\n }\n disabled={mutationIsPending}\n />\n </Box>\n <Box\n sx={{\n display: 'flex',\n }}\n >\n <TextField\n id=\"message\"\n label={\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n }}\n >\n <Box>Recruitment Message</Box>\n </Box>\n }\n value={invitationMessage}\n fullWidth\n multiline\n rows={4}\n onChange={event => setInvitationMessage(event.target.value)}\n disabled={mutationIsPending}\n />\n </Box>\n <TextField\n id=\"invitees\"\n label=\"Emails of Additional Members to Invite (max 3)\"\n placeholder=\"Enter emails separated by comma\"\n value={rawInvitees}\n fullWidth\n onChange={event => setRawInvitees(event.target.value)}\n disabled={mutationIsPending}\n />\n {(tooManyInvitees || !isEmpty(inviteesParseResult.errors) || errors) && (\n <Alert severity=\"error\">\n {tooManyInvitees && (\n <Typography variant={'body1'}>{TOO_MANY_INVITEES_ERROR}</Typography>\n )}\n {inviteesParseResult.errors.map((error, index) => (\n <Typography key={index} variant={'body1'}>\n {error.message}\n </Typography>\n ))}\n {errors &&\n errors.map(error => (\n <Typography key={error.reason} variant={'body1'}>\n {error.reason}\n </Typography>\n ))}\n </Alert>\n )}\n </Box>\n )\n})\n"],"names":["INVITEE_LIMIT","TOO_MANY_INVITEES_ERROR","CreateChallengeTeam","forwardRef","props","ref","challengeId","onCanSubmitChange","noop","onFinished","team","setTeam","useState","invitationMessage","setInvitationMessage","rawInvitees","setRawInvitees","handleTeamUpdate","update","updatedTeam","inviteesParseResult","parsedInvitees","useMemo","parse","value","tooManyInvitees","formDataIsValid","useEffect","createAndRegisterTeam","mutationIsPending","errors","useCreateAndRegisterChallengeTeam","useImperativeHandle","newTeam","Box","jsx","Typography","TextField","event","isEmpty","jsxs","Alert","error","index"],"mappings":"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"}
1
+ {"version":3,"file":"CreateChallengeTeam.js","sources":["../../../src/components/ChallengeTeamWizard/CreateChallengeTeam.tsx"],"sourcesContent":["import {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { Alert, Box, Typography } from '@mui/material'\nimport TextField from '../TextField'\nimport { CreateTeamRequest, Team } from '@sage-bionetworks/synapse-types'\nimport useCreateAndRegisterChallengeTeam from './useCreateAndRegisterChallengeTeam'\nimport { isEmpty, noop } from 'lodash-es'\nimport papaparseLib from 'papaparse'\n// papaparse is CJS-only; pull named values from the default export.\nconst { parse } = papaparseLib\n\nexport type CreateChallengeTeamProps = {\n challengeId: string\n onCanSubmitChange?: (canSubmit: boolean) => void\n onFinished?: (teamId: string) => void\n}\n\nconst INVITEE_LIMIT = 3\nexport const TOO_MANY_INVITEES_ERROR =\n 'Please limit the initial number of invited members to three. You may add additional members after the team has been created.'\n\nexport type CreateChallengeTeamHandle = {\n // Allow the parent component to trigger a submit of the form, so this may be embedded in an arbitrary modal.\n submit: () => void\n}\n\nexport const CreateChallengeTeam = forwardRef(function CreateChallengeTeam(\n props: CreateChallengeTeamProps,\n ref: ForwardedRef<CreateChallengeTeamHandle>,\n) {\n const { challengeId, onCanSubmitChange = noop, onFinished = noop } = props\n const [team, setTeam] = useState<CreateTeamRequest>({\n name: '',\n description: '',\n })\n const [invitationMessage, setInvitationMessage] = useState('')\n const [rawInvitees, setRawInvitees] = useState('')\n\n const handleTeamUpdate = (update: Partial<Team>) => {\n const updatedTeam: CreateTeamRequest = { ...team, ...update }\n setTeam(updatedTeam)\n }\n\n const { inviteesParseResult, parsedInvitees } = useMemo(() => {\n const inviteesParseResult = parse<string[]>(rawInvitees, {\n delimiter: ',',\n transform(value) {\n return value.trim()\n },\n })\n const parsedInvitees: string[] = inviteesParseResult.data[0] || []\n\n return { inviteesParseResult, parsedInvitees }\n }, [rawInvitees])\n\n const numberOfInvitees = parsedInvitees.length\n const tooManyInvitees = numberOfInvitees > INVITEE_LIMIT\n\n const formDataIsValid = Boolean(\n team && team.name && team.name.length > 1 && !tooManyInvitees,\n )\n\n useEffect(() => {\n onCanSubmitChange(formDataIsValid)\n }, [formDataIsValid, onCanSubmitChange])\n\n const {\n createAndRegisterTeam,\n isPending: mutationIsPending,\n errors,\n } = useCreateAndRegisterChallengeTeam()\n\n useImperativeHandle(\n ref,\n () => {\n return {\n submit() {\n if (!formDataIsValid) {\n console.warn(\n 'Attempted to submit when form data was not valid. Nothing will happen.',\n )\n return\n }\n createAndRegisterTeam(\n team,\n challengeId,\n parsedInvitees,\n invitationMessage,\n )\n .then(([newTeam]) => {\n onFinished(newTeam.id)\n })\n .catch(() => {\n // The hook will return errors, so no need to handle them here\n })\n },\n }\n },\n [\n formDataIsValid,\n parsedInvitees,\n createAndRegisterTeam,\n team,\n challengeId,\n invitationMessage,\n onFinished,\n ],\n )\n\n return (\n <Box>\n <Typography variant=\"body1\" sx={{ lineHeight: '20px' }}>\n Create a new team for this Challenge!\n </Typography>\n <TextField\n id=\"name\"\n label=\"Team Name\"\n value={team.name}\n fullWidth\n autoFocus\n required\n onChange={event => handleTeamUpdate({ name: event.target.value })}\n disabled={mutationIsPending}\n />\n <Box\n sx={{\n display: 'flex',\n }}\n >\n <TextField\n id=\"description\"\n label={\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n }}\n >\n <Box>Team Description</Box>\n </Box>\n }\n value={team.description}\n fullWidth\n multiline\n rows={4}\n onChange={event =>\n handleTeamUpdate({ description: event.target.value })\n }\n disabled={mutationIsPending}\n />\n </Box>\n <Box\n sx={{\n display: 'flex',\n }}\n >\n <TextField\n id=\"message\"\n label={\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n }}\n >\n <Box>Recruitment Message</Box>\n </Box>\n }\n value={invitationMessage}\n fullWidth\n multiline\n rows={4}\n onChange={event => setInvitationMessage(event.target.value)}\n disabled={mutationIsPending}\n />\n </Box>\n <TextField\n id=\"invitees\"\n label=\"Emails of Additional Members to Invite (max 3)\"\n placeholder=\"Enter emails separated by comma\"\n value={rawInvitees}\n fullWidth\n onChange={event => setRawInvitees(event.target.value)}\n disabled={mutationIsPending}\n />\n {(tooManyInvitees || !isEmpty(inviteesParseResult.errors) || errors) && (\n <Alert severity=\"error\">\n {tooManyInvitees && (\n <Typography variant={'body1'}>{TOO_MANY_INVITEES_ERROR}</Typography>\n )}\n {inviteesParseResult.errors.map((error, index) => (\n <Typography key={index} variant={'body1'}>\n {error.message}\n </Typography>\n ))}\n {errors &&\n errors.map(error => (\n <Typography key={error.reason} variant={'body1'}>\n {error.reason}\n </Typography>\n ))}\n </Alert>\n )}\n </Box>\n )\n})\n"],"names":["parse","papaparseLib","INVITEE_LIMIT","TOO_MANY_INVITEES_ERROR","CreateChallengeTeam","forwardRef","props","ref","challengeId","onCanSubmitChange","noop","onFinished","team","setTeam","useState","invitationMessage","setInvitationMessage","rawInvitees","setRawInvitees","handleTeamUpdate","update","updatedTeam","inviteesParseResult","parsedInvitees","useMemo","value","tooManyInvitees","formDataIsValid","useEffect","createAndRegisterTeam","mutationIsPending","errors","useCreateAndRegisterChallengeTeam","useImperativeHandle","newTeam","Box","jsx","Typography","TextField","event","isEmpty","jsxs","Alert","error","index"],"mappings":"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"}
@@ -43,11 +43,14 @@ import "@mui/material/SvgIcon";
43
43
  import "../../assets/icons/AccessPending.svg.js";
44
44
  import "../../assets/icons/AccessPendingCloud.svg.js";
45
45
  import "../../assets/icons/FileWithShield.svg.js";
46
+ import "../../assets/icons/MultiFile.svg.js";
47
+ import "../../assets/icons/UnpackagableFile.svg.js";
46
48
  import "../../assets/icons/bioChemicalPhysical.svg.js";
47
49
  import "../../assets/icons/computationalTool.svg.js";
48
50
  import "../../assets/icons/dataReuse.svg.js";
49
51
  import "../../assets/icons/inSilicoModel.svg.js";
50
52
  import "../../assets/icons/modelSystem.svg.js";
53
+ import "../../assets/mui_components/PackagableFile.svg.js";
51
54
  import "../../assets/icons/spatialProfiling.svg.js";
52
55
  /* empty css */
53
56
  import "../Authentication/AuthenticationMethodSelection.js";
@@ -58,7 +61,7 @@ import "react-hot-toast";
58
61
  import "react-transition-group";
59
62
  import "../Authentication/RecoveryCodeGrid.js";
60
63
  const H = "Two-factor authentication is required to change your password. Your password has not yet been changed.";
61
- function zo(p) {
64
+ function $o(p) {
62
65
  const _ = W("/reset2FA"), w = Y(
63
66
  _,
64
67
  "twoFAResetToken"
@@ -176,6 +179,6 @@ function zo(p) {
176
179
  }
177
180
  export {
178
181
  H as TWO_FACTOR_AUTH_CHANGE_PASSWORD_PROMPT,
179
- zo as default
182
+ $o as default
180
183
  };
181
184
  //# sourceMappingURL=useChangePasswordFormState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useChangePasswordFormState.js","sources":["../../../src/components/ChangePassword/useChangePasswordFormState.tsx"],"sourcesContent":["import { useChangePassword, useResetTwoFactorAuth } from '@/synapse-queries'\nimport appendFinalQueryParamKey from '@/utils/appendFinalQueryParamKey'\nimport { useOneSageURL } from '@/utils/hooks'\nimport { Alert, Typography } from '@mui/material'\nimport { TwoFactorAuthErrorResponse } from '@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse'\nimport {\n ChangePasswordWithCurrentPassword,\n ChangePasswordWithToken as ChangePasswordWithTokenObject,\n ChangePasswordWithTwoFactorAuthToken,\n PasswordResetSignedToken,\n TwoFactorAuthOtpType,\n TwoFactorAuthResetRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback, useState } from 'react'\nimport { ONE_TIME_PASSWORD_STEP, OneTimePasswordForm } from '../Authentication'\nimport {\n RECOVERY_CODE_GUIDANCE_TEXT_SHORT,\n TOTP_GUIDANCE_TEXT,\n} from '../Authentication/Constants'\n\nexport const TWO_FACTOR_AUTH_CHANGE_PASSWORD_PROMPT =\n 'Two-factor authentication is required to change your password. Your password has not yet been changed.'\n\nexport type UseChangePasswordFormStateOptions = {\n hideReset2FA?: boolean\n onChangePasswordSuccess?: () => void\n}\n\n/**\n * Hook that handles submitting a change password request and prompting the user for 2FA if necessary.\n * @param options\n */\nexport default function useChangePasswordFormState(\n options?: UseChangePasswordFormStateOptions,\n) {\n const defaultTwoFactorAuthResetUrl = useOneSageURL('/reset2FA')\n const twoFactorAuthResetUri = appendFinalQueryParamKey(\n defaultTwoFactorAuthResetUrl,\n 'twoFAResetToken',\n )\n\n // Store current and new password in state so that we can re-use it if 2FA is required\n const [currentPassword, setCurrentPassword] = useState<string>('')\n const [newPassword, setNewPassword] = useState<string>('')\n const [twoFactorAuthErrorResponse, setTwoFactorAuthErrorResponse] = useState<\n TwoFactorAuthErrorResponse | undefined\n >()\n const [otpStep, setOtpStep] =\n useState<ONE_TIME_PASSWORD_STEP>('VERIFICATION_CODE')\n const [successfullyChangedPassword, setSuccessfullyChangedPassword] =\n useState(false)\n const {\n mutate: changePassword,\n isPending,\n error,\n } = useChangePassword({\n onSuccess: maybeTwoFactorResponse => {\n if (maybeTwoFactorResponse) {\n // We store the 2FA Error Response in state because the `changePasswordResult` may change before we are done with the 2FA code,\n // e.g. if the user enters the wrong 2FA code\n setTwoFactorAuthErrorResponse(maybeTwoFactorResponse)\n } else {\n setSuccessfullyChangedPassword(true)\n setTwoFactorAuthErrorResponse(undefined)\n if (options?.onChangePasswordSuccess) {\n options.onChangePasswordSuccess()\n }\n }\n },\n })\n\n const handleChangePasswordWithCurrentPassword = useCallback(\n (username: string, currentPassword: string, newPassword: string) => {\n setCurrentPassword(currentPassword)\n setNewPassword(newPassword)\n const changeRequest: ChangePasswordWithCurrentPassword = {\n username,\n currentPassword,\n newPassword,\n concreteType:\n 'org.sagebionetworks.repo.model.auth.ChangePasswordWithCurrentPassword',\n }\n changePassword(changeRequest)\n },\n [changePassword],\n )\n\n const handleChangePasswordWithResetToken = useCallback(\n (newPassword: string, passwordChangeToken: PasswordResetSignedToken) => {\n setNewPassword(newPassword)\n const changeRequest: ChangePasswordWithTokenObject = {\n newPassword,\n concreteType:\n 'org.sagebionetworks.repo.model.auth.ChangePasswordWithToken',\n passwordChangeToken: passwordChangeToken,\n }\n changePassword(changeRequest)\n },\n [changePassword],\n )\n\n const handleChangePasswordWithOtp = useCallback(\n (newPassword: string, code: string, otpType: TwoFactorAuthOtpType) => {\n if (twoFactorAuthErrorResponse) {\n const changeRequest: ChangePasswordWithTwoFactorAuthToken = {\n newPassword,\n concreteType:\n 'org.sagebionetworks.repo.model.auth.ChangePasswordWithTwoFactorAuthToken',\n userId: twoFactorAuthErrorResponse.userId!,\n twoFaToken: twoFactorAuthErrorResponse.twoFaToken!,\n otpType: otpType,\n otpCode: code,\n }\n changePassword(changeRequest)\n }\n },\n [changePassword, twoFactorAuthErrorResponse],\n )\n const promptForTwoFactorAuth = Boolean(twoFactorAuthErrorResponse)\n const {\n mutate: resetTwoFactorAuth,\n isSuccess: twoFactorAuthResetIsSuccess,\n isPending: twoFactorAuthResetIsPending,\n } = useResetTwoFactorAuth()\n\n const beginTwoFactorAuthReset = useCallback(\n (twoFaResetEndpoint: string) => {\n if (twoFactorAuthErrorResponse) {\n const request: TwoFactorAuthResetRequest = {\n userId: twoFactorAuthErrorResponse.userId!,\n twoFaResetEndpoint: twoFaResetEndpoint,\n // When attempting to reset 2FA while resetting a password, the current password must be used to request 2FA reset\n password: currentPassword,\n }\n resetTwoFactorAuth(request)\n }\n },\n [currentPassword, resetTwoFactorAuth, twoFactorAuthErrorResponse],\n )\n\n const TwoFactorAuthPrompt = useCallback(() => {\n if (!promptForTwoFactorAuth) {\n return <></>\n }\n return (\n <>\n {otpStep === 'VERIFICATION_CODE' && (\n <Typography variant={'body1'} sx={{ my: 2 }} align={'center'}>\n {TOTP_GUIDANCE_TEXT}\n </Typography>\n )}\n {otpStep === 'RECOVERY_CODE' && (\n <Typography variant={'body1'} sx={{ my: 2 }} align={'center'}>\n {RECOVERY_CODE_GUIDANCE_TEXT_SHORT}\n </Typography>\n )}\n <OneTimePasswordForm\n step={otpStep}\n onClickUseTOTP={() => {\n setOtpStep('VERIFICATION_CODE')\n }}\n onClickUseBackupCode={() => {\n setOtpStep('RECOVERY_CODE')\n }}\n loginIsPending={isPending}\n onSubmit={(code, otpType) =>\n handleChangePasswordWithOtp(newPassword, code, otpType)\n }\n hideReset2FA={options?.hideReset2FA}\n onClickPromptReset2FA={() => {\n setOtpStep('DISABLE_2FA_PROMPT')\n }}\n onClickReset2FA={() => {\n beginTwoFactorAuthReset(twoFactorAuthResetUri)\n }}\n twoFactorAuthResetIsPending={twoFactorAuthResetIsPending}\n twoFactorAuthResetIsSuccess={twoFactorAuthResetIsSuccess}\n />\n {(otpStep === 'RECOVERY_CODE' || otpStep === 'VERIFICATION_CODE') && (\n <Alert severity={'info'} sx={{ my: 2 }}>\n {TWO_FACTOR_AUTH_CHANGE_PASSWORD_PROMPT}\n </Alert>\n )}\n {otpStep === 'DISABLE_2FA_PROMPT' && twoFactorAuthResetIsSuccess && (\n <Alert severity={'warning'} sx={{ my: 2 }}>\n <strong>Your password has not been changed.</strong> To disable\n two-factor authentication, you may be required to enter your current\n password after clicking the link sent to your email address.\n </Alert>\n )}\n </>\n )\n }, [\n beginTwoFactorAuthReset,\n handleChangePasswordWithOtp,\n isPending,\n newPassword,\n options?.hideReset2FA,\n otpStep,\n promptForTwoFactorAuth,\n twoFactorAuthResetIsPending,\n twoFactorAuthResetIsSuccess,\n twoFactorAuthResetUri,\n ])\n\n return {\n successfullyChangedPassword,\n isPending,\n error,\n promptForTwoFactorAuth,\n TwoFactorAuthPrompt: TwoFactorAuthPrompt,\n handleChangePasswordWithCurrentPassword,\n handleChangePasswordWithResetToken,\n }\n}\n"],"names":["TWO_FACTOR_AUTH_CHANGE_PASSWORD_PROMPT","useChangePasswordFormState","options","defaultTwoFactorAuthResetUrl","useOneSageURL","twoFactorAuthResetUri","appendFinalQueryParamKey","currentPassword","setCurrentPassword","useState","newPassword","setNewPassword","twoFactorAuthErrorResponse","setTwoFactorAuthErrorResponse","otpStep","setOtpStep","successfullyChangedPassword","setSuccessfullyChangedPassword","changePassword","isPending","error","useChangePassword","maybeTwoFactorResponse","handleChangePasswordWithCurrentPassword","useCallback","username","handleChangePasswordWithResetToken","passwordChangeToken","handleChangePasswordWithOtp","code","otpType","changeRequest","promptForTwoFactorAuth","resetTwoFactorAuth","twoFactorAuthResetIsSuccess","twoFactorAuthResetIsPending","useResetTwoFactorAuth","beginTwoFactorAuthReset","twoFaResetEndpoint","request","TwoFactorAuthPrompt","jsxs","Fragment","jsx","Typography","TOTP_GUIDANCE_TEXT","RECOVERY_CODE_GUIDANCE_TEXT_SHORT","OneTimePasswordForm","Alert"],"mappings":"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"}
1
+ {"version":3,"file":"useChangePasswordFormState.js","sources":["../../../src/components/ChangePassword/useChangePasswordFormState.tsx"],"sourcesContent":["import { useChangePassword, useResetTwoFactorAuth } from '@/synapse-queries'\nimport appendFinalQueryParamKey from '@/utils/appendFinalQueryParamKey'\nimport { useOneSageURL } from '@/utils/hooks'\nimport { Alert, Typography } from '@mui/material'\nimport { TwoFactorAuthErrorResponse } from '@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse'\nimport {\n ChangePasswordWithCurrentPassword,\n ChangePasswordWithToken as ChangePasswordWithTokenObject,\n ChangePasswordWithTwoFactorAuthToken,\n PasswordResetSignedToken,\n TwoFactorAuthOtpType,\n TwoFactorAuthResetRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback, useState } from 'react'\nimport { ONE_TIME_PASSWORD_STEP, OneTimePasswordForm } from '../Authentication'\nimport {\n RECOVERY_CODE_GUIDANCE_TEXT_SHORT,\n TOTP_GUIDANCE_TEXT,\n} from '../Authentication/Constants'\n\nexport const TWO_FACTOR_AUTH_CHANGE_PASSWORD_PROMPT =\n 'Two-factor authentication is required to change your password. Your password has not yet been changed.'\n\nexport type UseChangePasswordFormStateOptions = {\n hideReset2FA?: boolean\n onChangePasswordSuccess?: () => void\n}\n\n/**\n * Hook that handles submitting a change password request and prompting the user for 2FA if necessary.\n * @param options\n */\nexport default function useChangePasswordFormState(\n options?: UseChangePasswordFormStateOptions,\n) {\n const defaultTwoFactorAuthResetUrl = useOneSageURL('/reset2FA')\n const twoFactorAuthResetUri = appendFinalQueryParamKey(\n defaultTwoFactorAuthResetUrl,\n 'twoFAResetToken',\n )\n\n // Store current and new password in state so that we can re-use it if 2FA is required\n const [currentPassword, setCurrentPassword] = useState<string>('')\n const [newPassword, setNewPassword] = useState<string>('')\n const [twoFactorAuthErrorResponse, setTwoFactorAuthErrorResponse] = useState<\n TwoFactorAuthErrorResponse | undefined\n >()\n const [otpStep, setOtpStep] =\n useState<ONE_TIME_PASSWORD_STEP>('VERIFICATION_CODE')\n const [successfullyChangedPassword, setSuccessfullyChangedPassword] =\n useState(false)\n const {\n mutate: changePassword,\n isPending,\n error,\n } = useChangePassword({\n onSuccess: maybeTwoFactorResponse => {\n if (maybeTwoFactorResponse) {\n // We store the 2FA Error Response in state because the `changePasswordResult` may change before we are done with the 2FA code,\n // e.g. if the user enters the wrong 2FA code\n setTwoFactorAuthErrorResponse(maybeTwoFactorResponse)\n } else {\n setSuccessfullyChangedPassword(true)\n setTwoFactorAuthErrorResponse(undefined)\n if (options?.onChangePasswordSuccess) {\n options.onChangePasswordSuccess()\n }\n }\n },\n })\n\n const handleChangePasswordWithCurrentPassword = useCallback(\n (username: string, currentPassword: string, newPassword: string) => {\n setCurrentPassword(currentPassword)\n setNewPassword(newPassword)\n const changeRequest: ChangePasswordWithCurrentPassword = {\n username,\n currentPassword,\n newPassword,\n concreteType:\n 'org.sagebionetworks.repo.model.auth.ChangePasswordWithCurrentPassword',\n }\n changePassword(changeRequest)\n },\n [changePassword],\n )\n\n const handleChangePasswordWithResetToken = useCallback(\n (newPassword: string, passwordChangeToken: PasswordResetSignedToken) => {\n setNewPassword(newPassword)\n const changeRequest: ChangePasswordWithTokenObject = {\n newPassword,\n concreteType:\n 'org.sagebionetworks.repo.model.auth.ChangePasswordWithToken',\n passwordChangeToken: passwordChangeToken,\n }\n changePassword(changeRequest)\n },\n [changePassword],\n )\n\n const handleChangePasswordWithOtp = useCallback(\n (newPassword: string, code: string, otpType: TwoFactorAuthOtpType) => {\n if (twoFactorAuthErrorResponse) {\n const changeRequest: ChangePasswordWithTwoFactorAuthToken = {\n newPassword,\n concreteType:\n 'org.sagebionetworks.repo.model.auth.ChangePasswordWithTwoFactorAuthToken',\n userId: twoFactorAuthErrorResponse.userId!,\n twoFaToken: twoFactorAuthErrorResponse.twoFaToken!,\n otpType: otpType,\n otpCode: code,\n }\n changePassword(changeRequest)\n }\n },\n [changePassword, twoFactorAuthErrorResponse],\n )\n const promptForTwoFactorAuth = Boolean(twoFactorAuthErrorResponse)\n const {\n mutate: resetTwoFactorAuth,\n isSuccess: twoFactorAuthResetIsSuccess,\n isPending: twoFactorAuthResetIsPending,\n } = useResetTwoFactorAuth()\n\n const beginTwoFactorAuthReset = useCallback(\n (twoFaResetEndpoint: string) => {\n if (twoFactorAuthErrorResponse) {\n const request: TwoFactorAuthResetRequest = {\n userId: twoFactorAuthErrorResponse.userId!,\n twoFaResetEndpoint: twoFaResetEndpoint,\n // When attempting to reset 2FA while resetting a password, the current password must be used to request 2FA reset\n password: currentPassword,\n }\n resetTwoFactorAuth(request)\n }\n },\n [currentPassword, resetTwoFactorAuth, twoFactorAuthErrorResponse],\n )\n\n const TwoFactorAuthPrompt = useCallback(() => {\n if (!promptForTwoFactorAuth) {\n return <></>\n }\n return (\n <>\n {otpStep === 'VERIFICATION_CODE' && (\n <Typography variant={'body1'} sx={{ my: 2 }} align={'center'}>\n {TOTP_GUIDANCE_TEXT}\n </Typography>\n )}\n {otpStep === 'RECOVERY_CODE' && (\n <Typography variant={'body1'} sx={{ my: 2 }} align={'center'}>\n {RECOVERY_CODE_GUIDANCE_TEXT_SHORT}\n </Typography>\n )}\n <OneTimePasswordForm\n step={otpStep}\n onClickUseTOTP={() => {\n setOtpStep('VERIFICATION_CODE')\n }}\n onClickUseBackupCode={() => {\n setOtpStep('RECOVERY_CODE')\n }}\n loginIsPending={isPending}\n onSubmit={(code, otpType) =>\n handleChangePasswordWithOtp(newPassword, code, otpType)\n }\n hideReset2FA={options?.hideReset2FA}\n onClickPromptReset2FA={() => {\n setOtpStep('DISABLE_2FA_PROMPT')\n }}\n onClickReset2FA={() => {\n beginTwoFactorAuthReset(twoFactorAuthResetUri)\n }}\n twoFactorAuthResetIsPending={twoFactorAuthResetIsPending}\n twoFactorAuthResetIsSuccess={twoFactorAuthResetIsSuccess}\n />\n {(otpStep === 'RECOVERY_CODE' || otpStep === 'VERIFICATION_CODE') && (\n <Alert severity={'info'} sx={{ my: 2 }}>\n {TWO_FACTOR_AUTH_CHANGE_PASSWORD_PROMPT}\n </Alert>\n )}\n {otpStep === 'DISABLE_2FA_PROMPT' && twoFactorAuthResetIsSuccess && (\n <Alert severity={'warning'} sx={{ my: 2 }}>\n <strong>Your password has not been changed.</strong> To disable\n two-factor authentication, you may be required to enter your current\n password after clicking the link sent to your email address.\n </Alert>\n )}\n </>\n )\n }, [\n beginTwoFactorAuthReset,\n handleChangePasswordWithOtp,\n isPending,\n newPassword,\n options?.hideReset2FA,\n otpStep,\n promptForTwoFactorAuth,\n twoFactorAuthResetIsPending,\n twoFactorAuthResetIsSuccess,\n twoFactorAuthResetUri,\n ])\n\n return {\n successfullyChangedPassword,\n isPending,\n error,\n promptForTwoFactorAuth,\n TwoFactorAuthPrompt: TwoFactorAuthPrompt,\n handleChangePasswordWithCurrentPassword,\n handleChangePasswordWithResetToken,\n }\n}\n"],"names":["TWO_FACTOR_AUTH_CHANGE_PASSWORD_PROMPT","useChangePasswordFormState","options","defaultTwoFactorAuthResetUrl","useOneSageURL","twoFactorAuthResetUri","appendFinalQueryParamKey","currentPassword","setCurrentPassword","useState","newPassword","setNewPassword","twoFactorAuthErrorResponse","setTwoFactorAuthErrorResponse","otpStep","setOtpStep","successfullyChangedPassword","setSuccessfullyChangedPassword","changePassword","isPending","error","useChangePassword","maybeTwoFactorResponse","handleChangePasswordWithCurrentPassword","useCallback","username","handleChangePasswordWithResetToken","passwordChangeToken","handleChangePasswordWithOtp","code","otpType","changeRequest","promptForTwoFactorAuth","resetTwoFactorAuth","twoFactorAuthResetIsSuccess","twoFactorAuthResetIsPending","useResetTwoFactorAuth","beginTwoFactorAuthReset","twoFaResetEndpoint","request","TwoFactorAuthPrompt","jsxs","Fragment","jsx","Typography","TOTP_GUIDANCE_TEXT","RECOVERY_CODE_GUIDANCE_TEXT_SHORT","OneTimePasswordForm","Alert"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CitationPopoverContent.d.ts","sourceRoot":"","sources":["../../../src/components/CitationPopover/CitationPopoverContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAYL,YAAY,EACb,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAA;AA2B/D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAC9C,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;AAE5D,eAAO,MAAM,sBAAsB,GACjC,OAAO,oBAAoB,KAC1B,KAAK,CAAC,SA2LR,CAAA;AAED,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"CitationPopoverContent.d.ts","sourceRoot":"","sources":["../../../src/components/CitationPopover/CitationPopoverContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAYL,YAAY,EACb,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAA;AA2B/D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAC9C,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;AAE5D,eAAO,MAAM,sBAAsB,GACjC,OAAO,oBAAoB,KAC1B,KAAK,CAAC,SA4LR,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as e, jsxs as t, Fragment as k } from "react/jsx-runtime";
2
- import { Popover as O, Stack as S, Box as n, Typography as d, Alert as B, FormControl as D, Select as H, MenuItem as i, Button as L } from "@mui/material";
2
+ import { Popover as O, Stack as S, Box as n, Typography as p, Alert as B, FormControl as D, Select as H, MenuItem as i, Button as L } from "@mui/material";
3
3
  import { useCitation as F } from "./useCitation.js";
4
4
  import { createLinkAndDownload as R } from "./CitationPopoverUtils.js";
5
5
  import { KeyboardArrowDown as A } from "@mui/icons-material";
6
6
  import E from "@mui/icons-material/Close";
7
7
  import { useState as T } from "react";
8
8
  import { CopyToClipboardIcon as W } from "../CopyToClipboardIcon.js";
9
- import { MarkdownSynapse as j } from "../Markdown/MarkdownSynapse.js";
9
+ import { Markdown as j } from "../Markdown/MarkdownSynapse.js";
10
10
  const z = {
11
11
  width: "100%",
12
12
  ".MuiInputBase-root": {
@@ -44,8 +44,8 @@ const z = {
44
44
  ), {
45
45
  data: a,
46
46
  isLoading: v,
47
- error: p
48
- } = F(x || "", r, !0), C = (o) => {
47
+ error: d
48
+ } = F(x || "", r, !0), w = (o) => {
49
49
  if (!o)
50
50
  return;
51
51
  const y = {
@@ -54,9 +54,9 @@ const z = {
54
54
  ieee: "ris",
55
55
  nature: "ris",
56
56
  science: "ris"
57
- }[r] || "txt", I = new Blob([o], { type: "text/plain" }), M = URL.createObjectURL(I);
58
- R(m || "citation", y, M);
59
- }, w = (o) => {
57
+ }[r] || "txt", M = new Blob([o], { type: "text/plain" }), I = URL.createObjectURL(M);
58
+ R(m || "citation", y, I);
59
+ }, C = (o) => {
60
60
  g(o.target.value);
61
61
  };
62
62
  return /* @__PURE__ */ e(
@@ -103,7 +103,7 @@ const z = {
103
103
  children: [
104
104
  /* @__PURE__ */ t(n, { sx: { display: "flex", alignItems: "center" }, children: [
105
105
  /* @__PURE__ */ e(
106
- d,
106
+ p,
107
107
  {
108
108
  sx: { fontSize: "20px", fontWeight: 700, lineHeight: "normal" },
109
109
  children: "Cite As:"
@@ -124,11 +124,12 @@ const z = {
124
124
  }
125
125
  )
126
126
  ] }),
127
- p && /* @__PURE__ */ e(B, { severity: "error", sx: { my: 2 }, icon: !1, children: p.message }),
127
+ d && /* @__PURE__ */ e(B, { severity: "error", sx: { my: 2 }, icon: !1, children: d.message }),
128
128
  /* @__PURE__ */ t(
129
- d,
129
+ p,
130
130
  {
131
131
  variant: "smallText1",
132
+ component: "div",
132
133
  sx: {
133
134
  lineHeight: "normal",
134
135
  maxHeight: "300px",
@@ -171,7 +172,7 @@ const z = {
171
172
  }
172
173
  },
173
174
  value: r,
174
- onChange: w,
175
+ onChange: C,
175
176
  IconComponent: A,
176
177
  children: [
177
178
  /* @__PURE__ */ e(i, { value: "bibtex", children: "bibtex" }),
@@ -185,7 +186,7 @@ const z = {
185
186
  /* @__PURE__ */ e(
186
187
  L,
187
188
  {
188
- onClick: () => C(a || ""),
189
+ onClick: () => w(a || ""),
189
190
  variant: "contained",
190
191
  sx: {
191
192
  padding: "6px 16px",
@@ -1 +1 @@
1
- {"version":3,"file":"CitationPopoverContent.js","sources":["../../../src/components/CitationPopover/CitationPopoverContent.tsx"],"sourcesContent":["import {\n Alert,\n Box,\n Button,\n FormControl,\n MenuItem,\n Popover,\n Select,\n SelectChangeEvent,\n Stack,\n SxProps,\n Typography,\n PopoverProps,\n} from '@mui/material'\nimport React from 'react'\nimport { useCitation } from './useCitation'\nimport { createLinkAndDownload } from './CitationPopoverUtils'\nimport { KeyboardArrowDown } from '@mui/icons-material'\nimport CloseIcon from '@mui/icons-material/Close'\nimport { useState } from 'react'\nimport CopyToClipboardIcon from '../CopyToClipboardIcon'\nimport { CitationProps, CitationFormat } from './CitationTypes'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nconst selectSx: SxProps = {\n width: '100%',\n '.MuiInputBase-root': {\n minHeight: '38px',\n borderRadius: 0,\n '&:before, &:after': {\n borderBottom: 'none !important',\n },\n },\n '& .MuiOutlinedInput-notchedOutline': {\n border: 0,\n },\n '&.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline': {\n border: 'none',\n },\n '.MuiSelect-select': {\n display: 'flex',\n alignItems: 'center',\n },\n '.MuiInputBase-input': {\n padding: '7px 10px',\n },\n}\n\nexport type CitationPopoverProps = CitationProps &\n Pick<PopoverProps, 'anchorEl' | 'open' | 'id' | 'onClose'>\n\nexport const CitationPopoverContent = (\n props: CitationPopoverProps,\n): React.ReactNode => {\n const {\n doi,\n title,\n boilerplateText,\n defaultCitationFormat,\n onClose,\n anchorEl,\n open,\n id,\n } = props\n\n const [citationFormat, setCitationFormat] = useState<CitationFormat>(\n defaultCitationFormat || 'bibtex',\n )\n const {\n data: citation,\n isLoading,\n error,\n } = useCitation(doi || '', citationFormat, true)\n\n const handleDownload = (citation: string) => {\n if (!citation) {\n return\n }\n const extensionMap: Record<string, string> = {\n apa: 'ris',\n bibtex: 'bib',\n ieee: 'ris',\n nature: 'ris',\n science: 'ris',\n }\n const fileExtension = extensionMap[citationFormat] || 'txt'\n\n const blob = new Blob([citation], { type: 'text/plain' })\n const url = URL.createObjectURL(blob)\n\n createLinkAndDownload(title || 'citation', fileExtension, url)\n }\n\n const handleChange = (event: SelectChangeEvent<CitationFormat>) => {\n setCitationFormat(event.target.value as CitationFormat)\n }\n\n return (\n <Popover\n aria-label=\"Citation options\"\n role=\"dialog\"\n id={id}\n elevation={9}\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n slotProps={{\n paper: {\n square: true,\n sx: theme => ({\n width: '500px',\n position: 'relative',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '100%',\n maxHeight: '100%',\n top: '0 !important',\n left: '0 !important',\n bottom: '0 !important',\n },\n }),\n },\n }}\n >\n <Stack\n sx={{\n gap: '20px',\n padding: '20px',\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Typography\n sx={{ fontSize: '20px', fontWeight: 700, lineHeight: 'normal' }}\n >\n Cite As:\n </Typography>\n <CloseIcon\n sx={{\n cursor: 'pointer',\n display: { xs: 'block', sm: 'none' },\n marginLeft: 'auto',\n color: '#878E95',\n }}\n onClick={() => {\n onClose?.({}, 'escapeKeyDown')\n }}\n />\n </Box>\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }} icon={false}>\n {error.message}\n </Alert>\n )}\n <Typography\n variant=\"smallText1\"\n sx={{\n lineHeight: 'normal',\n maxHeight: '300px',\n overflowY: 'scroll',\n wordWrap: 'break-word',\n }}\n >\n {boilerplateText && (\n <>\n <MarkdownSynapse markdown={boilerplateText} />\n <br />\n </>\n )}\n {isLoading ? (\n <Box sx={{ fontWeight: 700 }}>\n <br />\n Loading citation...\n </Box>\n ) : (\n citation\n )}\n </Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: { xs: 'column', sm: 'row' },\n gap: { xs: '10px', sm: '8px' },\n width: '100%',\n maxHeight: '38px',\n }}\n >\n <Box sx={{ flex: 1 }}>\n <FormControl sx={selectSx}>\n <Select\n variant=\"standard\"\n sx={{\n svg: {\n color: '#878E95',\n width: '24px',\n height: '24px',\n right: '10px',\n },\n }}\n value={citationFormat}\n onChange={handleChange}\n IconComponent={KeyboardArrowDown}\n >\n <MenuItem value={'bibtex'}>bibtex</MenuItem>\n <MenuItem value={'apa'}>apa</MenuItem>\n <MenuItem value={'ieee'}>ieee</MenuItem>\n <MenuItem value={'nature'}>nature</MenuItem>\n <MenuItem value={'science'}>science</MenuItem>\n </Select>\n </FormControl>\n </Box>\n <Button\n onClick={() => handleDownload(citation || '')}\n variant=\"contained\"\n sx={{\n padding: '6px 16px',\n borderRadius: 0,\n }}\n >\n Download Citation\n </Button>\n <CopyToClipboardIcon\n value={citation || ''}\n sx={{\n borderRadius: 0,\n padding: '6px 16px',\n border: '1px solid',\n borderColor: 'primary.main',\n }}\n />\n </Box>\n </Stack>\n </Popover>\n )\n}\n\nexport default CitationPopoverContent\n"],"names":["selectSx","CitationPopoverContent","props","doi","title","boilerplateText","defaultCitationFormat","onClose","anchorEl","open","id","citationFormat","setCitationFormat","useState","citation","isLoading","error","useCitation","handleDownload","fileExtension","blob","url","createLinkAndDownload","handleChange","event","jsx","Popover","theme","jsxs","Stack","Box","Typography","CloseIcon","Alert","Fragment","MarkdownSynapse","FormControl","Select","KeyboardArrowDown","MenuItem","Button","CopyToClipboardIcon"],"mappings":"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"}
1
+ {"version":3,"file":"CitationPopoverContent.js","sources":["../../../src/components/CitationPopover/CitationPopoverContent.tsx"],"sourcesContent":["import {\n Alert,\n Box,\n Button,\n FormControl,\n MenuItem,\n Popover,\n Select,\n SelectChangeEvent,\n Stack,\n SxProps,\n Typography,\n PopoverProps,\n} from '@mui/material'\nimport React from 'react'\nimport { useCitation } from './useCitation'\nimport { createLinkAndDownload } from './CitationPopoverUtils'\nimport { KeyboardArrowDown } from '@mui/icons-material'\nimport CloseIcon from '@mui/icons-material/Close'\nimport { useState } from 'react'\nimport CopyToClipboardIcon from '../CopyToClipboardIcon'\nimport { CitationProps, CitationFormat } from './CitationTypes'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nconst selectSx: SxProps = {\n width: '100%',\n '.MuiInputBase-root': {\n minHeight: '38px',\n borderRadius: 0,\n '&:before, &:after': {\n borderBottom: 'none !important',\n },\n },\n '& .MuiOutlinedInput-notchedOutline': {\n border: 0,\n },\n '&.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline': {\n border: 'none',\n },\n '.MuiSelect-select': {\n display: 'flex',\n alignItems: 'center',\n },\n '.MuiInputBase-input': {\n padding: '7px 10px',\n },\n}\n\nexport type CitationPopoverProps = CitationProps &\n Pick<PopoverProps, 'anchorEl' | 'open' | 'id' | 'onClose'>\n\nexport const CitationPopoverContent = (\n props: CitationPopoverProps,\n): React.ReactNode => {\n const {\n doi,\n title,\n boilerplateText,\n defaultCitationFormat,\n onClose,\n anchorEl,\n open,\n id,\n } = props\n\n const [citationFormat, setCitationFormat] = useState<CitationFormat>(\n defaultCitationFormat || 'bibtex',\n )\n const {\n data: citation,\n isLoading,\n error,\n } = useCitation(doi || '', citationFormat, true)\n\n const handleDownload = (citation: string) => {\n if (!citation) {\n return\n }\n const extensionMap: Record<string, string> = {\n apa: 'ris',\n bibtex: 'bib',\n ieee: 'ris',\n nature: 'ris',\n science: 'ris',\n }\n const fileExtension = extensionMap[citationFormat] || 'txt'\n\n const blob = new Blob([citation], { type: 'text/plain' })\n const url = URL.createObjectURL(blob)\n\n createLinkAndDownload(title || 'citation', fileExtension, url)\n }\n\n const handleChange = (event: SelectChangeEvent<CitationFormat>) => {\n setCitationFormat(event.target.value as CitationFormat)\n }\n\n return (\n <Popover\n aria-label=\"Citation options\"\n role=\"dialog\"\n id={id}\n elevation={9}\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n slotProps={{\n paper: {\n square: true,\n sx: theme => ({\n width: '500px',\n position: 'relative',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '100%',\n maxHeight: '100%',\n top: '0 !important',\n left: '0 !important',\n bottom: '0 !important',\n },\n }),\n },\n }}\n >\n <Stack\n sx={{\n gap: '20px',\n padding: '20px',\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Typography\n sx={{ fontSize: '20px', fontWeight: 700, lineHeight: 'normal' }}\n >\n Cite As:\n </Typography>\n <CloseIcon\n sx={{\n cursor: 'pointer',\n display: { xs: 'block', sm: 'none' },\n marginLeft: 'auto',\n color: '#878E95',\n }}\n onClick={() => {\n onClose?.({}, 'escapeKeyDown')\n }}\n />\n </Box>\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }} icon={false}>\n {error.message}\n </Alert>\n )}\n <Typography\n variant=\"smallText1\"\n component={'div'}\n sx={{\n lineHeight: 'normal',\n maxHeight: '300px',\n overflowY: 'scroll',\n wordWrap: 'break-word',\n }}\n >\n {boilerplateText && (\n <>\n <MarkdownSynapse markdown={boilerplateText} />\n <br />\n </>\n )}\n {isLoading ? (\n <Box sx={{ fontWeight: 700 }}>\n <br />\n Loading citation...\n </Box>\n ) : (\n citation\n )}\n </Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: { xs: 'column', sm: 'row' },\n gap: { xs: '10px', sm: '8px' },\n width: '100%',\n maxHeight: '38px',\n }}\n >\n <Box sx={{ flex: 1 }}>\n <FormControl sx={selectSx}>\n <Select\n variant=\"standard\"\n sx={{\n svg: {\n color: '#878E95',\n width: '24px',\n height: '24px',\n right: '10px',\n },\n }}\n value={citationFormat}\n onChange={handleChange}\n IconComponent={KeyboardArrowDown}\n >\n <MenuItem value={'bibtex'}>bibtex</MenuItem>\n <MenuItem value={'apa'}>apa</MenuItem>\n <MenuItem value={'ieee'}>ieee</MenuItem>\n <MenuItem value={'nature'}>nature</MenuItem>\n <MenuItem value={'science'}>science</MenuItem>\n </Select>\n </FormControl>\n </Box>\n <Button\n onClick={() => handleDownload(citation || '')}\n variant=\"contained\"\n sx={{\n padding: '6px 16px',\n borderRadius: 0,\n }}\n >\n Download Citation\n </Button>\n <CopyToClipboardIcon\n value={citation || ''}\n sx={{\n borderRadius: 0,\n padding: '6px 16px',\n border: '1px solid',\n borderColor: 'primary.main',\n }}\n />\n </Box>\n </Stack>\n </Popover>\n )\n}\n\nexport default CitationPopoverContent\n"],"names":["selectSx","CitationPopoverContent","props","doi","title","boilerplateText","defaultCitationFormat","onClose","anchorEl","open","id","citationFormat","setCitationFormat","useState","citation","isLoading","error","useCitation","handleDownload","fileExtension","blob","url","createLinkAndDownload","handleChange","event","jsx","Popover","theme","jsxs","Stack","Box","Typography","CloseIcon","Alert","Fragment","MarkdownSynapse","FormControl","Select","KeyboardArrowDown","MenuItem","Button","CopyToClipboardIcon"],"mappings":"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"}