synapse-react-client 4.0.45 → 4.0.46

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 (319) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +1 -0
  3. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
  4. package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
  6. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  7. package/dist/aridhia-queries/index.d.ts +1 -0
  8. package/dist/aridhia-queries/index.d.ts.map +1 -1
  9. package/dist/aridhia-queries/index.js +11 -10
  10. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
  11. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
  12. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
  13. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
  14. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.d.ts.map +1 -1
  15. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +6 -4
  16. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  17. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  18. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
  19. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
  20. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
  21. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  22. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
  23. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
  24. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  25. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  27. package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
  28. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  29. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
  30. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  31. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -1
  32. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
  33. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
  34. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
  35. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
  36. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
  37. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  38. package/dist/components/Aridhia/fairFormToRjsf.js +1 -1
  39. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
  40. package/dist/components/Authentication/LastLoginInfo.js +1 -1
  41. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  42. package/dist/components/CertificationQuiz/CertificationQuiz.js +1 -1
  43. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  44. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +1 -1
  45. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  46. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
  47. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  48. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
  49. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  50. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
  51. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
  52. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  53. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
  54. package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
  55. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  56. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  57. package/dist/components/ComponentCollapse.js +2 -1
  58. package/dist/components/ComponentCollapse.js.map +1 -1
  59. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  60. package/dist/components/DataGrid/SynapseGrid.js +231 -219
  61. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  62. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  63. package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
  64. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  65. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  66. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
  67. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  68. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
  69. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  70. package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
  71. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  72. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  73. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
  74. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  75. package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
  76. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  77. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +5 -5
  78. package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
  79. package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
  80. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  81. package/dist/components/DataGrid/utils/columnFactory.js +1 -1
  82. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  83. package/dist/components/DataGrid/utils/splitPatch.d.ts.map +1 -1
  84. package/dist/components/DataGrid/utils/splitPatch.js +22 -13
  85. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  86. package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
  87. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  88. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
  89. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +2 -1
  90. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  91. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
  92. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
  93. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  94. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
  95. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  96. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  97. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  98. package/dist/components/EntityFinder/EntityFinder.js +4 -4
  99. package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
  100. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  101. package/dist/components/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
  102. package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
  103. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  104. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +1 -1
  105. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  106. package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
  107. package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
  108. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  109. package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
  110. package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
  111. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  112. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
  113. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
  114. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  115. package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
  116. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  117. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
  118. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  119. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -1
  120. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
  121. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
  122. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  123. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
  124. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  125. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
  126. package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
  127. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
  128. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
  129. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
  130. package/dist/components/FormTemplateEditor/FormStructurePanel.js +1 -1
  131. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
  132. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
  133. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
  134. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
  135. package/dist/components/FormTemplateEditor/StepCard.js +15 -10
  136. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
  137. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
  138. package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
  139. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
  140. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
  141. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
  142. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
  143. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +45 -45
  144. package/dist/components/GenericCard/PortalDOI/PortalDOI.js +5 -5
  145. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  146. package/dist/components/GenericCard/TableRowGenericCard.js +1 -1
  147. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  148. package/dist/components/HelpPopover/HelpPopover.js +1 -1
  149. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  150. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  151. package/dist/components/IconSvg/IconSvg.js +154 -47
  152. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  153. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
  154. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
  155. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  156. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
  157. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
  158. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  159. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
  160. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
  161. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
  162. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
  163. package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
  164. package/dist/components/Markdown/MarkdownCollapse.js +3 -1
  165. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  166. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
  167. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  168. package/dist/components/OAuthClientManagement/OAuthManagement.js +14 -13
  169. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  170. package/dist/components/PortalList/PortalCard.d.ts.map +1 -1
  171. package/dist/components/PortalList/PortalCard.js +6 -5
  172. package/dist/components/PortalList/PortalCard.js.map +1 -1
  173. package/dist/components/PortalList/PortalList.js +4 -4
  174. package/dist/components/PortalList/PortalList.js.map +1 -1
  175. package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
  176. package/dist/components/QueryBuilder/FilterConditionRow.js +4 -4
  177. package/dist/components/QueryCountButton/QueryCountButton.js +5 -5
  178. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  179. package/dist/components/ReleaseCard/ReleaseCardLarge.js +5 -5
  180. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  181. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +1 -1
  182. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  183. package/dist/components/ShareThisPage/ShareThisPage.js +4 -4
  184. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  185. package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
  186. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  187. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
  188. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  189. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  190. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  191. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  192. package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
  193. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  194. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
  195. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
  196. package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
  197. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  198. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
  199. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  200. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
  201. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
  202. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  203. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
  204. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  205. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
  206. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  207. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  208. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
  209. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  210. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  211. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  212. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
  213. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  214. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
  215. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
  216. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  217. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  218. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  219. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +140 -140
  220. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  221. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  222. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  223. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  224. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  225. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  226. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  227. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
  228. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  229. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
  230. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
  231. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  232. package/dist/components/TanStackTable/ColumnHeader.js +1 -1
  233. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  234. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
  235. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  236. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
  237. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
  238. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  239. package/dist/components/Webhook/WebhookDashboard.js +1 -1
  240. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  241. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  242. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  243. package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
  244. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  245. package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
  246. package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
  247. package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
  248. package/dist/components/dataaccess/FormTemplateTable.js +6 -6
  249. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
  250. package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
  251. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  252. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
  253. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  254. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  255. package/dist/components/download_list/DownloadDetails.d.ts.map +1 -1
  256. package/dist/components/download_list/DownloadDetails.js +12 -10
  257. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  258. package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
  259. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  260. package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
  261. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  262. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  263. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  264. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  265. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  266. package/dist/components/error/ErrorChip.d.ts.map +1 -1
  267. package/dist/components/error/ErrorChip.js +2 -1
  268. package/dist/components/error/ErrorChip.js.map +1 -1
  269. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
  270. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
  271. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  272. package/dist/components/widgets/facet-nav/FacetNavPanel.js +1 -1
  273. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  274. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  275. package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
  276. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  277. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
  278. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  279. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
  280. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  281. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
  282. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  283. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
  284. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  285. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
  286. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
  287. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
  288. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
  289. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
  290. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
  291. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
  292. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
  293. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
  294. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  295. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +8 -0
  296. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  297. package/dist/mocks/msw/handlers/aridhiaHandlers.js +52 -41
  298. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  299. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  300. package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
  301. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  302. package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
  303. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  304. package/dist/mocks/msw/server.d.ts.map +1 -1
  305. package/dist/mocks/msw/server.js +4 -2
  306. package/dist/mocks/msw/server.js.map +1 -1
  307. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  308. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  309. package/dist/theme/DefaultTheme.d.ts.map +1 -1
  310. package/dist/theme/DefaultTheme.js +4 -1
  311. package/dist/theme/DefaultTheme.js.map +1 -1
  312. package/dist/tsconfig.build.tsbuildinfo +1 -1
  313. package/dist/utils/APIConstants.d.ts.map +1 -1
  314. package/dist/utils/APIConstants.js.map +1 -1
  315. package/dist/utils/AppUtils/AppUtils.js +1 -1
  316. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  317. package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
  318. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  319. package/package.json +7 -6
@@ -4,7 +4,7 @@ import r from "./ChatInputArea.module.js";
4
4
  import { useMemo as i, useState as a } from "react";
5
5
  import { Box as o, IconButton as s, TextareaAutosize as c, Tooltip as l } from "@mui/material";
6
6
  import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
7
- import { Add as p } from "@mui/icons-material";
7
+ import p from "@mui/icons-material/Add";
8
8
  import m from "@mui/icons-material/ArrowUpward";
9
9
  //#region src/components/SynapseChat/components/ChatInputArea/ChatInputArea.tsx
10
10
  var h = 6, g = {
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInputArea.js","names":[],"sources":["../../../../../src/components/SynapseChat/components/ChatInputArea/ChatInputArea.tsx"],"sourcesContent":["import { Add } from '@mui/icons-material'\nimport ArrowUpward from '@mui/icons-material/ArrowUpward'\nimport { Box, IconButton, TextareaAutosize, Tooltip } from '@mui/material'\nimport {\n FormEventHandler,\n KeyboardEventHandler,\n useMemo,\n useState,\n} from 'react'\nimport {\n AddFilesDialog,\n ALLOWED_FILE_TYPES_LABEL,\n} from '../AddFilesDialog/AddFilesDialog'\nimport {\n AttachmentStripItem,\n ChatAttachmentStrip,\n} from '../ChatAttachmentStrip/ChatAttachmentStrip'\nimport styles from './ChatInputArea.module.scss'\nimport { ChatAttachment } from '../../utils/types'\n\n/** Max number of visible rows the textarea grows to before it scrolls internally. */\nexport const MAX_CHAT_INPUT_ROWS = 6\n\nexport type ChatInputAreaProps = {\n value: string\n onValueChange: (value: string) => void\n onSend: (message: string, attachments: ChatAttachment[]) => void\n placeholder?: string\n /** No session yet, or a response is in flight. */\n disabled?: boolean\n /** @default false */\n allowAttachments?: boolean\n}\n\nconst actionButtonSx = {\n height: '36px',\n px: '12px',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: '1px',\n}\n\n/**\n * The chat composer: a bordered card containing a conditional attachment strip, an\n * auto-growing borderless text input, and a right-aligned row of actions (attach + send).\n * Owns attachment upload state end-to-end; the message text itself is controlled by the\n * caller since it can also be set from outside the card (e.g. suggested-prompt pills).\n */\nexport function ChatInputArea({\n value,\n onValueChange,\n onSend,\n placeholder,\n disabled = false,\n allowAttachments = false,\n}: ChatInputAreaProps) {\n const [pendingAttachments, setPendingAttachments] = useState<\n ChatAttachment[]\n >([])\n const [isAddFilesDialogOpen, setIsAddFilesDialogOpen] = useState(false)\n const [isUploadingAttachments, setIsUploadingAttachments] = useState(false)\n\n const isSendDisabled = disabled || !value.trim() || isUploadingAttachments\n\n const submit = () => {\n if (isSendDisabled) {\n return\n }\n onSend(value.trim(), pendingAttachments)\n setPendingAttachments([])\n }\n\n const handleFormSubmit: FormEventHandler<HTMLFormElement> = event => {\n event.preventDefault()\n submit()\n }\n\n const handleTextareaKeyDown: KeyboardEventHandler<\n HTMLTextAreaElement\n > = event => {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault()\n submit()\n }\n }\n\n const attachmentItems: AttachmentStripItem[] = useMemo(\n () =>\n pendingAttachments.map(attachment => ({\n fileHandleId: attachment.fileHandleId,\n label: attachment.fileName,\n contentType: attachment.contentType,\n })),\n [pendingAttachments],\n )\n\n return (\n <>\n <Box component=\"form\" className={styles.card} onSubmit={handleFormSubmit}>\n {allowAttachments && (\n <ChatAttachmentStrip\n items={attachmentItems}\n onRemove={fileHandleId =>\n setPendingAttachments(prev =>\n prev.filter(a => a.fileHandleId !== fileHandleId),\n )\n }\n />\n )}\n <TextareaAutosize\n className={styles.textarea}\n minRows={1}\n maxRows={MAX_CHAT_INPUT_ROWS}\n value={value}\n onChange={e => onValueChange(e.target.value)}\n onKeyDown={handleTextareaKeyDown}\n placeholder={placeholder}\n />\n <div className={styles.actions}>\n {allowAttachments && (\n <Tooltip\n title={`Upload files (${ALLOWED_FILE_TYPES_LABEL})`}\n placement=\"left\"\n >\n <IconButton\n type=\"button\"\n aria-label=\"Add files\"\n disabled={disabled}\n onClick={() => setIsAddFilesDialogOpen(true)}\n sx={actionButtonSx}\n >\n <Add />\n </IconButton>\n </Tooltip>\n )}\n <IconButton\n type=\"submit\"\n aria-label=\"Send message\"\n disabled={isSendDisabled}\n sx={actionButtonSx}\n >\n <ArrowUpward />\n </IconButton>\n </div>\n </Box>\n {allowAttachments && (\n <AddFilesDialog\n open={isAddFilesDialogOpen}\n onClose={() => setIsAddFilesDialogOpen(false)}\n currentAttachmentCount={pendingAttachments.length}\n onAttachmentUploaded={attachment =>\n setPendingAttachments(prev => [...prev, attachment])\n }\n onUploadStateChange={state =>\n setIsUploadingAttachments(state === 'UPLOADING')\n }\n />\n )}\n </>\n )\n}\n\nexport default ChatInputArea\n"],"mappings":";;;;;;;;;AAqBA,IAAa,IAAsB,GAa7B,IAAiB;CACrB,QAAQ;CACR,IAAI;CACJ,QAAQ;CACR,aAAa;CACb,cAAc;AAChB;AAQA,SAAgB,EAAc,EAC5B,UACA,kBACA,WACA,gBACA,cAAW,IACX,sBAAmB,MACE;CACrB,IAAM,CAAC,GAAoB,KAAyB,EAElD,CAAC,CAAC,GACE,CAAC,GAAsB,KAA2B,EAAS,EAAK,GAChE,CAAC,GAAwB,KAA6B,EAAS,EAAK,GAEpE,IAAiB,KAAY,CAAC,EAAM,KAAK,KAAK,GAE9C,UAAe;EACf,MAGJ,EAAO,EAAM,KAAK,GAAG,CAAkB,GACvC,EAAsB,CAAC,CAAC;CAC1B,GAEM,KAAsD,MAAS;EAEnE,AADA,EAAM,eAAe,GACrB,EAAO;CACT,GAEM,KAEF,MAAS;EACX,AAAI,EAAM,QAAQ,WAAW,CAAC,EAAM,aAClC,EAAM,eAAe,GACrB,EAAO;CAEX,GAEM,IAAyC,QAE3C,EAAmB,KAAI,OAAe;EACpC,cAAc,EAAW;EACzB,OAAO,EAAW;EAClB,aAAa,EAAW;CAC1B,EAAE,GACJ,CAAC,CAAkB,CACrB;CAEA,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAK,WAAU;EAAO,WAAW,EAAO;EAAM,UAAU;YAAxD;GACG,KACC,kBAAC,GAAD;IACE,OAAO;IACP,WAAU,MACR,GAAsB,MACpB,EAAK,QAAO,MAAK,EAAE,iBAAiB,CAAY,CAClD;GAEH,CAAA;GAEH,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,SAAS;IACT,SAAA;IACO;IACP,WAAU,MAAK,EAAc,EAAE,OAAO,KAAK;IAC3C,WAAW;IACE;GACd,CAAA;GACD,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB,CACG,KACC,kBAAC,GAAD;KACE,OAAO,iBAAiB,EAAyB;KACjD,WAAU;eAEV,kBAAC,GAAD;MACE,MAAK;MACL,cAAW;MACD;MACV,eAAe,EAAwB,EAAI;MAC3C,IAAI;gBAEJ,kBAAC,GAAD,CAAM,CAAA;KACI,CAAA;IACL,CAAA,GAEX,kBAAC,GAAD;KACE,MAAK;KACL,cAAW;KACX,UAAU;KACV,IAAI;eAEJ,kBAAC,GAAD,CAAc,CAAA;IACJ,CAAA,CACT;;EACF;KACJ,KACC,kBAAC,GAAD;EACE,MAAM;EACN,eAAe,EAAwB,EAAK;EAC5C,wBAAwB,EAAmB;EAC3C,uBAAsB,MACpB,GAAsB,MAAQ,CAAC,GAAG,GAAM,CAAU,CAAC;EAErD,sBAAqB,MACnB,EAA0B,MAAU,WAAW;CAElD,CAAA,CAEH,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"ChatInputArea.js","names":[],"sources":["../../../../../src/components/SynapseChat/components/ChatInputArea/ChatInputArea.tsx"],"sourcesContent":["import Add from '@mui/icons-material/Add'\nimport ArrowUpward from '@mui/icons-material/ArrowUpward'\nimport { Box, IconButton, TextareaAutosize, Tooltip } from '@mui/material'\nimport {\n FormEventHandler,\n KeyboardEventHandler,\n useMemo,\n useState,\n} from 'react'\nimport {\n AddFilesDialog,\n ALLOWED_FILE_TYPES_LABEL,\n} from '../AddFilesDialog/AddFilesDialog'\nimport {\n AttachmentStripItem,\n ChatAttachmentStrip,\n} from '../ChatAttachmentStrip/ChatAttachmentStrip'\nimport styles from './ChatInputArea.module.scss'\nimport { ChatAttachment } from '../../utils/types'\n\n/** Max number of visible rows the textarea grows to before it scrolls internally. */\nexport const MAX_CHAT_INPUT_ROWS = 6\n\nexport type ChatInputAreaProps = {\n value: string\n onValueChange: (value: string) => void\n onSend: (message: string, attachments: ChatAttachment[]) => void\n placeholder?: string\n /** No session yet, or a response is in flight. */\n disabled?: boolean\n /** @default false */\n allowAttachments?: boolean\n}\n\nconst actionButtonSx = {\n height: '36px',\n px: '12px',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: '1px',\n}\n\n/**\n * The chat composer: a bordered card containing a conditional attachment strip, an\n * auto-growing borderless text input, and a right-aligned row of actions (attach + send).\n * Owns attachment upload state end-to-end; the message text itself is controlled by the\n * caller since it can also be set from outside the card (e.g. suggested-prompt pills).\n */\nexport function ChatInputArea({\n value,\n onValueChange,\n onSend,\n placeholder,\n disabled = false,\n allowAttachments = false,\n}: ChatInputAreaProps) {\n const [pendingAttachments, setPendingAttachments] = useState<\n ChatAttachment[]\n >([])\n const [isAddFilesDialogOpen, setIsAddFilesDialogOpen] = useState(false)\n const [isUploadingAttachments, setIsUploadingAttachments] = useState(false)\n\n const isSendDisabled = disabled || !value.trim() || isUploadingAttachments\n\n const submit = () => {\n if (isSendDisabled) {\n return\n }\n onSend(value.trim(), pendingAttachments)\n setPendingAttachments([])\n }\n\n const handleFormSubmit: FormEventHandler<HTMLFormElement> = event => {\n event.preventDefault()\n submit()\n }\n\n const handleTextareaKeyDown: KeyboardEventHandler<\n HTMLTextAreaElement\n > = event => {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault()\n submit()\n }\n }\n\n const attachmentItems: AttachmentStripItem[] = useMemo(\n () =>\n pendingAttachments.map(attachment => ({\n fileHandleId: attachment.fileHandleId,\n label: attachment.fileName,\n contentType: attachment.contentType,\n })),\n [pendingAttachments],\n )\n\n return (\n <>\n <Box component=\"form\" className={styles.card} onSubmit={handleFormSubmit}>\n {allowAttachments && (\n <ChatAttachmentStrip\n items={attachmentItems}\n onRemove={fileHandleId =>\n setPendingAttachments(prev =>\n prev.filter(a => a.fileHandleId !== fileHandleId),\n )\n }\n />\n )}\n <TextareaAutosize\n className={styles.textarea}\n minRows={1}\n maxRows={MAX_CHAT_INPUT_ROWS}\n value={value}\n onChange={e => onValueChange(e.target.value)}\n onKeyDown={handleTextareaKeyDown}\n placeholder={placeholder}\n />\n <div className={styles.actions}>\n {allowAttachments && (\n <Tooltip\n title={`Upload files (${ALLOWED_FILE_TYPES_LABEL})`}\n placement=\"left\"\n >\n <IconButton\n type=\"button\"\n aria-label=\"Add files\"\n disabled={disabled}\n onClick={() => setIsAddFilesDialogOpen(true)}\n sx={actionButtonSx}\n >\n <Add />\n </IconButton>\n </Tooltip>\n )}\n <IconButton\n type=\"submit\"\n aria-label=\"Send message\"\n disabled={isSendDisabled}\n sx={actionButtonSx}\n >\n <ArrowUpward />\n </IconButton>\n </div>\n </Box>\n {allowAttachments && (\n <AddFilesDialog\n open={isAddFilesDialogOpen}\n onClose={() => setIsAddFilesDialogOpen(false)}\n currentAttachmentCount={pendingAttachments.length}\n onAttachmentUploaded={attachment =>\n setPendingAttachments(prev => [...prev, attachment])\n }\n onUploadStateChange={state =>\n setIsUploadingAttachments(state === 'UPLOADING')\n }\n />\n )}\n </>\n )\n}\n\nexport default ChatInputArea\n"],"mappings":";;;;;;;;;AAqBA,IAAa,IAAsB,GAa7B,IAAiB;CACrB,QAAQ;CACR,IAAI;CACJ,QAAQ;CACR,aAAa;CACb,cAAc;AAChB;AAQA,SAAgB,EAAc,EAC5B,UACA,kBACA,WACA,gBACA,cAAW,IACX,sBAAmB,MACE;CACrB,IAAM,CAAC,GAAoB,KAAyB,EAElD,CAAC,CAAC,GACE,CAAC,GAAsB,KAA2B,EAAS,EAAK,GAChE,CAAC,GAAwB,KAA6B,EAAS,EAAK,GAEpE,IAAiB,KAAY,CAAC,EAAM,KAAK,KAAK,GAE9C,UAAe;EACf,MAGJ,EAAO,EAAM,KAAK,GAAG,CAAkB,GACvC,EAAsB,CAAC,CAAC;CAC1B,GAEM,KAAsD,MAAS;EAEnE,AADA,EAAM,eAAe,GACrB,EAAO;CACT,GAEM,KAEF,MAAS;EACX,AAAI,EAAM,QAAQ,WAAW,CAAC,EAAM,aAClC,EAAM,eAAe,GACrB,EAAO;CAEX,GAEM,IAAyC,QAE3C,EAAmB,KAAI,OAAe;EACpC,cAAc,EAAW;EACzB,OAAO,EAAW;EAClB,aAAa,EAAW;CAC1B,EAAE,GACJ,CAAC,CAAkB,CACrB;CAEA,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAK,WAAU;EAAO,WAAW,EAAO;EAAM,UAAU;YAAxD;GACG,KACC,kBAAC,GAAD;IACE,OAAO;IACP,WAAU,MACR,GAAsB,MACpB,EAAK,QAAO,MAAK,EAAE,iBAAiB,CAAY,CAClD;GAEH,CAAA;GAEH,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,SAAS;IACT,SAAA;IACO;IACP,WAAU,MAAK,EAAc,EAAE,OAAO,KAAK;IAC3C,WAAW;IACE;GACd,CAAA;GACD,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB,CACG,KACC,kBAAC,GAAD;KACE,OAAO,iBAAiB,EAAyB;KACjD,WAAU;eAEV,kBAAC,GAAD;MACE,MAAK;MACL,cAAW;MACD;MACV,eAAe,EAAwB,EAAI;MAC3C,IAAI;gBAEJ,kBAAC,GAAD,CAAM,CAAA;KACI,CAAA;IACL,CAAA,GAEX,kBAAC,GAAD;KACE,MAAK;KACL,cAAW;KACX,UAAU;KACV,IAAI;eAEJ,kBAAC,GAAD,CAAc,CAAA;IACJ,CAAA,CACT;;EACF;KACJ,KACC,kBAAC,GAAD;EACE,MAAM;EACN,eAAe,EAAwB,EAAK;EAC5C,wBAAwB,EAAmB;EAC3C,uBAAsB,MACpB,GAAsB,MAAQ,CAAC,GAAG,GAAM,CAAU,CAAC;EAErD,sBAAqB,MACnB,EAA0B,MAAU,WAAW;CAElD,CAAA,CAEH,EAAA,CAAA;AAEN"}
@@ -16,7 +16,7 @@ import { ForwardRef as f } from "../../assets/homepage/youtube.js";
16
16
  import { SynapseLinksColumn as p } from "./SynapseLinksColumn.js";
17
17
  import { Box as m, Button as h, IconButton as g, Stack as _, Tooltip as v, Typography as y } from "@mui/material";
18
18
  import { jsx as b, jsxs as x } from "react/jsx-runtime";
19
- import { LogoutTwoTone as S } from "@mui/icons-material";
19
+ import S from "@mui/icons-material/LogoutTwoTone";
20
20
  //#region src/components/SynapseFooter/SynapseFooter.tsx
21
21
  var C = (/* @__PURE__ */ new Date()).getFullYear();
22
22
  function w({ portalVersion: w, srcVersion: T, repoVersion: E, gotoPlace: D, onExperimentalModeToggle: O }) {
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseFooter.js","names":[],"sources":["../../../src/components/SynapseFooter/SynapseFooter.tsx"],"sourcesContent":["import { ReactComponent as Facebook } from '@/assets/homepage/facebook.svg'\nimport { ReactComponent as Github } from '@/assets/homepage/github.svg'\nimport { ReactComponent as Instagram } from '@/assets/homepage/instagram.svg'\nimport { ReactComponent as LinkedIn } from '@/assets/homepage/linkedin.svg'\nimport { ReactComponent as Twitter } from '@/assets/homepage/twitter.svg'\nimport { ReactComponent as Youtube } from '@/assets/homepage/youtube.svg'\nimport SageFullLogo from '@/assets/icons/SageFullLogo'\nimport SynapseFullLogo from '@/assets/icons/SynapseFullLogo'\nimport { useApplicationSessionContext } from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport {\n Box,\n Button,\n IconButton,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport ExperimentalMode from '../ExperimentalMode'\nimport { PLANS_LINK } from '../SynapseHomepageV2/SynapseHomepageNavBar'\nimport { SynapseLinksColumn } from './SynapseLinksColumn'\nimport { LogoutTwoTone } from '@mui/icons-material'\nimport { SYNAPSE_REALM } from '@/utils/SynapseConstants'\nimport { useGetCurrentRealm } from '@/synapse-queries/realm/useRealmPrincipals'\n\nexport type SynapseFooterProps = {\n portalVersion: string\n srcVersion: string\n repoVersion: string\n gotoPlace: (href: string) => void\n onExperimentalModeToggle: (newValue: boolean) => void\n}\n\nconst currentYear = new Date().getFullYear()\nexport function SynapseFooter({\n portalVersion,\n srcVersion,\n repoVersion,\n gotoPlace,\n onExperimentalModeToggle,\n}: SynapseFooterProps) {\n const { isAuthenticated, clearSession } = useApplicationSessionContext()\n const { data: realm } = useGetCurrentRealm()\n\n const registrationUrl = useOneSageURL('/register1')\n const sageResourcesUrl = useOneSageURL('/sageresources')\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <Box\n sx={{\n backgroundColor: 'primary.800',\n p: '50px 50px 20px 50px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n rowGap: '50px',\n }}\n >\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <SynapseFullLogo color=\"white\" />\n <Typography\n variant=\"body1Italic\"\n sx={{ color: 'primary.200', fontSize: '13px', mb: '25px' }}\n >\n Powered by Sage Bionetworks\n </Typography>\n {!isAuthenticated && (\n <Typography\n variant=\"h5\"\n sx={{\n color: 'white',\n fontSize: '32px',\n lineHeight: '46px',\n fontWeight: 400,\n mb: '30px',\n }}\n >\n Sign up for Synapse today\n </Typography>\n )}\n {!isAuthenticated && (\n <Box sx={{ display: 'flex', columnGap: '20px' }}>\n <Button\n variant=\"outlined\"\n color=\"lightPrimary\"\n onClick={() => {\n gotoPlace('/LoginPlace:0')\n }}\n >\n Login to Synapse\n </Button>\n <Button\n variant=\"contained\"\n color=\"lightPrimary\"\n href={registrationUrl.toString()}\n >\n Register Now\n </Button>\n </Box>\n )}\n </Box>\n <Box>\n <Box\n sx={{\n display: 'flex',\n columnGap: '60px',\n rowGap: '40px',\n flexWrap: 'wrap',\n }}\n >\n <SynapseLinksColumn\n category=\"Synapse\"\n synapseLinks={[\n {\n text: 'Contact Us',\n props: {\n href: 'https://sagebionetworks.jira.com/servicedesk/customer/portals',\n },\n },\n {\n text: 'Plans',\n props: {\n href: PLANS_LINK,\n target: '_self',\n },\n },\n {\n text: 'Data Portals',\n props: { href: sageResourcesUrl.toString() },\n },\n {\n text: 'Donate',\n props: { href: 'https://sagebionetworks.org/donate' },\n },\n ]}\n />\n <SynapseLinksColumn\n category=\"Resources\"\n synapseLinks={[\n {\n text: 'Blog',\n props: { href: 'https://blog.synapse.org/' },\n },\n {\n text: 'FAQs',\n props: {\n href: 'https://help.synapse.org/docs/FAQ.2047967233.html',\n },\n },\n {\n text: 'Documentation',\n props: { href: 'https://help.synapse.org/docs/' },\n },\n {\n text: 'Python Client',\n props: {\n href: 'https://python-docs.synapse.org/en/stable/',\n },\n },\n ]}\n />\n <SynapseLinksColumn\n category=\"Sage Bionetworks\"\n synapseLinks={[\n {\n text: 'Sage Home Page',\n props: { href: 'https://sagebionetworks.org/' },\n },\n {\n text: 'Report Violations',\n props: {\n href: 'https://sagebionetworks.jira.com/servicedesk/customer/portal/20',\n },\n },\n {\n text: 'Trust Center',\n props: { href: 'https://sagebionetworks.org/trust-center' },\n },\n ]}\n />\n </Box>\n </Box>\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: { xs: 'center', md: 'space-between' },\n alignItems: 'center',\n mt: '60px',\n rowGap: '40px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n columnGap: '20px',\n alignItems: 'center',\n flexWrap: 'wrap',\n justifyContent: { xs: 'center', md: undefined },\n }}\n >\n <SageFullLogo textColor=\"white\" width={285} />\n <Typography\n variant=\"body1\"\n sx={{\n color: 'primary.200',\n fontSize: '18px',\n }}\n >\n © Sage Bionetworks {currentYear}\n </Typography>\n </Box>\n <Box\n sx={{\n display: 'flex',\n columnGap: '15px',\n svg: {\n '&:hover': {\n stroke: 'rgba(255, 255, 255, .4)',\n // fill: 'rgba(245, 246, 241, .05)', //uncomment if extra emphasis is needed\n },\n },\n }}\n >\n <a\n href=\"https://github.com/Sage-Bionetworks\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Github />\n </a>\n <a\n href=\"https://twitter.com/sagebio\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Twitter />\n </a>\n <a\n href=\"https://www.linkedin.com/company/sage-bionetworks\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <LinkedIn />\n </a>\n <a\n href=\"https://www.facebook.com/sagebionetworks/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Facebook />\n </a>\n <a\n href=\"https://www.instagram.com/sagebionetworks/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Instagram />\n </a>\n <a\n href=\"https://www.youtube.com/channel/UCiWTMRdO82wNq6o8JOs3WzQ\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Youtube />\n </a>\n </Box>\n </Box>\n </Box>\n {/* Versions and experimental mode */}\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n backgroundColor: '#121B23',\n alignItems: 'center',\n p: '15px 50px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n columnGap: '40px',\n rowGap: '0px',\n color: 'primary.300',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n portal: {portalVersion}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n synapse-react-client: {srcVersion}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n repo: {repoVersion}\n </Typography>\n {realm && (\n <Stack direction=\"row\" alignItems=\"center\">\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n realm: {realm.name}\n </Typography>\n {realm.id !== SYNAPSE_REALM && (\n <Tooltip\n title={`Reset Realm${\n isAuthenticated ? ' (will log you out)' : ''\n }`}\n >\n <IconButton\n size=\"small\"\n sx={{ color: 'currentcolor' }}\n onClick={() => {\n void clearSession()\n }}\n >\n <LogoutTwoTone sx={{ fontSize: 'inherit' }} />\n </IconButton>\n </Tooltip>\n )}\n </Stack>\n )}\n </Box>\n <ExperimentalMode onExperimentalModeToggle={onExperimentalModeToggle} />\n </Box>\n </Box>\n )\n}\n\nexport default SynapseFooter\n"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseFooter.js","names":[],"sources":["../../../src/components/SynapseFooter/SynapseFooter.tsx"],"sourcesContent":["import { ReactComponent as Facebook } from '@/assets/homepage/facebook.svg'\nimport { ReactComponent as Github } from '@/assets/homepage/github.svg'\nimport { ReactComponent as Instagram } from '@/assets/homepage/instagram.svg'\nimport { ReactComponent as LinkedIn } from '@/assets/homepage/linkedin.svg'\nimport { ReactComponent as Twitter } from '@/assets/homepage/twitter.svg'\nimport { ReactComponent as Youtube } from '@/assets/homepage/youtube.svg'\nimport SageFullLogo from '@/assets/icons/SageFullLogo'\nimport SynapseFullLogo from '@/assets/icons/SynapseFullLogo'\nimport { useApplicationSessionContext } from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport {\n Box,\n Button,\n IconButton,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport ExperimentalMode from '../ExperimentalMode'\nimport { PLANS_LINK } from '../SynapseHomepageV2/SynapseHomepageNavBar'\nimport { SynapseLinksColumn } from './SynapseLinksColumn'\nimport LogoutTwoTone from '@mui/icons-material/LogoutTwoTone'\nimport { SYNAPSE_REALM } from '@/utils/SynapseConstants'\nimport { useGetCurrentRealm } from '@/synapse-queries/realm/useRealmPrincipals'\n\nexport type SynapseFooterProps = {\n portalVersion: string\n srcVersion: string\n repoVersion: string\n gotoPlace: (href: string) => void\n onExperimentalModeToggle: (newValue: boolean) => void\n}\n\nconst currentYear = new Date().getFullYear()\nexport function SynapseFooter({\n portalVersion,\n srcVersion,\n repoVersion,\n gotoPlace,\n onExperimentalModeToggle,\n}: SynapseFooterProps) {\n const { isAuthenticated, clearSession } = useApplicationSessionContext()\n const { data: realm } = useGetCurrentRealm()\n\n const registrationUrl = useOneSageURL('/register1')\n const sageResourcesUrl = useOneSageURL('/sageresources')\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <Box\n sx={{\n backgroundColor: 'primary.800',\n p: '50px 50px 20px 50px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n rowGap: '50px',\n }}\n >\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <SynapseFullLogo color=\"white\" />\n <Typography\n variant=\"body1Italic\"\n sx={{ color: 'primary.200', fontSize: '13px', mb: '25px' }}\n >\n Powered by Sage Bionetworks\n </Typography>\n {!isAuthenticated && (\n <Typography\n variant=\"h5\"\n sx={{\n color: 'white',\n fontSize: '32px',\n lineHeight: '46px',\n fontWeight: 400,\n mb: '30px',\n }}\n >\n Sign up for Synapse today\n </Typography>\n )}\n {!isAuthenticated && (\n <Box sx={{ display: 'flex', columnGap: '20px' }}>\n <Button\n variant=\"outlined\"\n color=\"lightPrimary\"\n onClick={() => {\n gotoPlace('/LoginPlace:0')\n }}\n >\n Login to Synapse\n </Button>\n <Button\n variant=\"contained\"\n color=\"lightPrimary\"\n href={registrationUrl.toString()}\n >\n Register Now\n </Button>\n </Box>\n )}\n </Box>\n <Box>\n <Box\n sx={{\n display: 'flex',\n columnGap: '60px',\n rowGap: '40px',\n flexWrap: 'wrap',\n }}\n >\n <SynapseLinksColumn\n category=\"Synapse\"\n synapseLinks={[\n {\n text: 'Contact Us',\n props: {\n href: 'https://sagebionetworks.jira.com/servicedesk/customer/portals',\n },\n },\n {\n text: 'Plans',\n props: {\n href: PLANS_LINK,\n target: '_self',\n },\n },\n {\n text: 'Data Portals',\n props: { href: sageResourcesUrl.toString() },\n },\n {\n text: 'Donate',\n props: { href: 'https://sagebionetworks.org/donate' },\n },\n ]}\n />\n <SynapseLinksColumn\n category=\"Resources\"\n synapseLinks={[\n {\n text: 'Blog',\n props: { href: 'https://blog.synapse.org/' },\n },\n {\n text: 'FAQs',\n props: {\n href: 'https://help.synapse.org/docs/FAQ.2047967233.html',\n },\n },\n {\n text: 'Documentation',\n props: { href: 'https://help.synapse.org/docs/' },\n },\n {\n text: 'Python Client',\n props: {\n href: 'https://python-docs.synapse.org/en/stable/',\n },\n },\n ]}\n />\n <SynapseLinksColumn\n category=\"Sage Bionetworks\"\n synapseLinks={[\n {\n text: 'Sage Home Page',\n props: { href: 'https://sagebionetworks.org/' },\n },\n {\n text: 'Report Violations',\n props: {\n href: 'https://sagebionetworks.jira.com/servicedesk/customer/portal/20',\n },\n },\n {\n text: 'Trust Center',\n props: { href: 'https://sagebionetworks.org/trust-center' },\n },\n ]}\n />\n </Box>\n </Box>\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: { xs: 'center', md: 'space-between' },\n alignItems: 'center',\n mt: '60px',\n rowGap: '40px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n columnGap: '20px',\n alignItems: 'center',\n flexWrap: 'wrap',\n justifyContent: { xs: 'center', md: undefined },\n }}\n >\n <SageFullLogo textColor=\"white\" width={285} />\n <Typography\n variant=\"body1\"\n sx={{\n color: 'primary.200',\n fontSize: '18px',\n }}\n >\n © Sage Bionetworks {currentYear}\n </Typography>\n </Box>\n <Box\n sx={{\n display: 'flex',\n columnGap: '15px',\n svg: {\n '&:hover': {\n stroke: 'rgba(255, 255, 255, .4)',\n // fill: 'rgba(245, 246, 241, .05)', //uncomment if extra emphasis is needed\n },\n },\n }}\n >\n <a\n href=\"https://github.com/Sage-Bionetworks\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Github />\n </a>\n <a\n href=\"https://twitter.com/sagebio\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Twitter />\n </a>\n <a\n href=\"https://www.linkedin.com/company/sage-bionetworks\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <LinkedIn />\n </a>\n <a\n href=\"https://www.facebook.com/sagebionetworks/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Facebook />\n </a>\n <a\n href=\"https://www.instagram.com/sagebionetworks/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Instagram />\n </a>\n <a\n href=\"https://www.youtube.com/channel/UCiWTMRdO82wNq6o8JOs3WzQ\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Youtube />\n </a>\n </Box>\n </Box>\n </Box>\n {/* Versions and experimental mode */}\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n backgroundColor: '#121B23',\n alignItems: 'center',\n p: '15px 50px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n columnGap: '40px',\n rowGap: '0px',\n color: 'primary.300',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n portal: {portalVersion}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n synapse-react-client: {srcVersion}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n repo: {repoVersion}\n </Typography>\n {realm && (\n <Stack direction=\"row\" alignItems=\"center\">\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n }}\n >\n realm: {realm.name}\n </Typography>\n {realm.id !== SYNAPSE_REALM && (\n <Tooltip\n title={`Reset Realm${\n isAuthenticated ? ' (will log you out)' : ''\n }`}\n >\n <IconButton\n size=\"small\"\n sx={{ color: 'currentcolor' }}\n onClick={() => {\n void clearSession()\n }}\n >\n <LogoutTwoTone sx={{ fontSize: 'inherit' }} />\n </IconButton>\n </Tooltip>\n )}\n </Stack>\n )}\n </Box>\n <ExperimentalMode onExperimentalModeToggle={onExperimentalModeToggle} />\n </Box>\n </Box>\n )\n}\n\nexport default SynapseFooter\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import e from "../ImageFromSynapseTable.js";
2
2
  import { Box as t, Card as n, Chip as r, Link as i, Typography as a } from "@mui/material";
3
3
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
- import { EastTwoTone as c } from "@mui/icons-material";
4
+ import c from "@mui/icons-material/EastTwoTone";
5
5
  //#region src/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.tsx
6
6
  var l = {
7
7
  textOverflow: "ellipsis",
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseFeaturedDatasetItem.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.tsx"],"sourcesContent":["import { EastTwoTone } from '@mui/icons-material'\nimport { Box, Card, Chip, Link, SxProps, Typography } from '@mui/material'\nimport ImageFromSynapseTable from '../ImageFromSynapseTable'\n\nexport type SynapseFeaturedDatasetItemProps = {\n sourceTable: string\n community?: string | null\n name?: string | null\n description?: string | null\n contributors?: string | null\n keywords?: string | null\n individuals?: string | null\n imageFileId?: string | null\n size?: string | null\n sizeUnit?: string | null\n link: string\n}\nconst clampedTextSx: SxProps = {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n // height: YOUR HEIGHT,\n // '-webkit-line-clamp': NUMBER OF LINES,\n}\nexport function SynapseFeaturedDatasetItem({\n sourceTable,\n name,\n description,\n contributors,\n keywords,\n imageFileId,\n individuals,\n size,\n sizeUnit,\n link,\n}: SynapseFeaturedDatasetItemProps) {\n const tags: string[] = keywords ? JSON.parse(keywords) : []\n return (\n <Card\n sx={{\n display: 'flex',\n flexDirection: 'column',\n rowGap: '30px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n rowGap: '15px',\n p: '30px 30px 0px 30px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: '5px',\n minHeight: '70px',\n overflow: 'hidden',\n }}\n >\n {tags &&\n tags.map(tag => {\n return (\n <Chip\n key={tag}\n sx={{\n mr: '5px',\n color: 'secondary.600',\n backgroundColor: 'secondary.100',\n borderWidth: '0px',\n }}\n label={tag}\n />\n )\n })}\n </Box>\n <Typography\n variant=\"headline3\"\n sx={{\n fontSize: '24px',\n fontWeight: 600,\n lineHeight: '32px',\n ...clampedTextSx,\n height: '70px',\n '-webkit-line-clamp': '2',\n }}\n >\n {name}\n </Typography>\n </Box>\n {imageFileId && (\n <Box sx={{ p: '30px', backgroundColor: 'primary.100' }}>\n <ImageFromSynapseTable\n tableId={sourceTable}\n fileHandleId={imageFileId}\n />\n </Box>\n )}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n p: '0px 30px 30px 30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '24px',\n mb: '20px',\n ...clampedTextSx,\n height: '120px',\n '-webkit-line-clamp': '5',\n }}\n >\n {description}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{ fontSize: '14px', fontWeight: 700, lineHeight: '20px' }}\n >\n Dimensions\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n mb: '20px',\n ...clampedTextSx,\n height: '24px',\n '-webkit-line-clamp': '1',\n }}\n >\n {individuals} individuals, {size}\n {sizeUnit}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{ fontSize: '14px', fontWeight: 700, lineHeight: '20px' }}\n >\n Contributors\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n ...clampedTextSx,\n height: '48px',\n '-webkit-line-clamp': '2',\n }}\n >\n {contributors}\n </Typography>\n <Box sx={{ mt: '32px' }}>\n <Link href={link} target=\"_blank\">\n Explore dataset\n <EastTwoTone sx={{ mb: '-8px', ml: '6px' }} />\n </Link>\n </Box>\n </Box>\n </Card>\n )\n}\n"],"mappings":";;;;;AAiBA,IAAM,IAAyB;CAC7B,cAAc;CACd,UAAU;CACV,SAAS;CACT,sBAAsB;AAGxB;AACA,SAAgB,EAA2B,EACzC,gBACA,SACA,gBACA,iBACA,aACA,gBACA,gBACA,SACA,aACA,WACkC;CAClC,IAAM,IAAiB,IAAW,KAAK,MAAM,CAAQ,IAAI,CAAC;CAC1D,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GACf,QAAQ;EACV;YALF;GAOE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,QAAQ;KACR,GAAG;IACL;cANF,CAQE,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,UAAU;MACV,QAAQ;MACR,WAAW;MACX,UAAU;KACZ;eAEC,KACC,EAAK,KAAI,MAEL,kBAAC,GAAD;MAEE,IAAI;OACF,IAAI;OACJ,OAAO;OACP,iBAAiB;OACjB,aAAa;MACf;MACA,OAAO;KACR,GARM,CAQN,CAEJ;IACA,CAAA,GACL,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,UAAU;MACV,YAAY;MACZ,YAAY;MACZ,GAAG;MACH,QAAQ;MACR,sBAAsB;KACxB;eAEC;IACS,CAAA,CACT;;GACJ,KACC,kBAAC,GAAD;IAAK,IAAI;KAAE,GAAG;KAAQ,iBAAiB;IAAc;cACnD,kBAAC,GAAD;KACE,SAAS;KACT,cAAc;IACf,CAAA;GACE,CAAA;GAEP,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,GAAG;IACL;cALF;KAOE,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,UAAU;OACV,YAAY;OACZ,YAAY;OACZ,IAAI;OACJ,GAAG;OACH,QAAQ;OACR,sBAAsB;MACxB;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OAAE,UAAU;OAAQ,YAAY;OAAK,YAAY;MAAO;gBAC7D;KAEW,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,IAAI;OACJ,GAAG;OACH,QAAQ;OACR,sBAAsB;MACxB;gBAPF;OASG;OAAY;OAAe;OAC3B;MACS;;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OAAE,UAAU;OAAQ,YAAY;OAAK,YAAY;MAAO;gBAC7D;KAEW,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,GAAG;OACH,QAAQ;OACR,sBAAsB;MACxB;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MAAK,IAAI,EAAE,IAAI,OAAO;gBACpB,kBAAC,GAAD;OAAM,MAAM;OAAM,QAAO;iBAAzB,CAAkC,mBAEhC,kBAAC,GAAD,EAAa,IAAI;QAAE,IAAI;QAAQ,IAAI;OAAM,EAAI,CAAA,CACzC;;KACH,CAAA;IACF;;EACD;;AAEV"}
1
+ {"version":3,"file":"SynapseFeaturedDatasetItem.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.tsx"],"sourcesContent":["import EastTwoTone from '@mui/icons-material/EastTwoTone'\nimport { Box, Card, Chip, Link, SxProps, Typography } from '@mui/material'\nimport ImageFromSynapseTable from '../ImageFromSynapseTable'\n\nexport type SynapseFeaturedDatasetItemProps = {\n sourceTable: string\n community?: string | null\n name?: string | null\n description?: string | null\n contributors?: string | null\n keywords?: string | null\n individuals?: string | null\n imageFileId?: string | null\n size?: string | null\n sizeUnit?: string | null\n link: string\n}\nconst clampedTextSx: SxProps = {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n // height: YOUR HEIGHT,\n // '-webkit-line-clamp': NUMBER OF LINES,\n}\nexport function SynapseFeaturedDatasetItem({\n sourceTable,\n name,\n description,\n contributors,\n keywords,\n imageFileId,\n individuals,\n size,\n sizeUnit,\n link,\n}: SynapseFeaturedDatasetItemProps) {\n const tags: string[] = keywords ? JSON.parse(keywords) : []\n return (\n <Card\n sx={{\n display: 'flex',\n flexDirection: 'column',\n rowGap: '30px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n rowGap: '15px',\n p: '30px 30px 0px 30px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: '5px',\n minHeight: '70px',\n overflow: 'hidden',\n }}\n >\n {tags &&\n tags.map(tag => {\n return (\n <Chip\n key={tag}\n sx={{\n mr: '5px',\n color: 'secondary.600',\n backgroundColor: 'secondary.100',\n borderWidth: '0px',\n }}\n label={tag}\n />\n )\n })}\n </Box>\n <Typography\n variant=\"headline3\"\n sx={{\n fontSize: '24px',\n fontWeight: 600,\n lineHeight: '32px',\n ...clampedTextSx,\n height: '70px',\n '-webkit-line-clamp': '2',\n }}\n >\n {name}\n </Typography>\n </Box>\n {imageFileId && (\n <Box sx={{ p: '30px', backgroundColor: 'primary.100' }}>\n <ImageFromSynapseTable\n tableId={sourceTable}\n fileHandleId={imageFileId}\n />\n </Box>\n )}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n p: '0px 30px 30px 30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '24px',\n mb: '20px',\n ...clampedTextSx,\n height: '120px',\n '-webkit-line-clamp': '5',\n }}\n >\n {description}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{ fontSize: '14px', fontWeight: 700, lineHeight: '20px' }}\n >\n Dimensions\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n mb: '20px',\n ...clampedTextSx,\n height: '24px',\n '-webkit-line-clamp': '1',\n }}\n >\n {individuals} individuals, {size}\n {sizeUnit}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{ fontSize: '14px', fontWeight: 700, lineHeight: '20px' }}\n >\n Contributors\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n ...clampedTextSx,\n height: '48px',\n '-webkit-line-clamp': '2',\n }}\n >\n {contributors}\n </Typography>\n <Box sx={{ mt: '32px' }}>\n <Link href={link} target=\"_blank\">\n Explore dataset\n <EastTwoTone sx={{ mb: '-8px', ml: '6px' }} />\n </Link>\n </Box>\n </Box>\n </Card>\n )\n}\n"],"mappings":";;;;;AAiBA,IAAM,IAAyB;CAC7B,cAAc;CACd,UAAU;CACV,SAAS;CACT,sBAAsB;AAGxB;AACA,SAAgB,EAA2B,EACzC,gBACA,SACA,gBACA,iBACA,aACA,gBACA,gBACA,SACA,aACA,WACkC;CAClC,IAAM,IAAiB,IAAW,KAAK,MAAM,CAAQ,IAAI,CAAC;CAC1D,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GACf,QAAQ;EACV;YALF;GAOE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,QAAQ;KACR,GAAG;IACL;cANF,CAQE,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,UAAU;MACV,QAAQ;MACR,WAAW;MACX,UAAU;KACZ;eAEC,KACC,EAAK,KAAI,MAEL,kBAAC,GAAD;MAEE,IAAI;OACF,IAAI;OACJ,OAAO;OACP,iBAAiB;OACjB,aAAa;MACf;MACA,OAAO;KACR,GARM,CAQN,CAEJ;IACA,CAAA,GACL,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,UAAU;MACV,YAAY;MACZ,YAAY;MACZ,GAAG;MACH,QAAQ;MACR,sBAAsB;KACxB;eAEC;IACS,CAAA,CACT;;GACJ,KACC,kBAAC,GAAD;IAAK,IAAI;KAAE,GAAG;KAAQ,iBAAiB;IAAc;cACnD,kBAAC,GAAD;KACE,SAAS;KACT,cAAc;IACf,CAAA;GACE,CAAA;GAEP,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,GAAG;IACL;cALF;KAOE,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,UAAU;OACV,YAAY;OACZ,YAAY;OACZ,IAAI;OACJ,GAAG;OACH,QAAQ;OACR,sBAAsB;MACxB;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OAAE,UAAU;OAAQ,YAAY;OAAK,YAAY;MAAO;gBAC7D;KAEW,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,IAAI;OACJ,GAAG;OACH,QAAQ;OACR,sBAAsB;MACxB;gBAPF;OASG;OAAY;OAAe;OAC3B;MACS;;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OAAE,UAAU;OAAQ,YAAY;OAAK,YAAY;MAAO;gBAC7D;KAEW,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,GAAG;OACH,QAAQ;OACR,sBAAsB;MACxB;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MAAK,IAAI,EAAE,IAAI,OAAO;gBACpB,kBAAC,GAAD;OAAM,MAAM;OAAM,QAAO;iBAAzB,CAAkC,mBAEhC,kBAAC,GAAD,EAAa,IAAI;QAAE,IAAI;QAAQ,IAAI;OAAM,EAAI,CAAA,CACzC;;KACH,CAAA;IACF;;EACD;;AAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseHomepageNavBar.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseHomepageV2/SynapseHomepageNavBar.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,UAAU,aAAa,CAAA;AAoCpC,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,GACV,EAAE,0BAA0B,2CAyQ5B"}
1
+ {"version":3,"file":"SynapseHomepageNavBar.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseHomepageV2/SynapseHomepageNavBar.tsx"],"names":[],"mappings":"AAuBA,eAAO,MAAM,UAAU,aAAa,CAAA;AAoCpC,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,GACV,EAAE,0BAA0B,2CAyQ5B"}
@@ -7,7 +7,8 @@ import r from "../../assets/icons/SynapseFullLogo.js";
7
7
  import { useState as i } from "react";
8
8
  import { Box as a, Button as o, Divider as s, IconButton as c, Menu as l, MenuItem as u, styled as d, useMediaQuery as f, useTheme as p } from "@mui/material";
9
9
  import { jsx as m, jsxs as h } from "react/jsx-runtime";
10
- import { Close as g, MenuOutlined as _ } from "@mui/icons-material";
10
+ import g from "@mui/icons-material/Close";
11
+ import _ from "@mui/icons-material/MenuOutlined";
11
12
  //#region src/components/SynapseHomepageV2/SynapseHomepageNavBar.tsx
12
13
  var v = "/LoginPlace:0", y = "/Home:x", b = "/Plans:0", x = "/Profile:v/projects/all", S = {
13
14
  fontSize: "18px",
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseHomepageNavBar.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseHomepageNavBar.tsx"],"sourcesContent":["import SynapseFullLogo from '@/assets/icons/SynapseFullLogo'\nimport { useSynapseContext } from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks'\nimport { Close, MenuOutlined } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Divider,\n IconButton,\n Menu,\n MenuItem,\n styled,\n SxProps,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport type { Color } from '@mui/material/styles'\nimport { MouseEvent, useState } from 'react'\nimport SageResourcesPopover from '../SageResourcesPopover'\n\nconst LOGIN_LINK = '/LoginPlace:0'\nconst HOMEPAGE_LINK = '/Home:x'\nexport const PLANS_LINK = '/Plans:0'\nconst DASHBOARD_LINK = '/Profile:v/projects/all'\n\nconst navTextButtonSx: SxProps = {\n fontSize: '18px',\n lineHeight: '24px',\n fontWeight: 400,\n}\nconst navButtonSx: SxProps = {\n borderRadius: '0',\n p: {\n xs: '7px 10px',\n sm: '7px 30px',\n },\n}\nconst StyledMenu = styled(Menu)(() => ({\n '& .MuiPaper-root': {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n maxHeight: '100vh',\n margin: 0,\n top: '0 !important',\n left: '0 !important',\n transform: 'none',\n },\n}))\n\nconst StyledMenuItem = styled(MenuItem)(() => ({\n fontSize: '36px',\n fontWeight: 200,\n lineHeight: '32px',\n height: '80px',\n paddingLeft: '30px',\n}))\n\nexport type SynapseHomepageNavBarProps = {\n gotoPlace: (href: string) => void\n}\n\nexport function SynapseHomepageNavBar({\n gotoPlace,\n}: SynapseHomepageNavBarProps) {\n const { isAuthenticated } = useSynapseContext()\n const registrationLink = useOneSageURL('/register1')\n const theme = useTheme()\n const isSmallView = useMediaQuery(theme.breakpoints.down('md'))\n const sageResourcesURL = useOneSageURL('/sageresources')\n // mobile view nav bar menu\n const [mobileMenuAnchorEl, setMobileMenuAnchorEl] =\n useState<null | HTMLElement>(null)\n const handleClickMobileMenu = (event: MouseEvent<HTMLButtonElement>) => {\n setMobileMenuAnchorEl(event.currentTarget)\n }\n const handleCloseMobileMenu = () => {\n setMobileMenuAnchorEl(null)\n }\n\n // Portals dropdown\n const [portalResourcesAnchorEl, setPortalResourcesAnchorEl] =\n useState<HTMLElement | null>(null)\n const handleClosePortalResources = () => {\n setPortalResourcesAnchorEl(null)\n }\n\n // Sage solutions dropdown\n const [sageSolutionsAnchorEl, setSageSolutionsAnchorEl] =\n useState<HTMLElement | null>(null)\n const handleCloseSageSolutions = () => {\n setSageSolutionsAnchorEl(null)\n }\n\n const onLoginClicked = () => {\n // Navigate to the LoginPlace, which will set a cookie that will be used to redirect back from OneSage\n gotoPlace(LOGIN_LINK)\n }\n\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n columnGap: '5px',\n p: {\n xs: '10px 5px',\n sm: '20px 15px',\n },\n }}\n >\n {/* Logo */}\n <a onClick={() => gotoPlace(HOMEPAGE_LINK)}>\n <SynapseFullLogo\n color={(theme.palette.primary as unknown as Color)[900]}\n />\n </a>\n {/* Menu Items */}\n {/* Desktop nav bar, and a mobile hamburger dropdown menu nav bar that contain the same options */}\n {!isSmallView && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: '20px',\n }}\n >\n <Button sx={navTextButtonSx} onClick={() => gotoPlace(PLANS_LINK)}>\n Plans\n </Button>\n <Button\n sx={navTextButtonSx}\n onClick={event => setPortalResourcesAnchorEl(event.currentTarget)}\n >\n Portals\n </Button>\n <Button\n sx={navTextButtonSx}\n onClick={event => setSageSolutionsAnchorEl(event.currentTarget)}\n >\n Applications\n </Button>\n <Button\n sx={{ ...navTextButtonSx, mr: '15px' }}\n href=\"https://sagebionetworks.org/\"\n target=\"_blank\"\n >\n Sage Bionetworks\n </Button>\n {!isAuthenticated && (\n <Button\n size=\"large\"\n variant=\"outlined\"\n color=\"secondary\"\n sx={navButtonSx}\n onClick={onLoginClicked}\n >\n Login\n </Button>\n )}\n {!isAuthenticated && (\n <Button\n size=\"large\"\n variant=\"contained\"\n color=\"secondary\"\n sx={navButtonSx}\n href={registrationLink.toString()}\n >\n Register Now\n </Button>\n )}\n {isAuthenticated && (\n <Button\n size=\"large\"\n variant=\"outlined\"\n color=\"secondary\"\n sx={navButtonSx}\n onClick={() => {\n gotoPlace(DASHBOARD_LINK)\n }}\n >\n View Dashboard\n </Button>\n )}\n </Box>\n )}\n <SageResourcesPopover\n anchorEl={portalResourcesAnchorEl}\n onClose={handleClosePortalResources}\n filterByType=\"SynapsePortal\"\n allResourcesUrl={sageResourcesURL.toString()}\n />\n <SageResourcesPopover\n anchorEl={sageSolutionsAnchorEl}\n onClose={handleCloseSageSolutions}\n filterByType=\"SageSolution\"\n resourceName=\"Applications\"\n description=\"Innovative tools in the Synapse ecosystem promoting crowd-sourced data science competitions, translational research, and more\"\n />\n {isSmallView && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n columnGap: '10px',\n }}\n >\n <IconButton\n color=\"secondary\"\n sx={{\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: '0',\n ml: '70px',\n }}\n onClick={handleClickMobileMenu}\n >\n <MenuOutlined />\n </IconButton>\n <StyledMenu\n anchorEl={mobileMenuAnchorEl}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n keepMounted\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n open={Boolean(mobileMenuAnchorEl)}\n onClose={handleCloseMobileMenu}\n MenuListProps={{\n style: {\n width: '100%',\n height: '100%',\n },\n }}\n >\n <IconButton\n onClick={handleCloseMobileMenu}\n sx={{\n position: 'absolute',\n top: 5,\n right: 5,\n zIndex: 1,\n color: 'secondary.main',\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: '0',\n }}\n >\n <Close />\n </IconButton>\n <StyledMenuItem\n sx={{ mt: '70px' }}\n onClick={() => {\n gotoPlace(PLANS_LINK)\n handleCloseMobileMenu()\n }}\n >\n Plans\n </StyledMenuItem>\n <StyledMenuItem\n onClick={event => {\n setPortalResourcesAnchorEl(event.currentTarget)\n handleCloseMobileMenu()\n }}\n >\n Portals\n </StyledMenuItem>\n <StyledMenuItem\n onClick={event => {\n setSageSolutionsAnchorEl(event.currentTarget)\n handleCloseMobileMenu()\n }}\n >\n Applications\n </StyledMenuItem>\n <StyledMenuItem\n onClick={() => {\n window.open('https://sagebionetworks.org/', '_blank')\n handleCloseMobileMenu()\n }}\n >\n Sage Bionetworks\n </StyledMenuItem>\n\n <Divider sx={{ pt: '100px' }} />\n {!isAuthenticated && (\n <StyledMenuItem\n sx={{ mt: '30px', color: 'secondary.main' }}\n onClick={() => {\n window.open(registrationLink.toString(), '_blank')\n handleCloseMobileMenu()\n }}\n >\n Register Now\n </StyledMenuItem>\n )}\n {!isAuthenticated && (\n <StyledMenuItem\n sx={{ mb: '40px' }}\n onClick={() => {\n handleCloseMobileMenu()\n onLoginClicked()\n }}\n >\n Log In\n </StyledMenuItem>\n )}\n {isAuthenticated && (\n <StyledMenuItem\n sx={{ mb: '40px', color: 'secondary.main' }}\n onClick={() => {\n handleCloseMobileMenu()\n gotoPlace(DASHBOARD_LINK)\n }}\n >\n View Dashboard\n </StyledMenuItem>\n )}\n </StyledMenu>\n </Box>\n )}\n </Box>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseHomepageNavBar.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseHomepageNavBar.tsx"],"sourcesContent":["import SynapseFullLogo from '@/assets/icons/SynapseFullLogo'\nimport { useSynapseContext } from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks'\nimport Close from '@mui/icons-material/Close'\nimport MenuOutlined from '@mui/icons-material/MenuOutlined'\nimport {\n Box,\n Button,\n Divider,\n IconButton,\n Menu,\n MenuItem,\n styled,\n SxProps,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport type { Color } from '@mui/material/styles'\nimport { MouseEvent, useState } from 'react'\nimport SageResourcesPopover from '../SageResourcesPopover'\n\nconst LOGIN_LINK = '/LoginPlace:0'\nconst HOMEPAGE_LINK = '/Home:x'\nexport const PLANS_LINK = '/Plans:0'\nconst DASHBOARD_LINK = '/Profile:v/projects/all'\n\nconst navTextButtonSx: SxProps = {\n fontSize: '18px',\n lineHeight: '24px',\n fontWeight: 400,\n}\nconst navButtonSx: SxProps = {\n borderRadius: '0',\n p: {\n xs: '7px 10px',\n sm: '7px 30px',\n },\n}\nconst StyledMenu = styled(Menu)(() => ({\n '& .MuiPaper-root': {\n width: '100vw',\n height: '100vh',\n maxWidth: '100vw',\n maxHeight: '100vh',\n margin: 0,\n top: '0 !important',\n left: '0 !important',\n transform: 'none',\n },\n}))\n\nconst StyledMenuItem = styled(MenuItem)(() => ({\n fontSize: '36px',\n fontWeight: 200,\n lineHeight: '32px',\n height: '80px',\n paddingLeft: '30px',\n}))\n\nexport type SynapseHomepageNavBarProps = {\n gotoPlace: (href: string) => void\n}\n\nexport function SynapseHomepageNavBar({\n gotoPlace,\n}: SynapseHomepageNavBarProps) {\n const { isAuthenticated } = useSynapseContext()\n const registrationLink = useOneSageURL('/register1')\n const theme = useTheme()\n const isSmallView = useMediaQuery(theme.breakpoints.down('md'))\n const sageResourcesURL = useOneSageURL('/sageresources')\n // mobile view nav bar menu\n const [mobileMenuAnchorEl, setMobileMenuAnchorEl] =\n useState<null | HTMLElement>(null)\n const handleClickMobileMenu = (event: MouseEvent<HTMLButtonElement>) => {\n setMobileMenuAnchorEl(event.currentTarget)\n }\n const handleCloseMobileMenu = () => {\n setMobileMenuAnchorEl(null)\n }\n\n // Portals dropdown\n const [portalResourcesAnchorEl, setPortalResourcesAnchorEl] =\n useState<HTMLElement | null>(null)\n const handleClosePortalResources = () => {\n setPortalResourcesAnchorEl(null)\n }\n\n // Sage solutions dropdown\n const [sageSolutionsAnchorEl, setSageSolutionsAnchorEl] =\n useState<HTMLElement | null>(null)\n const handleCloseSageSolutions = () => {\n setSageSolutionsAnchorEl(null)\n }\n\n const onLoginClicked = () => {\n // Navigate to the LoginPlace, which will set a cookie that will be used to redirect back from OneSage\n gotoPlace(LOGIN_LINK)\n }\n\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n columnGap: '5px',\n p: {\n xs: '10px 5px',\n sm: '20px 15px',\n },\n }}\n >\n {/* Logo */}\n <a onClick={() => gotoPlace(HOMEPAGE_LINK)}>\n <SynapseFullLogo\n color={(theme.palette.primary as unknown as Color)[900]}\n />\n </a>\n {/* Menu Items */}\n {/* Desktop nav bar, and a mobile hamburger dropdown menu nav bar that contain the same options */}\n {!isSmallView && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: '20px',\n }}\n >\n <Button sx={navTextButtonSx} onClick={() => gotoPlace(PLANS_LINK)}>\n Plans\n </Button>\n <Button\n sx={navTextButtonSx}\n onClick={event => setPortalResourcesAnchorEl(event.currentTarget)}\n >\n Portals\n </Button>\n <Button\n sx={navTextButtonSx}\n onClick={event => setSageSolutionsAnchorEl(event.currentTarget)}\n >\n Applications\n </Button>\n <Button\n sx={{ ...navTextButtonSx, mr: '15px' }}\n href=\"https://sagebionetworks.org/\"\n target=\"_blank\"\n >\n Sage Bionetworks\n </Button>\n {!isAuthenticated && (\n <Button\n size=\"large\"\n variant=\"outlined\"\n color=\"secondary\"\n sx={navButtonSx}\n onClick={onLoginClicked}\n >\n Login\n </Button>\n )}\n {!isAuthenticated && (\n <Button\n size=\"large\"\n variant=\"contained\"\n color=\"secondary\"\n sx={navButtonSx}\n href={registrationLink.toString()}\n >\n Register Now\n </Button>\n )}\n {isAuthenticated && (\n <Button\n size=\"large\"\n variant=\"outlined\"\n color=\"secondary\"\n sx={navButtonSx}\n onClick={() => {\n gotoPlace(DASHBOARD_LINK)\n }}\n >\n View Dashboard\n </Button>\n )}\n </Box>\n )}\n <SageResourcesPopover\n anchorEl={portalResourcesAnchorEl}\n onClose={handleClosePortalResources}\n filterByType=\"SynapsePortal\"\n allResourcesUrl={sageResourcesURL.toString()}\n />\n <SageResourcesPopover\n anchorEl={sageSolutionsAnchorEl}\n onClose={handleCloseSageSolutions}\n filterByType=\"SageSolution\"\n resourceName=\"Applications\"\n description=\"Innovative tools in the Synapse ecosystem promoting crowd-sourced data science competitions, translational research, and more\"\n />\n {isSmallView && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n columnGap: '10px',\n }}\n >\n <IconButton\n color=\"secondary\"\n sx={{\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: '0',\n ml: '70px',\n }}\n onClick={handleClickMobileMenu}\n >\n <MenuOutlined />\n </IconButton>\n <StyledMenu\n anchorEl={mobileMenuAnchorEl}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n keepMounted\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n open={Boolean(mobileMenuAnchorEl)}\n onClose={handleCloseMobileMenu}\n MenuListProps={{\n style: {\n width: '100%',\n height: '100%',\n },\n }}\n >\n <IconButton\n onClick={handleCloseMobileMenu}\n sx={{\n position: 'absolute',\n top: 5,\n right: 5,\n zIndex: 1,\n color: 'secondary.main',\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: '0',\n }}\n >\n <Close />\n </IconButton>\n <StyledMenuItem\n sx={{ mt: '70px' }}\n onClick={() => {\n gotoPlace(PLANS_LINK)\n handleCloseMobileMenu()\n }}\n >\n Plans\n </StyledMenuItem>\n <StyledMenuItem\n onClick={event => {\n setPortalResourcesAnchorEl(event.currentTarget)\n handleCloseMobileMenu()\n }}\n >\n Portals\n </StyledMenuItem>\n <StyledMenuItem\n onClick={event => {\n setSageSolutionsAnchorEl(event.currentTarget)\n handleCloseMobileMenu()\n }}\n >\n Applications\n </StyledMenuItem>\n <StyledMenuItem\n onClick={() => {\n window.open('https://sagebionetworks.org/', '_blank')\n handleCloseMobileMenu()\n }}\n >\n Sage Bionetworks\n </StyledMenuItem>\n\n <Divider sx={{ pt: '100px' }} />\n {!isAuthenticated && (\n <StyledMenuItem\n sx={{ mt: '30px', color: 'secondary.main' }}\n onClick={() => {\n window.open(registrationLink.toString(), '_blank')\n handleCloseMobileMenu()\n }}\n >\n Register Now\n </StyledMenuItem>\n )}\n {!isAuthenticated && (\n <StyledMenuItem\n sx={{ mb: '40px' }}\n onClick={() => {\n handleCloseMobileMenu()\n onLoginClicked()\n }}\n >\n Log In\n </StyledMenuItem>\n )}\n {isAuthenticated && (\n <StyledMenuItem\n sx={{ mb: '40px', color: 'secondary.main' }}\n onClick={() => {\n handleCloseMobileMenu()\n gotoPlace(DASHBOARD_LINK)\n }}\n >\n View Dashboard\n </StyledMenuItem>\n )}\n </StyledMenu>\n </Box>\n )}\n </Box>\n )\n}\n"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { darkTextColor as e, homepageBodyText as t } from "./HomepageStyles.js";
2
2
  import n from "../ImageFromSynapseTable.js";
3
3
  import { Box as r, Chip as i, Fade as a, Link as o, Slide as s, Typography as c, useMediaQuery as l, useTheme as u } from "@mui/material";
4
4
  import { jsx as d, jsxs as f } from "react/jsx-runtime";
5
- import { EastTwoTone as p } from "@mui/icons-material";
6
- import { useInView as m } from "react-intersection-observer";
5
+ import { useInView as p } from "react-intersection-observer";
6
+ import m from "@mui/icons-material/EastTwoTone";
7
7
  //#region src/components/SynapseHomepageV2/SynapseInActionItem.tsx
8
8
  var h = 320, g = {
9
9
  display: "flex",
@@ -13,7 +13,7 @@ var h = 320, g = {
13
13
  textAlign: "center"
14
14
  };
15
15
  function _({ tableId: _, friendlyName: v, title: y, description: b, tags: x, logoFileHandleId: S, link: C, imageFileHandleId: w, mobileImageFileHandleId: T }) {
16
- let E = l(u().breakpoints.down("sm")), [D, O] = m({
16
+ let E = l(u().breakpoints.down("sm")), [D, O] = p({
17
17
  threshold: .3,
18
18
  triggerOnce: !0
19
19
  });
@@ -106,7 +106,7 @@ function _({ tableId: _, friendlyName: v, title: y, description: b, tags: x, log
106
106
  " ",
107
107
  v,
108
108
  " ",
109
- /* @__PURE__ */ d(p, { sx: {
109
+ /* @__PURE__ */ d(m, { sx: {
110
110
  mb: "-8px",
111
111
  ml: "6px"
112
112
  } })
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseInActionItem.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseInActionItem.tsx"],"sourcesContent":["import {\n darkTextColor,\n homepageBodyText,\n} from '@/components/SynapseHomepageV2/HomepageStyles'\nimport {\n Box,\n Chip,\n Link,\n Typography,\n useTheme,\n useMediaQuery,\n SxProps,\n Fade,\n} from '@mui/material'\nimport ImageFromSynapseTable from '../ImageFromSynapseTable'\nimport { EastTwoTone } from '@mui/icons-material'\nimport { useInView } from 'react-intersection-observer'\nimport { Slide } from '@mui/material'\n\nconst transitionTimeoutMs = 320\n\nexport type SynapseInActionItemProps = {\n tableId: string\n friendlyName: string\n title: string\n description: string\n tags?: string[] | null\n logoFileHandleId: string\n link: string\n primaryColor: string\n secondaryColor: string\n imageFileHandleId: string\n mobileImageFileHandleId: string\n}\n\nconst mobileViewSxProps: SxProps = {\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n}\n\nexport function SynapseInActionItem({\n tableId,\n friendlyName,\n title,\n description,\n tags,\n logoFileHandleId,\n link,\n imageFileHandleId,\n mobileImageFileHandleId,\n}: SynapseInActionItemProps) {\n const theme = useTheme()\n const isMobileView = useMediaQuery(theme.breakpoints.down('sm'))\n // desktop image animation support\n const [ref, inView] = useInView({ threshold: 0.3, triggerOnce: true })\n\n return (\n <Box\n ref={ref}\n sx={{\n p: { xs: '10px', md: '15px 0px 0px 15px' },\n display: 'grid',\n gridTemplateColumns: {\n xs: 'auto 0px',\n md: '450px auto',\n },\n }}\n >\n <Box\n sx={{\n ml: {\n xs: '0px',\n md: '20px',\n },\n }}\n >\n {/* mobile image */}\n <Box\n sx={{\n display: { xs: 'flex', md: 'none' },\n justifyContent: 'center',\n width: '100%',\n mb: '10px',\n pt: '50px',\n img: { width: '320px', maxWidth: '100%' },\n }}\n >\n <ImageFromSynapseTable\n tableId={tableId}\n fileHandleId={mobileImageFileHandleId}\n />\n </Box>\n <Box sx={isMobileView ? mobileViewSxProps : { pt: '50px' }}>\n <Box>\n {tags &&\n tags.map(tag => {\n return (\n <Chip\n key={tag}\n sx={{\n mr: '5px',\n color: 'secondary.600',\n backgroundColor: 'secondary.100',\n borderWidth: '0px',\n }}\n label={tag}\n />\n )\n })}\n </Box>\n <Typography\n variant=\"body1\"\n sx={{\n fontWeight: 400,\n fontSize: '36px',\n lineHeight: '46px',\n mt: '32px',\n color: darkTextColor,\n }}\n >\n {title}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n ...homepageBodyText,\n mt: '32px',\n mb: '32px',\n }}\n >\n {description}\n </Typography>\n <ImageFromSynapseTable\n tableId={tableId}\n fileHandleId={logoFileHandleId}\n alt={`${friendlyName} logo`}\n style={{ height: '40px' }}\n />\n <Box sx={{ mt: '32px', pb: '50px' }}>\n <Link href={link} target=\"_blank\">\n View {friendlyName.endsWith('Portal') ? 'the' : ''} {friendlyName}{' '}\n <EastTwoTone sx={{ mb: '-8px', ml: '6px' }} />\n </Link>\n </Box>\n </Box>\n </Box>\n {/* desktop image */}\n <Box\n sx={{\n display: { xs: 'none', md: 'block' },\n justifySelf: 'end',\n alignSelf: 'end',\n }}\n >\n <Fade in={inView} timeout={transitionTimeoutMs}>\n <div>\n <Slide direction=\"left\" timeout={transitionTimeoutMs} in={inView}>\n <div>\n <ImageFromSynapseTable\n tableId={tableId}\n fileHandleId={imageFileHandleId}\n />\n </div>\n </Slide>\n </div>\n </Fade>\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAmBA,IAAM,IAAsB,KAgBtB,IAA6B;CACjC,SAAS;CACT,gBAAgB;CAChB,eAAe;CACf,YAAY;CACZ,WAAW;AACb;AAEA,SAAgB,EAAoB,EAClC,YACA,iBACA,UACA,gBACA,SACA,qBACA,SACA,sBACA,8BAC2B;CAE3B,IAAM,IAAe,EADP,EACqB,EAAM,YAAY,KAAK,IAAI,CAAC,GAEzD,CAAC,GAAK,KAAU,EAAU;EAAE,WAAW;EAAK,aAAa;CAAK,CAAC;CAErE,OACE,kBAAC,GAAD;EACO;EACL,IAAI;GACF,GAAG;IAAE,IAAI;IAAQ,IAAI;GAAoB;GACzC,SAAS;GACT,qBAAqB;IACnB,IAAI;IACJ,IAAI;GACN;EACF;YATF,CAWE,kBAAC,GAAD;GACE,IAAI,EACF,IAAI;IACF,IAAI;IACJ,IAAI;GACN,EACF;aANF,CASE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;MAAE,IAAI;MAAQ,IAAI;KAAO;KAClC,gBAAgB;KAChB,OAAO;KACP,IAAI;KACJ,IAAI;KACJ,KAAK;MAAE,OAAO;MAAS,UAAU;KAAO;IAC1C;cAEA,kBAAC,GAAD;KACW;KACT,cAAc;IACf,CAAA;GACE,CAAA,GACL,kBAAC,GAAD;IAAK,IAAI,IAAe,IAAoB,EAAE,IAAI,OAAO;cAAzD;KACE,kBAAC,GAAD,EAAA,UACG,KACC,EAAK,KAAI,MAEL,kBAAC,GAAD;MAEE,IAAI;OACF,IAAI;OACJ,OAAO;OACP,iBAAiB;OACjB,aAAa;MACf;MACA,OAAO;KACR,GARM,CAQN,CAEJ,EACA,CAAA;KACL,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,YAAY;OACZ,UAAU;OACV,YAAY;OACZ,IAAI;OACJ,OAAO;MACT;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,GAAG;OACH,IAAI;OACJ,IAAI;MACN;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MACW;MACT,cAAc;MACd,KAAK,GAAG,EAAa;MACrB,OAAO,EAAE,QAAQ,OAAO;KACzB,CAAA;KACD,kBAAC,GAAD;MAAK,IAAI;OAAE,IAAI;OAAQ,IAAI;MAAO;gBAChC,kBAAC,GAAD;OAAM,MAAM;OAAM,QAAO;iBAAzB;QAAkC;QAC1B,EAAa,SAAS,QAAQ,IAAI,QAAQ;QAAG;QAAE;QAAc;QACnE,kBAAC,GAAD,EAAa,IAAI;SAAE,IAAI;SAAQ,IAAI;QAAM,EAAI,CAAA;OACzC;;KACH,CAAA;IACF;KACF;MAEL,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;KAAE,IAAI;KAAQ,IAAI;IAAQ;IACnC,aAAa;IACb,WAAW;GACb;aAEA,kBAAC,GAAD;IAAM,IAAI;IAAQ,SAAS;cACzB,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;KAAO,WAAU;KAAO,SAAS;KAAqB,IAAI;eACxD,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;MACW;MACT,cAAc;KACf,CAAA,EACE,CAAA;IACA,CAAA,EACJ,CAAA;GACD,CAAA;EACH,CAAA,CACF;;AAET"}
1
+ {"version":3,"file":"SynapseInActionItem.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseInActionItem.tsx"],"sourcesContent":["import {\n darkTextColor,\n homepageBodyText,\n} from '@/components/SynapseHomepageV2/HomepageStyles'\nimport {\n Box,\n Chip,\n Link,\n Typography,\n useTheme,\n useMediaQuery,\n SxProps,\n Fade,\n} from '@mui/material'\nimport ImageFromSynapseTable from '../ImageFromSynapseTable'\nimport EastTwoTone from '@mui/icons-material/EastTwoTone'\nimport { useInView } from 'react-intersection-observer'\nimport { Slide } from '@mui/material'\n\nconst transitionTimeoutMs = 320\n\nexport type SynapseInActionItemProps = {\n tableId: string\n friendlyName: string\n title: string\n description: string\n tags?: string[] | null\n logoFileHandleId: string\n link: string\n primaryColor: string\n secondaryColor: string\n imageFileHandleId: string\n mobileImageFileHandleId: string\n}\n\nconst mobileViewSxProps: SxProps = {\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n}\n\nexport function SynapseInActionItem({\n tableId,\n friendlyName,\n title,\n description,\n tags,\n logoFileHandleId,\n link,\n imageFileHandleId,\n mobileImageFileHandleId,\n}: SynapseInActionItemProps) {\n const theme = useTheme()\n const isMobileView = useMediaQuery(theme.breakpoints.down('sm'))\n // desktop image animation support\n const [ref, inView] = useInView({ threshold: 0.3, triggerOnce: true })\n\n return (\n <Box\n ref={ref}\n sx={{\n p: { xs: '10px', md: '15px 0px 0px 15px' },\n display: 'grid',\n gridTemplateColumns: {\n xs: 'auto 0px',\n md: '450px auto',\n },\n }}\n >\n <Box\n sx={{\n ml: {\n xs: '0px',\n md: '20px',\n },\n }}\n >\n {/* mobile image */}\n <Box\n sx={{\n display: { xs: 'flex', md: 'none' },\n justifyContent: 'center',\n width: '100%',\n mb: '10px',\n pt: '50px',\n img: { width: '320px', maxWidth: '100%' },\n }}\n >\n <ImageFromSynapseTable\n tableId={tableId}\n fileHandleId={mobileImageFileHandleId}\n />\n </Box>\n <Box sx={isMobileView ? mobileViewSxProps : { pt: '50px' }}>\n <Box>\n {tags &&\n tags.map(tag => {\n return (\n <Chip\n key={tag}\n sx={{\n mr: '5px',\n color: 'secondary.600',\n backgroundColor: 'secondary.100',\n borderWidth: '0px',\n }}\n label={tag}\n />\n )\n })}\n </Box>\n <Typography\n variant=\"body1\"\n sx={{\n fontWeight: 400,\n fontSize: '36px',\n lineHeight: '46px',\n mt: '32px',\n color: darkTextColor,\n }}\n >\n {title}\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n ...homepageBodyText,\n mt: '32px',\n mb: '32px',\n }}\n >\n {description}\n </Typography>\n <ImageFromSynapseTable\n tableId={tableId}\n fileHandleId={logoFileHandleId}\n alt={`${friendlyName} logo`}\n style={{ height: '40px' }}\n />\n <Box sx={{ mt: '32px', pb: '50px' }}>\n <Link href={link} target=\"_blank\">\n View {friendlyName.endsWith('Portal') ? 'the' : ''} {friendlyName}{' '}\n <EastTwoTone sx={{ mb: '-8px', ml: '6px' }} />\n </Link>\n </Box>\n </Box>\n </Box>\n {/* desktop image */}\n <Box\n sx={{\n display: { xs: 'none', md: 'block' },\n justifySelf: 'end',\n alignSelf: 'end',\n }}\n >\n <Fade in={inView} timeout={transitionTimeoutMs}>\n <div>\n <Slide direction=\"left\" timeout={transitionTimeoutMs} in={inView}>\n <div>\n <ImageFromSynapseTable\n tableId={tableId}\n fileHandleId={imageFileHandleId}\n />\n </div>\n </Slide>\n </div>\n </Fade>\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAmBA,IAAM,IAAsB,KAgBtB,IAA6B;CACjC,SAAS;CACT,gBAAgB;CAChB,eAAe;CACf,YAAY;CACZ,WAAW;AACb;AAEA,SAAgB,EAAoB,EAClC,YACA,iBACA,UACA,gBACA,SACA,qBACA,SACA,sBACA,8BAC2B;CAE3B,IAAM,IAAe,EADP,EACqB,EAAM,YAAY,KAAK,IAAI,CAAC,GAEzD,CAAC,GAAK,KAAU,EAAU;EAAE,WAAW;EAAK,aAAa;CAAK,CAAC;CAErE,OACE,kBAAC,GAAD;EACO;EACL,IAAI;GACF,GAAG;IAAE,IAAI;IAAQ,IAAI;GAAoB;GACzC,SAAS;GACT,qBAAqB;IACnB,IAAI;IACJ,IAAI;GACN;EACF;YATF,CAWE,kBAAC,GAAD;GACE,IAAI,EACF,IAAI;IACF,IAAI;IACJ,IAAI;GACN,EACF;aANF,CASE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;MAAE,IAAI;MAAQ,IAAI;KAAO;KAClC,gBAAgB;KAChB,OAAO;KACP,IAAI;KACJ,IAAI;KACJ,KAAK;MAAE,OAAO;MAAS,UAAU;KAAO;IAC1C;cAEA,kBAAC,GAAD;KACW;KACT,cAAc;IACf,CAAA;GACE,CAAA,GACL,kBAAC,GAAD;IAAK,IAAI,IAAe,IAAoB,EAAE,IAAI,OAAO;cAAzD;KACE,kBAAC,GAAD,EAAA,UACG,KACC,EAAK,KAAI,MAEL,kBAAC,GAAD;MAEE,IAAI;OACF,IAAI;OACJ,OAAO;OACP,iBAAiB;OACjB,aAAa;MACf;MACA,OAAO;KACR,GARM,CAQN,CAEJ,EACA,CAAA;KACL,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,YAAY;OACZ,UAAU;OACV,YAAY;OACZ,IAAI;OACJ,OAAO;MACT;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,GAAG;OACH,IAAI;OACJ,IAAI;MACN;gBAEC;KACS,CAAA;KACZ,kBAAC,GAAD;MACW;MACT,cAAc;MACd,KAAK,GAAG,EAAa;MACrB,OAAO,EAAE,QAAQ,OAAO;KACzB,CAAA;KACD,kBAAC,GAAD;MAAK,IAAI;OAAE,IAAI;OAAQ,IAAI;MAAO;gBAChC,kBAAC,GAAD;OAAM,MAAM;OAAM,QAAO;iBAAzB;QAAkC;QAC1B,EAAa,SAAS,QAAQ,IAAI,QAAQ;QAAG;QAAE;QAAc;QACnE,kBAAC,GAAD,EAAa,IAAI;SAAE,IAAI;SAAQ,IAAI;QAAM,EAAI,CAAA;OACzC;;KACH,CAAA;IACF;KACF;MAEL,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;KAAE,IAAI;KAAQ,IAAI;IAAQ;IACnC,aAAa;IACb,WAAW;GACb;aAEA,kBAAC,GAAD;IAAM,IAAI;IAAQ,SAAS;cACzB,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;KAAO,WAAU;KAAO,SAAS;KAAqB,IAAI;eACxD,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;MACW;MACT,cAAc;KACf,CAAA,EACE,CAAA;IACA,CAAA,EACJ,CAAA;GACD,CAAA;EACH,CAAA,CACF;;AAET"}
@@ -7,7 +7,7 @@ import { ForwardRef as i } from "../../assets/homepage/egress.js";
7
7
  import { ForwardRef as a } from "../../assets/homepage/users.js";
8
8
  import { Box as o, Typography as s, useTheme as c } from "@mui/material";
9
9
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
10
- import { NavigateNext as d } from "@mui/icons-material";
10
+ import d from "@mui/icons-material/NavigateNext";
11
11
  //#region src/components/SynapseHomepageV2/SynapseTrendingProjectsItem.tsx
12
12
  var f = Intl.NumberFormat("en"), p = { gridTemplateColumns: {
13
13
  xs: "100px auto 40px",
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseTrendingProjectsItem.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseTrendingProjectsItem.tsx"],"sourcesContent":["import { ReactComponent as EgressIcon } from '@/assets/homepage/egress.svg'\n\nimport { ReactComponent as UsersIcon } from '@/assets/homepage/users.svg'\nimport { useGetEntityHeader } from '@/synapse-queries'\nimport { BackendDestinationEnum, getEndpoint } from '@/utils/functions'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { NavigateNext } from '@mui/icons-material'\nimport { Box, SxProps, Typography, useTheme } from '@mui/material'\nimport { Color } from '@mui/material/styles'\n\nexport type SynapseTrendingProjectItemProps = {\n rank: number\n rowValues: (string | null)[]\n entityIdColIndex: number\n nUniqueUsersColIndex: number\n egressSizeGbColIndex: number\n projectDescriptionColumnIndex: number\n altLinkColIndex: number\n isMobileView: boolean\n}\n\nconst formatter = Intl.NumberFormat('en')\nexport const trendingProjectsGridTemplateColumns: SxProps = {\n gridTemplateColumns: {\n xs: '100px auto 40px',\n sm: '100px auto 170px 150px 40px',\n },\n}\n\nexport function SynapseTrendingProjectItem({\n rank,\n rowValues,\n entityIdColIndex,\n nUniqueUsersColIndex,\n egressSizeGbColIndex,\n projectDescriptionColumnIndex,\n altLinkColIndex,\n isMobileView,\n}: SynapseTrendingProjectItemProps) {\n const theme = useTheme()\n const entityId = rowValues[entityIdColIndex]\n const egressSize = rowValues[egressSizeGbColIndex]\n const altLink = rowValues[altLinkColIndex]\n const { data: entityHeader } = useGetEntityHeader(entityId!, undefined, {\n enabled: !!entityId,\n })\n const friendlyEgressSize = egressSize\n ? calculateFriendlyFileSize(parseFloat(egressSize) * 1e9)\n : ''\n\n const projectDescription = rowValues[projectDescriptionColumnIndex]\n\n const userCount = rowValues[nUniqueUsersColIndex]\n const friendlyUserCount = userCount\n ? formatter.format(parseInt(userCount))\n : ''\n let backgroundColor = (theme.palette.primary as unknown as Color)[700]\n let borderRadius\n switch (rank) {\n case 1:\n backgroundColor = '#447A74'\n borderRadius = '12px 12px 0px 0px'\n break\n case 2:\n backgroundColor = '#33575E'\n break\n case 3:\n backgroundColor = '#294251'\n break\n case 10:\n borderRadius = '0px 0px 12px 12px'\n break\n }\n const displayedName = projectDescription ?? entityHeader?.name\n const egress = (\n <Typography variant=\"body1\">\n <EgressIcon />\n {friendlyEgressSize}\n </Typography>\n )\n const users = (\n <Typography variant=\"body1\">\n <UsersIcon />\n {friendlyUserCount}\n </Typography>\n )\n return (\n <div\n onClick={() => {\n if (altLink) {\n window.open(altLink, '_blank')\n } else {\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId!}`,\n '_blank',\n )\n }\n }}\n >\n <Box\n sx={{\n color: 'primary.100',\n backgroundColor,\n borderRadius,\n '&:hover': {\n color: 'white',\n cursor: 'pointer',\n filter: 'brightness(105%)',\n },\n p: '15px 0px',\n display: 'grid',\n ...trendingProjectsGridTemplateColumns,\n justifyItems: 'start',\n svg: { m: '0 3px -3px 0' },\n }}\n >\n <Typography variant=\"body1\" sx={{ ml: '30px' }}>\n {rank}\n </Typography>\n <Box>\n <Typography variant=\"body1\">{displayedName}</Typography>\n {isMobileView && (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n {egress}\n {users}\n </Box>\n )}\n </Box>\n\n {!isMobileView && egress}\n {!isMobileView && users}\n <Box>\n <NavigateNext />\n </Box>\n </Box>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AAqBA,IAAM,IAAY,KAAK,aAAa,IAAI,GAC3B,IAA+C,EAC1D,qBAAqB;CACnB,IAAI;CACJ,IAAI;AACN,EACF;AAEA,SAAgB,EAA2B,EACzC,SACA,cACA,qBACA,yBACA,yBACA,kCACA,oBACA,mBACkC;CAClC,IAAM,IAAQ,EAAS,GACjB,IAAW,EAAU,IACrB,IAAa,EAAU,IACvB,IAAU,EAAU,IACpB,EAAE,MAAM,MAAiB,EAAmB,GAAW,KAAA,GAAW,EACtE,SAAS,CAAC,CAAC,EACb,CAAC,GACK,IAAqB,IACvB,EAA0B,WAAW,CAAU,IAAI,GAAG,IACtD,IAEE,IAAqB,EAAU,IAE/B,IAAY,EAAU,IACtB,IAAoB,IACtB,EAAU,OAAO,SAAS,CAAS,CAAC,IACpC,IACA,IAAmB,EAAM,QAAQ,QAA6B,MAC9D;CACJ,QAAQ,GAAR;EACE,KAAK;GAEH,AADA,IAAkB,WAClB,IAAe;GACf;EACF,KAAK;GACH,IAAkB;GAClB;EACF,KAAK;GACH,IAAkB;GAClB;EACF,KAAK;GACH,IAAe;GACf;CACJ;CACA,IAAM,IAAgB,KAAsB,GAAc,MACpD,IACJ,kBAAC,GAAD;EAAY,SAAQ;YAApB,CACE,kBAAC,GAAD,CAAa,CAAA,GACZ,CACS;KAER,IACJ,kBAAC,GAAD;EAAY,SAAQ;YAApB,CACE,kBAAC,GAAD,CAAY,CAAA,GACX,CACS;;CAEd,OACE,kBAAC,OAAD;EACE,eAAe;GACb,AAAI,IACF,OAAO,KAAK,GAAS,QAAQ,IAE7B,OAAO,KACL,GAAG,EACD,EAAuB,eACzB,EAAE,UAAU,KACZ,QACF;EAEJ;YAEA,kBAAC,GAAD;GACE,IAAI;IACF,OAAO;IACP;IACA;IACA,WAAW;KACT,OAAO;KACP,QAAQ;KACR,QAAQ;IACV;IACA,GAAG;IACH,SAAS;IACT,GAAG;IACH,cAAc;IACd,KAAK,EAAE,GAAG,eAAe;GAC3B;aAfF;IAiBE,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,IAAI,OAAO;eAC1C;IACS,CAAA;IACZ,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAY,SAAQ;eAAS;IAA0B,CAAA,GACtD,KACC,kBAAC,GAAD;KAAK,IAAI;MAAE,SAAS;MAAQ,eAAe;KAAS;eAApD,CACG,GACA,CACE;MAEJ,EAAA,CAAA;IAEJ,CAAC,KAAgB;IACjB,CAAC,KAAgB;IAClB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,CAAe,CAAA,EACZ,CAAA;GACF;;CACF,CAAA;AAET"}
1
+ {"version":3,"file":"SynapseTrendingProjectsItem.js","names":[],"sources":["../../../src/components/SynapseHomepageV2/SynapseTrendingProjectsItem.tsx"],"sourcesContent":["import { ReactComponent as EgressIcon } from '@/assets/homepage/egress.svg'\n\nimport { ReactComponent as UsersIcon } from '@/assets/homepage/users.svg'\nimport { useGetEntityHeader } from '@/synapse-queries'\nimport { BackendDestinationEnum, getEndpoint } from '@/utils/functions'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport NavigateNext from '@mui/icons-material/NavigateNext'\nimport { Box, SxProps, Typography, useTheme } from '@mui/material'\nimport { Color } from '@mui/material/styles'\n\nexport type SynapseTrendingProjectItemProps = {\n rank: number\n rowValues: (string | null)[]\n entityIdColIndex: number\n nUniqueUsersColIndex: number\n egressSizeGbColIndex: number\n projectDescriptionColumnIndex: number\n altLinkColIndex: number\n isMobileView: boolean\n}\n\nconst formatter = Intl.NumberFormat('en')\nexport const trendingProjectsGridTemplateColumns: SxProps = {\n gridTemplateColumns: {\n xs: '100px auto 40px',\n sm: '100px auto 170px 150px 40px',\n },\n}\n\nexport function SynapseTrendingProjectItem({\n rank,\n rowValues,\n entityIdColIndex,\n nUniqueUsersColIndex,\n egressSizeGbColIndex,\n projectDescriptionColumnIndex,\n altLinkColIndex,\n isMobileView,\n}: SynapseTrendingProjectItemProps) {\n const theme = useTheme()\n const entityId = rowValues[entityIdColIndex]\n const egressSize = rowValues[egressSizeGbColIndex]\n const altLink = rowValues[altLinkColIndex]\n const { data: entityHeader } = useGetEntityHeader(entityId!, undefined, {\n enabled: !!entityId,\n })\n const friendlyEgressSize = egressSize\n ? calculateFriendlyFileSize(parseFloat(egressSize) * 1e9)\n : ''\n\n const projectDescription = rowValues[projectDescriptionColumnIndex]\n\n const userCount = rowValues[nUniqueUsersColIndex]\n const friendlyUserCount = userCount\n ? formatter.format(parseInt(userCount))\n : ''\n let backgroundColor = (theme.palette.primary as unknown as Color)[700]\n let borderRadius\n switch (rank) {\n case 1:\n backgroundColor = '#447A74'\n borderRadius = '12px 12px 0px 0px'\n break\n case 2:\n backgroundColor = '#33575E'\n break\n case 3:\n backgroundColor = '#294251'\n break\n case 10:\n borderRadius = '0px 0px 12px 12px'\n break\n }\n const displayedName = projectDescription ?? entityHeader?.name\n const egress = (\n <Typography variant=\"body1\">\n <EgressIcon />\n {friendlyEgressSize}\n </Typography>\n )\n const users = (\n <Typography variant=\"body1\">\n <UsersIcon />\n {friendlyUserCount}\n </Typography>\n )\n return (\n <div\n onClick={() => {\n if (altLink) {\n window.open(altLink, '_blank')\n } else {\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId!}`,\n '_blank',\n )\n }\n }}\n >\n <Box\n sx={{\n color: 'primary.100',\n backgroundColor,\n borderRadius,\n '&:hover': {\n color: 'white',\n cursor: 'pointer',\n filter: 'brightness(105%)',\n },\n p: '15px 0px',\n display: 'grid',\n ...trendingProjectsGridTemplateColumns,\n justifyItems: 'start',\n svg: { m: '0 3px -3px 0' },\n }}\n >\n <Typography variant=\"body1\" sx={{ ml: '30px' }}>\n {rank}\n </Typography>\n <Box>\n <Typography variant=\"body1\">{displayedName}</Typography>\n {isMobileView && (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n {egress}\n {users}\n </Box>\n )}\n </Box>\n\n {!isMobileView && egress}\n {!isMobileView && users}\n <Box>\n <NavigateNext />\n </Box>\n </Box>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AAqBA,IAAM,IAAY,KAAK,aAAa,IAAI,GAC3B,IAA+C,EAC1D,qBAAqB;CACnB,IAAI;CACJ,IAAI;AACN,EACF;AAEA,SAAgB,EAA2B,EACzC,SACA,cACA,qBACA,yBACA,yBACA,kCACA,oBACA,mBACkC;CAClC,IAAM,IAAQ,EAAS,GACjB,IAAW,EAAU,IACrB,IAAa,EAAU,IACvB,IAAU,EAAU,IACpB,EAAE,MAAM,MAAiB,EAAmB,GAAW,KAAA,GAAW,EACtE,SAAS,CAAC,CAAC,EACb,CAAC,GACK,IAAqB,IACvB,EAA0B,WAAW,CAAU,IAAI,GAAG,IACtD,IAEE,IAAqB,EAAU,IAE/B,IAAY,EAAU,IACtB,IAAoB,IACtB,EAAU,OAAO,SAAS,CAAS,CAAC,IACpC,IACA,IAAmB,EAAM,QAAQ,QAA6B,MAC9D;CACJ,QAAQ,GAAR;EACE,KAAK;GAEH,AADA,IAAkB,WAClB,IAAe;GACf;EACF,KAAK;GACH,IAAkB;GAClB;EACF,KAAK;GACH,IAAkB;GAClB;EACF,KAAK;GACH,IAAe;GACf;CACJ;CACA,IAAM,IAAgB,KAAsB,GAAc,MACpD,IACJ,kBAAC,GAAD;EAAY,SAAQ;YAApB,CACE,kBAAC,GAAD,CAAa,CAAA,GACZ,CACS;KAER,IACJ,kBAAC,GAAD;EAAY,SAAQ;YAApB,CACE,kBAAC,GAAD,CAAY,CAAA,GACX,CACS;;CAEd,OACE,kBAAC,OAAD;EACE,eAAe;GACb,AAAI,IACF,OAAO,KAAK,GAAS,QAAQ,IAE7B,OAAO,KACL,GAAG,EACD,EAAuB,eACzB,EAAE,UAAU,KACZ,QACF;EAEJ;YAEA,kBAAC,GAAD;GACE,IAAI;IACF,OAAO;IACP;IACA;IACA,WAAW;KACT,OAAO;KACP,QAAQ;KACR,QAAQ;IACV;IACA,GAAG;IACH,SAAS;IACT,GAAG;IACH,cAAc;IACd,KAAK,EAAE,GAAG,eAAe;GAC3B;aAfF;IAiBE,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,IAAI,OAAO;eAC1C;IACS,CAAA;IACZ,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAY,SAAQ;eAAS;IAA0B,CAAA,GACtD,KACC,kBAAC,GAAD;KAAK,IAAI;MAAE,SAAS;MAAQ,eAAe;KAAS;eAApD,CACG,GACA,CACE;MAEJ,EAAA,CAAA;IAEJ,CAAC,KAAgB;IACjB,CAAC,KAAgB;IAClB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,CAAe,CAAA,EACZ,CAAA;GACF;;CACF,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseNavDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseNavDrawer/SynapseNavDrawer.tsx"],"names":[],"mappings":"AAoCA,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC,CAAA;AAcD,oBAAY,OAAO;IACjB,QAAQ,IAAA;IACR,iBAAiB,IAAA;IACjB,SAAS,IAAA;IACT,KAAK,IAAA;IACL,UAAU,IAAA;IACV,SAAS,IAAA;IACT,MAAM,IAAA;IACN,OAAO,IAAA;IACP,IAAI,IAAA;CACL;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,EAAE,WAMjD,CAAA;AA6ED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAkB,EAClB,SAAS,GACV,EAAE,qBAAqB,2CA8evB;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"SynapseNavDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseNavDrawer/SynapseNavDrawer.tsx"],"names":[],"mappings":"AAoCA,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC,CAAA;AAcD,oBAAY,OAAO;IACjB,QAAQ,IAAA;IACR,iBAAiB,IAAA;IACjB,SAAS,IAAA;IACT,KAAK,IAAA;IACL,UAAU,IAAA;IACV,SAAS,IAAA;IACT,MAAM,IAAA;IACN,OAAO,IAAA;IACP,IAAI,IAAA;CACL;AAED,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,EAAE,WAMjD,CAAA;AA6ED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAkB,EAClB,SAAS,GACV,EAAE,qBAAqB,2CA+evB;AAED,eAAe,gBAAgB,CAAA"}
@@ -339,7 +339,10 @@ function N({ initIsOpen: l = !1, gotoPlace: h }) {
339
339
  I(e.target.value);
340
340
  },
341
341
  onKeyDown: (e) => {
342
- e.key === "Enter" && e.target.value !== "" && (window.open(`https://help.synapse.org/search.html?max=10&s=docs&q=${encodeURI(e.target.value)}`), I(""), X());
342
+ if (e.key === "Enter" && e.target.value !== "") {
343
+ let t = new URLSearchParams({ q: e.target.value });
344
+ window.open(`https://docs.synapse.org/search?${t.toString()}`), I(""), X();
345
+ }
343
346
  },
344
347
  slotProps: { input: { startAdornment: /* @__PURE__ */ C(_, {
345
348
  position: "start",
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseNavDrawer.js","names":[],"sources":["../../../src/components/SynapseNavDrawer/SynapseNavDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport SynapseIconWhite from '@/assets/icons/SynapseIconWhite'\nimport SynapseLogoName from '@/assets/icons/SynapseLogoName'\nimport {\n useGetCurrentUserBundle,\n useGetDownloadListStatistics,\n useSearchAccessSubmissionsInfinite,\n} from '@/synapse-queries'\nimport {\n storeRedirectURLForOneSageLoginAndGotoURL,\n useApplicationSessionContext,\n useSynapseContext,\n} from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport {\n Badge,\n Drawer,\n InputAdornment,\n List,\n ListItemButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport {\n Direction,\n SubmissionSortField,\n SubmissionState,\n} from '@sage-bionetworks/synapse-types'\nimport { KeyboardEvent, ReactNode, useState } from 'react'\nimport { CreateProjectModal } from '../CreateProjectModal/CreateProjectModal'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\nimport { PLANS_LINK } from '../SynapseHomepageV2/SynapseHomepageNavBar'\nimport UserCard from '../UserCard/UserCard'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\nimport { useGetCurationTasksInfinite } from '@/synapse-queries/curation/task/useCurationTask'\n\nexport type SynapseNavDrawerProps = {\n initIsOpen?: boolean\n gotoPlace: (href: string) => void\n}\n\ntype MenuItemParams = {\n tooltip: string\n iconName?: IconName\n onClickOpenNavMenu?: NavItem\n onClickGoToPlace?: () => void\n additionalChildren?: ReactNode\n badgeContent?: string | number\n isCurrentlySelectedItem?: boolean\n handleDrawerClose: () => void\n handleDrawerOpen: (navItem?: NavItem) => void\n}\n\nexport enum NavItem {\n PROJECTS,\n CURATOR_DASHBOARD,\n FAVORITES,\n TEAMS,\n CHALLENGES,\n DOWNLOADS,\n SEARCH,\n PROFILE,\n HELP,\n}\n\nexport const getSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...DEFAULT_SEARCH_QUERY,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst projectSearchJson = {\n // To support project search, we send this json object in the url.\n // We update the queryTerm array based on user input.\n ...DEFAULT_SEARCH_QUERY,\n booleanQuery: [\n {\n key: 'node_type',\n value: 'project',\n },\n ],\n}\nconst getProjectSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...projectSearchJson,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst NavDrawerListItem = (props: MenuItemParams): React.ReactNode => {\n const {\n tooltip,\n iconName,\n onClickOpenNavMenu,\n onClickGoToPlace,\n additionalChildren,\n badgeContent,\n isCurrentlySelectedItem = false,\n handleDrawerClose,\n handleDrawerOpen,\n } = props\n const handler =\n isCurrentlySelectedItem || onClickGoToPlace\n ? handleDrawerClose\n : () => {\n handleDrawerOpen(onClickOpenNavMenu)\n }\n const item = iconName ? (\n <>\n <IconSvg icon={iconName} /> {additionalChildren}{' '}\n </>\n ) : (\n additionalChildren\n )\n\n const listItem = (\n <Tooltip title={tooltip} placement=\"right\">\n <ListItemButton\n key={iconName}\n onClick={handler}\n className=\"SRC-whiteText\"\n selected={isCurrentlySelectedItem}\n >\n <Badge badgeContent={badgeContent} color=\"secondary\">\n {item}\n </Badge>\n </ListItemButton>\n </Tooltip>\n )\n\n return onClickGoToPlace ? (\n <li>\n <a\n onClick={onClickGoToPlace}\n rel=\"noopener noreferrer\"\n className=\"SRC-whiteText\"\n >\n {listItem}\n </a>\n </li>\n ) : (\n <li>{listItem}</li>\n )\n}\n\n/**\n * Displays the Synapse navigational drawer on the left side of the page. Has links to various areas if logged in.\n */\nexport function SynapseNavDrawer({\n initIsOpen = false,\n gotoPlace,\n}: SynapseNavDrawerProps) {\n const [isOpen, setOpen] = useState(initIsOpen)\n const [selectedItem, setSelectedItem] = useState<NavItem>()\n const [projectSearchText, setProjectSearchText] = useState<string>('')\n const [docSiteSearchText, setDocSiteSearchText] = useState<string>('')\n const [isShowingCreateProjectModal, setIsShowingCreateProjectModal] =\n useState<boolean>(false)\n\n const { clearSession } = useApplicationSessionContext()\n\n const { isAuthenticated } = useSynapseContext()\n\n const { data: currentUserBundle } = useGetCurrentUserBundle()\n\n // If the user is logged out, the UserBundle provides an \"anonymous\" user profile, so override that case with undefined\n const currentUserProfile =\n isAuthenticated && currentUserBundle\n ? currentUserBundle.userProfile\n : undefined\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics({\n enabled: isAuthenticated,\n })\n\n const numberOfFilesInDownloadList = downloadListStatistics?.totalNumberOfFiles\n\n const { data: openSubmissionData } = useSearchAccessSubmissionsInfinite(\n {\n submissionState: SubmissionState.SUBMITTED,\n sort: [\n {\n field: SubmissionSortField.CREATED_ON,\n direction: Direction.DESC,\n },\n ],\n },\n {\n enabled: currentUserBundle?.isARReviewer,\n },\n )\n\n let countOfOpenSubmissionsForReview: number | string =\n openSubmissionData?.pages[0].results.length ?? 0\n if (openSubmissionData?.pages[0].nextPageToken) {\n countOfOpenSubmissionsForReview = `${countOfOpenSubmissionsForReview}+`\n }\n\n const { data: curationTasksAssignedToCurrentUser } =\n useGetCurationTasksInfinite(\n { assignedToMe: true },\n { enabled: isAuthenticated },\n )\n const hasCurationTasksAssignedToCurrentUser = Boolean(\n curationTasksAssignedToCurrentUser?.pages.some(\n page => page.bundlePage && page.bundlePage.length > 0,\n ),\n )\n\n const handleDrawerOpen = (navItem?: NavItem) => {\n setOpen(true)\n setSelectedItem(navItem)\n }\n\n const handleDrawerClose = () => {\n setOpen(false)\n setSelectedItem(undefined)\n }\n\n const onProjectSearch = (searchTerm: string) => {\n gotoPlace(\n `/SearchV2:default?query=${getProjectSearchToken(\n searchTerm.split(/[ ,]+/),\n )}`,\n )\n }\n\n const oneSageURL = useOneSageURL()\n const accountSettingsURL = useOneSageURL('/authenticated/myaccount')\n\n return (\n <>\n <div className=\"SynapseNavDrawer\">\n <Drawer\n variant=\"permanent\"\n className={`SynapseNavDrawerMenu ${isOpen ? 'tempDrawerOpen' : ''}`}\n >\n <div onClick={handleDrawerClose}>\n <a\n className=\"synapseIcon\"\n rel=\"noopener noreferrer\"\n onClick={() => gotoPlace('/Home:x')}\n aria-label=\"Synapse Home\"\n >\n <SynapseIconWhite />\n </a>\n </div>\n <List>\n {isAuthenticated && currentUserProfile && (\n <>\n <NavDrawerListItem\n tooltip=\"Projects\"\n iconName=\"dashboard\"\n onClickOpenNavMenu={NavItem.PROJECTS}\n isCurrentlySelectedItem={selectedItem == NavItem.PROJECTS}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n {hasCurationTasksAssignedToCurrentUser && (\n <NavDrawerListItem\n tooltip=\"Curator Dashboard\"\n iconName=\"tasks\"\n onClickGoToPlace={() => gotoPlace('/CuratorDashboard:0')}\n isCurrentlySelectedItem={\n selectedItem == NavItem.CURATOR_DASHBOARD\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n <NavDrawerListItem\n tooltip=\"Favorites\"\n iconName=\"favTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/favorites`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Teams\"\n iconName=\"peopleTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(`/Profile:${currentUserProfile.ownerId}/teams`)\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Challenges\"\n iconName=\"challengesTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/challenges`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Download List\"\n iconName=\"download\"\n onClickGoToPlace={() => gotoPlace('/DownloadCart:0')}\n badgeContent={numberOfFilesInDownloadList}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Trash Can\"\n iconName=\"delete\"\n onClickGoToPlace={() => gotoPlace('/Trash:0')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n {currentUserBundle?.isARReviewer && (\n <NavDrawerListItem\n tooltip=\"Data Access Management\"\n iconName=\"accessManagement\"\n onClickGoToPlace={() =>\n gotoPlace('/DataAccessManagement:default/Submissions')\n }\n badgeContent={countOfOpenSubmissionsForReview}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n </>\n )}\n <NavDrawerListItem\n tooltip=\"Search\"\n iconName=\"search\"\n onClickGoToPlace={() => gotoPlace('/SearchV2:default')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n <div className=\"filler\" />\n <List>\n {isAuthenticated && currentUserProfile && (\n <NavDrawerListItem\n tooltip=\"Your Account\"\n onClickOpenNavMenu={NavItem.PROFILE}\n additionalChildren={\n <UserCard\n userProfile={currentUserProfile}\n size=\"AVATAR\"\n avatarSize=\"SMALL\"\n />\n }\n isCurrentlySelectedItem={selectedItem == NavItem.PROFILE}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n {!isAuthenticated && (\n <NavDrawerListItem\n tooltip=\"Sign in\"\n iconName=\"login\"\n onClickGoToPlace={() =>\n storeRedirectURLForOneSageLoginAndGotoURL(\n oneSageURL.toString(),\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n <NavDrawerListItem\n tooltip=\"Help\"\n iconName=\"helpOutlined\"\n onClickOpenNavMenu={NavItem.HELP}\n isCurrentlySelectedItem={selectedItem == NavItem.HELP}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n </Drawer>\n <Drawer\n variant=\"temporary\"\n open={isOpen}\n className={`SynapseNavContentDrawer`}\n onClose={handleDrawerClose}\n >\n <div className=\"synapseLogoNameContainer\">\n <SynapseLogoName />\n </div>\n <div className=\"navContentContainer\">\n {selectedItem == NavItem.PROJECTS && (\n <>\n <div className=\"header projectHeader\">Projects</div>\n <Tooltip title=\"Create a New Project\" placement=\"right\">\n <a\n className=\"createProjectLink\"\n onClick={() => {\n setIsShowingCreateProjectModal(true)\n handleDrawerClose()\n }}\n >\n <IconSvg icon=\"addCircleOutline\" />\n </a>\n </Tooltip>\n <TextField\n type=\"search\"\n placeholder=\"Search All Projects\"\n value={projectSearchText}\n onChange={event => {\n setProjectSearchText(event.target.value)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n setProjectSearchText('')\n handleDrawerClose()\n onProjectSearch(\n (event.target as HTMLInputElement).value,\n )\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n All\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/created_by_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Created By Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/favorites`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Favorite Projects\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/shared_directly_with_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Shared With Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all_my_team_projects`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Team Projects\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.PROFILE && (\n <>\n <div className=\"header\">\n Welcome Back,\n <br />\n {currentUserProfile?.userName}!\n </div>\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/profile`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n View Profile\n </a>\n <a\n className=\"SRC-whiteText\"\n href={accountSettingsURL.toString()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Account Settings\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/RequestHistory:default`)}\n rel=\"noopener noreferrer\"\n >\n Access Requests\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/Following:0`)}\n rel=\"noopener noreferrer\"\n >\n Following\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => {\n void clearSession()\n }}\n rel=\"noopener noreferrer\"\n >\n Sign Out\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.HELP && (\n <>\n <div className=\"header\">Help</div>\n <TextField\n type=\"search\"\n placeholder=\"Search Documentation\"\n value={docSiteSearchText}\n onChange={event => {\n setDocSiteSearchText(event.target.value)\n }}\n onKeyDown={event => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n window.open(\n `https://help.synapse.org/search.html?max=10&s=docs&q=${encodeURI(\n (event.target as HTMLInputElement).value,\n )}`,\n )\n setDocSiteSearchText('')\n handleDrawerClose()\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/Getting-Started.2055471150.html\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Getting Started\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(PLANS_LINK)}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Plans\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Synapse Web Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://python-docs.synapse.org/en/stable/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Python Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://r-docs.synapse.org/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n R Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://blog.synapse.org/\"\n rel=\"noopener noreferrer\"\n >\n Blog\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://sagebionetworks.jira.com/servicedesk/customer/portals/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Contact Us\n </a>\n </div>\n </>\n )}\n </div>\n </Drawer>\n </div>\n <CreateProjectModal\n onClose={() => setIsShowingCreateProjectModal(false)}\n isShowingModal={isShowingCreateProjectModal}\n />\n </>\n )\n}\n\nexport default SynapseNavDrawer\n"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseNavDrawer.js","names":[],"sources":["../../../src/components/SynapseNavDrawer/SynapseNavDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport SynapseIconWhite from '@/assets/icons/SynapseIconWhite'\nimport SynapseLogoName from '@/assets/icons/SynapseLogoName'\nimport {\n useGetCurrentUserBundle,\n useGetDownloadListStatistics,\n useSearchAccessSubmissionsInfinite,\n} from '@/synapse-queries'\nimport {\n storeRedirectURLForOneSageLoginAndGotoURL,\n useApplicationSessionContext,\n useSynapseContext,\n} from '@/utils'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport {\n Badge,\n Drawer,\n InputAdornment,\n List,\n ListItemButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport {\n Direction,\n SubmissionSortField,\n SubmissionState,\n} from '@sage-bionetworks/synapse-types'\nimport { KeyboardEvent, ReactNode, useState } from 'react'\nimport { CreateProjectModal } from '../CreateProjectModal/CreateProjectModal'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\nimport { PLANS_LINK } from '../SynapseHomepageV2/SynapseHomepageNavBar'\nimport UserCard from '../UserCard/UserCard'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\nimport { useGetCurationTasksInfinite } from '@/synapse-queries/curation/task/useCurationTask'\n\nexport type SynapseNavDrawerProps = {\n initIsOpen?: boolean\n gotoPlace: (href: string) => void\n}\n\ntype MenuItemParams = {\n tooltip: string\n iconName?: IconName\n onClickOpenNavMenu?: NavItem\n onClickGoToPlace?: () => void\n additionalChildren?: ReactNode\n badgeContent?: string | number\n isCurrentlySelectedItem?: boolean\n handleDrawerClose: () => void\n handleDrawerOpen: (navItem?: NavItem) => void\n}\n\nexport enum NavItem {\n PROJECTS,\n CURATOR_DASHBOARD,\n FAVORITES,\n TEAMS,\n CHALLENGES,\n DOWNLOADS,\n SEARCH,\n PROFILE,\n HELP,\n}\n\nexport const getSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...DEFAULT_SEARCH_QUERY,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst projectSearchJson = {\n // To support project search, we send this json object in the url.\n // We update the queryTerm array based on user input.\n ...DEFAULT_SEARCH_QUERY,\n booleanQuery: [\n {\n key: 'node_type',\n value: 'project',\n },\n ],\n}\nconst getProjectSearchToken = (queryTerm: string[]) => {\n const searchQuery = {\n ...projectSearchJson,\n queryTerm,\n }\n return encodeURIComponent(JSON.stringify(searchQuery))\n}\n\nconst NavDrawerListItem = (props: MenuItemParams): React.ReactNode => {\n const {\n tooltip,\n iconName,\n onClickOpenNavMenu,\n onClickGoToPlace,\n additionalChildren,\n badgeContent,\n isCurrentlySelectedItem = false,\n handleDrawerClose,\n handleDrawerOpen,\n } = props\n const handler =\n isCurrentlySelectedItem || onClickGoToPlace\n ? handleDrawerClose\n : () => {\n handleDrawerOpen(onClickOpenNavMenu)\n }\n const item = iconName ? (\n <>\n <IconSvg icon={iconName} /> {additionalChildren}{' '}\n </>\n ) : (\n additionalChildren\n )\n\n const listItem = (\n <Tooltip title={tooltip} placement=\"right\">\n <ListItemButton\n key={iconName}\n onClick={handler}\n className=\"SRC-whiteText\"\n selected={isCurrentlySelectedItem}\n >\n <Badge badgeContent={badgeContent} color=\"secondary\">\n {item}\n </Badge>\n </ListItemButton>\n </Tooltip>\n )\n\n return onClickGoToPlace ? (\n <li>\n <a\n onClick={onClickGoToPlace}\n rel=\"noopener noreferrer\"\n className=\"SRC-whiteText\"\n >\n {listItem}\n </a>\n </li>\n ) : (\n <li>{listItem}</li>\n )\n}\n\n/**\n * Displays the Synapse navigational drawer on the left side of the page. Has links to various areas if logged in.\n */\nexport function SynapseNavDrawer({\n initIsOpen = false,\n gotoPlace,\n}: SynapseNavDrawerProps) {\n const [isOpen, setOpen] = useState(initIsOpen)\n const [selectedItem, setSelectedItem] = useState<NavItem>()\n const [projectSearchText, setProjectSearchText] = useState<string>('')\n const [docSiteSearchText, setDocSiteSearchText] = useState<string>('')\n const [isShowingCreateProjectModal, setIsShowingCreateProjectModal] =\n useState<boolean>(false)\n\n const { clearSession } = useApplicationSessionContext()\n\n const { isAuthenticated } = useSynapseContext()\n\n const { data: currentUserBundle } = useGetCurrentUserBundle()\n\n // If the user is logged out, the UserBundle provides an \"anonymous\" user profile, so override that case with undefined\n const currentUserProfile =\n isAuthenticated && currentUserBundle\n ? currentUserBundle.userProfile\n : undefined\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics({\n enabled: isAuthenticated,\n })\n\n const numberOfFilesInDownloadList = downloadListStatistics?.totalNumberOfFiles\n\n const { data: openSubmissionData } = useSearchAccessSubmissionsInfinite(\n {\n submissionState: SubmissionState.SUBMITTED,\n sort: [\n {\n field: SubmissionSortField.CREATED_ON,\n direction: Direction.DESC,\n },\n ],\n },\n {\n enabled: currentUserBundle?.isARReviewer,\n },\n )\n\n let countOfOpenSubmissionsForReview: number | string =\n openSubmissionData?.pages[0].results.length ?? 0\n if (openSubmissionData?.pages[0].nextPageToken) {\n countOfOpenSubmissionsForReview = `${countOfOpenSubmissionsForReview}+`\n }\n\n const { data: curationTasksAssignedToCurrentUser } =\n useGetCurationTasksInfinite(\n { assignedToMe: true },\n { enabled: isAuthenticated },\n )\n const hasCurationTasksAssignedToCurrentUser = Boolean(\n curationTasksAssignedToCurrentUser?.pages.some(\n page => page.bundlePage && page.bundlePage.length > 0,\n ),\n )\n\n const handleDrawerOpen = (navItem?: NavItem) => {\n setOpen(true)\n setSelectedItem(navItem)\n }\n\n const handleDrawerClose = () => {\n setOpen(false)\n setSelectedItem(undefined)\n }\n\n const onProjectSearch = (searchTerm: string) => {\n gotoPlace(\n `/SearchV2:default?query=${getProjectSearchToken(\n searchTerm.split(/[ ,]+/),\n )}`,\n )\n }\n\n const oneSageURL = useOneSageURL()\n const accountSettingsURL = useOneSageURL('/authenticated/myaccount')\n\n return (\n <>\n <div className=\"SynapseNavDrawer\">\n <Drawer\n variant=\"permanent\"\n className={`SynapseNavDrawerMenu ${isOpen ? 'tempDrawerOpen' : ''}`}\n >\n <div onClick={handleDrawerClose}>\n <a\n className=\"synapseIcon\"\n rel=\"noopener noreferrer\"\n onClick={() => gotoPlace('/Home:x')}\n aria-label=\"Synapse Home\"\n >\n <SynapseIconWhite />\n </a>\n </div>\n <List>\n {isAuthenticated && currentUserProfile && (\n <>\n <NavDrawerListItem\n tooltip=\"Projects\"\n iconName=\"dashboard\"\n onClickOpenNavMenu={NavItem.PROJECTS}\n isCurrentlySelectedItem={selectedItem == NavItem.PROJECTS}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n {hasCurationTasksAssignedToCurrentUser && (\n <NavDrawerListItem\n tooltip=\"Curator Dashboard\"\n iconName=\"tasks\"\n onClickGoToPlace={() => gotoPlace('/CuratorDashboard:0')}\n isCurrentlySelectedItem={\n selectedItem == NavItem.CURATOR_DASHBOARD\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n <NavDrawerListItem\n tooltip=\"Favorites\"\n iconName=\"favTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/favorites`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Teams\"\n iconName=\"peopleTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(`/Profile:${currentUserProfile.ownerId}/teams`)\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Challenges\"\n iconName=\"challengesTwoTone\"\n onClickGoToPlace={() =>\n gotoPlace(\n `/Profile:${currentUserProfile.ownerId}/challenges`,\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Download List\"\n iconName=\"download\"\n onClickGoToPlace={() => gotoPlace('/DownloadCart:0')}\n badgeContent={numberOfFilesInDownloadList}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n <NavDrawerListItem\n tooltip=\"Trash Can\"\n iconName=\"delete\"\n onClickGoToPlace={() => gotoPlace('/Trash:0')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n {currentUserBundle?.isARReviewer && (\n <NavDrawerListItem\n tooltip=\"Data Access Management\"\n iconName=\"accessManagement\"\n onClickGoToPlace={() =>\n gotoPlace('/DataAccessManagement:default/Submissions')\n }\n badgeContent={countOfOpenSubmissionsForReview}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n </>\n )}\n <NavDrawerListItem\n tooltip=\"Search\"\n iconName=\"search\"\n onClickGoToPlace={() => gotoPlace('/SearchV2:default')}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n <div className=\"filler\" />\n <List>\n {isAuthenticated && currentUserProfile && (\n <NavDrawerListItem\n tooltip=\"Your Account\"\n onClickOpenNavMenu={NavItem.PROFILE}\n additionalChildren={\n <UserCard\n userProfile={currentUserProfile}\n size=\"AVATAR\"\n avatarSize=\"SMALL\"\n />\n }\n isCurrentlySelectedItem={selectedItem == NavItem.PROFILE}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n {!isAuthenticated && (\n <NavDrawerListItem\n tooltip=\"Sign in\"\n iconName=\"login\"\n onClickGoToPlace={() =>\n storeRedirectURLForOneSageLoginAndGotoURL(\n oneSageURL.toString(),\n )\n }\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n )}\n <NavDrawerListItem\n tooltip=\"Help\"\n iconName=\"helpOutlined\"\n onClickOpenNavMenu={NavItem.HELP}\n isCurrentlySelectedItem={selectedItem == NavItem.HELP}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n />\n </List>\n </Drawer>\n <Drawer\n variant=\"temporary\"\n open={isOpen}\n className={`SynapseNavContentDrawer`}\n onClose={handleDrawerClose}\n >\n <div className=\"synapseLogoNameContainer\">\n <SynapseLogoName />\n </div>\n <div className=\"navContentContainer\">\n {selectedItem == NavItem.PROJECTS && (\n <>\n <div className=\"header projectHeader\">Projects</div>\n <Tooltip title=\"Create a New Project\" placement=\"right\">\n <a\n className=\"createProjectLink\"\n onClick={() => {\n setIsShowingCreateProjectModal(true)\n handleDrawerClose()\n }}\n >\n <IconSvg icon=\"addCircleOutline\" />\n </a>\n </Tooltip>\n <TextField\n type=\"search\"\n placeholder=\"Search All Projects\"\n value={projectSearchText}\n onChange={event => {\n setProjectSearchText(event.target.value)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n setProjectSearchText('')\n handleDrawerClose()\n onProjectSearch(\n (event.target as HTMLInputElement).value,\n )\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n All\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/created_by_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Created By Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/favorites`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Favorite Projects\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/shared_directly_with_me`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Shared With Me\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/projects/all_my_team_projects`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n Team Projects\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.PROFILE && (\n <>\n <div className=\"header\">\n Welcome Back,\n <br />\n {currentUserProfile?.userName}!\n </div>\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n onClick={() =>\n gotoPlace(\n `/Profile:${currentUserProfile?.ownerId}/profile`,\n )\n }\n rel=\"noopener noreferrer\"\n >\n View Profile\n </a>\n <a\n className=\"SRC-whiteText\"\n href={accountSettingsURL.toString()}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Account Settings\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/RequestHistory:default`)}\n rel=\"noopener noreferrer\"\n >\n Access Requests\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(`/Following:0`)}\n rel=\"noopener noreferrer\"\n >\n Following\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => {\n void clearSession()\n }}\n rel=\"noopener noreferrer\"\n >\n Sign Out\n </a>\n </div>\n </>\n )}\n {selectedItem == NavItem.HELP && (\n <>\n <div className=\"header\">Help</div>\n <TextField\n type=\"search\"\n placeholder=\"Search Documentation\"\n value={docSiteSearchText}\n onChange={event => {\n setDocSiteSearchText(event.target.value)\n }}\n onKeyDown={event => {\n if (event.key === 'Enter') {\n if ((event.target as HTMLInputElement).value !== '') {\n const searchParams = new URLSearchParams({\n q: (event.target as HTMLInputElement).value,\n })\n window.open(\n `https://docs.synapse.org/search?${searchParams.toString()}`,\n )\n setDocSiteSearchText('')\n handleDrawerClose()\n }\n }\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconSvg icon=\"searchOutlined\" />\n </InputAdornment>\n ),\n },\n }}\n />\n\n <div className=\"linkList\" onClick={handleDrawerClose}>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/Getting-Started.2055471150.html\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Getting Started\n </a>\n <a\n className=\"SRC-whiteText\"\n onClick={() => gotoPlace(PLANS_LINK)}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Plans\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://help.synapse.org/docs/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Synapse Web Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://python-docs.synapse.org/en/stable/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Python Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://r-docs.synapse.org/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n R Client Documentation\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://blog.synapse.org/\"\n rel=\"noopener noreferrer\"\n >\n Blog\n </a>\n <a\n className=\"SRC-whiteText\"\n href=\"https://sagebionetworks.jira.com/servicedesk/customer/portals/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Contact Us\n </a>\n </div>\n </>\n )}\n </div>\n </Drawer>\n </div>\n <CreateProjectModal\n onClose={() => setIsShowingCreateProjectModal(false)}\n isShowingModal={isShowingCreateProjectModal}\n />\n </>\n )\n}\n\nexport default SynapseNavDrawer\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import "../../synapse-queries/index.js";
7
7
  import { Box as r, Typography as i } from "@mui/material";
8
8
  import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
9
9
  import { ColumnSingleValueFilterOperator as c } from "@sage-bionetworks/synapse-types";
10
- import { ChevronRightTwoTone as l } from "@mui/icons-material";
10
+ import l from "@mui/icons-material/ChevronRightTwoTone";
11
11
  //#region src/components/SynapsePortalBanners/SynapsePortalBanners.tsx
12
12
  function u({ entityId: u, dataCatalogEntityId: d = "syn61609402", sourceAppConfigTableID: f = "syn45291362" }) {
13
13
  let { data: p } = t(u), m = p ? p.path.map((e) => e.id).slice(1) : [u], h = m ? [{