synapse-react-client 4.0.44 → 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 (415) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +2 -2
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +1 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
  6. package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
  7. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
  8. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  9. package/dist/aridhia-queries/index.d.ts +1 -0
  10. package/dist/aridhia-queries/index.d.ts.map +1 -1
  11. package/dist/aridhia-queries/index.js +11 -10
  12. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
  13. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
  14. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
  15. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
  16. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.d.ts.map +1 -1
  17. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +6 -4
  18. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  19. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +2 -1
  20. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
  21. package/dist/components/AccessRequirementList/AccessRequirementList.js +126 -125
  22. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  23. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +1 -1
  24. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
  25. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  29. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +28 -16
  30. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  31. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  32. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +99 -97
  33. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  34. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
  35. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  36. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
  37. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
  38. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  39. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
  40. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  41. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +1 -1
  42. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -1
  43. package/dist/components/AccessRequirementList/RequestDataStep.d.ts +1 -4
  44. package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -1
  45. package/dist/components/AccessRequirementList/RequestDataStep.js +15 -18
  46. package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -1
  47. package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
  48. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  49. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
  50. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  51. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -1
  52. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
  53. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
  54. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
  55. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
  56. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
  57. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  58. package/dist/components/Aridhia/fairFormToRjsf.js +1 -1
  59. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
  60. package/dist/components/Authentication/LastLoginInfo.js +1 -1
  61. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  62. package/dist/components/CertificationQuiz/CertificationQuiz.js +1 -1
  63. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  64. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +1 -1
  65. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  66. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
  67. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  68. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
  69. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  70. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
  71. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
  72. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  73. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
  74. package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
  75. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  76. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  77. package/dist/components/ComponentCollapse.js +2 -1
  78. package/dist/components/ComponentCollapse.js.map +1 -1
  79. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.d.ts.map +1 -1
  80. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +52 -49
  81. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  82. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  83. package/dist/components/DataGrid/SynapseGrid.js +231 -219
  84. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  85. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  86. package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
  87. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  88. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  89. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
  90. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  91. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
  92. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  93. package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
  94. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  95. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  96. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
  97. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  98. package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
  99. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  100. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +5 -5
  101. package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
  102. package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
  103. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  104. package/dist/components/DataGrid/utils/columnFactory.js +1 -1
  105. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  106. package/dist/components/DataGrid/utils/splitPatch.d.ts.map +1 -1
  107. package/dist/components/DataGrid/utils/splitPatch.js +22 -13
  108. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  109. package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
  110. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  111. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
  112. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +2 -1
  113. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  114. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
  115. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
  116. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  117. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
  118. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  119. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  120. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  121. package/dist/components/EntityFinder/EntityFinder.js +4 -4
  122. package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
  123. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  124. package/dist/components/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
  125. package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
  126. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  127. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +1 -1
  128. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  129. package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
  130. package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
  131. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  132. package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
  133. package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
  134. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  135. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
  136. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
  137. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  138. package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
  139. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  140. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
  141. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  142. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -1
  143. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
  144. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
  145. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  146. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
  147. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  148. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
  149. package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
  150. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
  151. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
  152. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
  153. package/dist/components/FormTemplateEditor/FormStructurePanel.js +1 -1
  154. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
  155. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
  156. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
  157. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
  158. package/dist/components/FormTemplateEditor/StepCard.js +15 -10
  159. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
  160. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
  161. package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
  162. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
  163. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
  164. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
  165. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
  166. package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
  167. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
  168. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts +9 -0
  169. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.d.ts.map +1 -0
  170. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js +45 -0
  171. package/dist/components/FormTemplateReferenceField/FormTemplatePreviewDialog.js.map +1 -0
  172. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts +22 -0
  173. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.d.ts.map +1 -0
  174. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js +139 -0
  175. package/dist/components/FormTemplateReferenceField/FormTemplateReferenceField.js.map +1 -0
  176. package/dist/components/Forum/ForumTable.d.ts +17 -5
  177. package/dist/components/Forum/ForumTable.d.ts.map +1 -1
  178. package/dist/components/Forum/ForumTable.js +94 -77
  179. package/dist/components/Forum/ForumTable.js.map +1 -1
  180. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +45 -45
  181. package/dist/components/GenericCard/PortalDOI/PortalDOI.js +5 -5
  182. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  183. package/dist/components/GenericCard/TableRowGenericCard.js +1 -1
  184. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  185. package/dist/components/HelpPopover/HelpPopover.js +1 -1
  186. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  187. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  188. package/dist/components/IconSvg/IconSvg.js +154 -47
  189. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  190. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
  191. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
  192. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  193. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
  194. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
  195. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  196. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
  197. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
  198. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
  199. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
  200. package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
  201. package/dist/components/Markdown/MarkdownCollapse.js +3 -1
  202. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  203. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
  204. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  205. package/dist/components/OAuthClientManagement/OAuthManagement.js +14 -13
  206. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  207. package/dist/components/PortalList/PortalCard.d.ts.map +1 -1
  208. package/dist/components/PortalList/PortalCard.js +6 -5
  209. package/dist/components/PortalList/PortalCard.js.map +1 -1
  210. package/dist/components/PortalList/PortalList.js +4 -4
  211. package/dist/components/PortalList/PortalList.js.map +1 -1
  212. package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
  213. package/dist/components/QueryBuilder/FilterConditionRow.js +4 -4
  214. package/dist/components/QueryCountButton/QueryCountButton.js +5 -5
  215. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  216. package/dist/components/ReleaseCard/ReleaseCardLarge.js +5 -5
  217. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  218. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
  219. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +142 -108
  220. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  221. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.d.ts.map +1 -1
  222. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js +15 -15
  223. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  224. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
  225. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +57 -55
  226. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  227. package/dist/components/ShareThisPage/ShareThisPage.js +4 -4
  228. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  229. package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
  230. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  231. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
  232. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  233. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  234. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  235. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  236. package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
  237. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  238. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
  239. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
  240. package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
  241. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  242. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
  243. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  244. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
  245. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
  246. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  247. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
  248. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  249. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
  250. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  251. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  252. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
  253. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  254. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  255. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  256. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
  257. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  258. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
  259. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
  260. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  261. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  262. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  263. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +140 -140
  264. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  265. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  266. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  267. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  268. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  269. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  270. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  271. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
  272. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  273. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
  274. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
  275. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  276. package/dist/components/TanStackTable/ColumnHeader.js +1 -1
  277. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  278. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
  279. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  280. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
  281. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
  282. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  283. package/dist/components/Webhook/WebhookDashboard.js +1 -1
  284. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  285. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  286. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  287. package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
  288. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  289. package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
  290. package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
  291. package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
  292. package/dist/components/dataaccess/FormTemplateTable.js +6 -6
  293. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
  294. package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
  295. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  296. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
  297. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  298. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +4 -1
  299. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  300. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  301. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  302. package/dist/components/download_list/DownloadDetails.d.ts.map +1 -1
  303. package/dist/components/download_list/DownloadDetails.js +12 -10
  304. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  305. package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
  306. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  307. package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
  308. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  309. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  310. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  311. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  312. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  313. package/dist/components/error/ErrorChip.d.ts.map +1 -1
  314. package/dist/components/error/ErrorChip.js +2 -1
  315. package/dist/components/error/ErrorChip.js.map +1 -1
  316. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
  317. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
  318. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  319. package/dist/components/widgets/facet-nav/FacetNavPanel.js +1 -1
  320. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  321. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  322. package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
  323. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  324. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
  325. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  326. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
  327. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  328. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
  329. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  330. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
  331. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  332. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
  333. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
  334. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
  335. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
  336. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
  337. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
  338. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
  339. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
  340. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
  341. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  342. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +5 -0
  343. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
  344. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +37 -26
  345. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
  346. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +8 -0
  347. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  348. package/dist/mocks/msw/handlers/aridhiaHandlers.js +52 -41
  349. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  350. package/dist/mocks/msw/handlers/discussionHandlers.d.ts.map +1 -1
  351. package/dist/mocks/msw/handlers/discussionHandlers.js +40 -33
  352. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  353. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  354. package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
  355. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  356. package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
  357. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  358. package/dist/mocks/msw/server.d.ts.map +1 -1
  359. package/dist/mocks/msw/server.js +4 -2
  360. package/dist/mocks/msw/server.js.map +1 -1
  361. package/dist/synapse-client/SynapseClient.d.ts +10 -0
  362. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  363. package/dist/synapse-client/SynapseClient.js +486 -482
  364. package/dist/synapse-client/SynapseClient.js.map +1 -1
  365. package/dist/synapse-client/index.js +3 -3
  366. package/dist/synapse-queries/KeyFactory.d.ts +13 -1
  367. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  368. package/dist/synapse-queries/KeyFactory.js +11 -1
  369. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  370. package/dist/synapse-queries/dataaccess/index.js +4 -4
  371. package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
  372. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +4 -1
  373. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  374. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +19 -5
  375. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  376. package/dist/synapse-queries/dataaccess/useEDuc.js +29 -21
  377. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  378. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts +12 -0
  379. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts.map +1 -1
  380. package/dist/synapse-queries/dataaccess/useFormTemplate.js +52 -30
  381. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  382. package/dist/synapse-queries/forum/useForum.d.ts +5 -1
  383. package/dist/synapse-queries/forum/useForum.d.ts.map +1 -1
  384. package/dist/synapse-queries/forum/useForum.js +23 -1
  385. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  386. package/dist/synapse-queries/index.js +185 -184
  387. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts +5 -3
  388. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts.map +1 -1
  389. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js +12 -15
  390. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js.map +1 -1
  391. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  392. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  393. package/dist/theme/DefaultTheme.d.ts.map +1 -1
  394. package/dist/theme/DefaultTheme.js +4 -1
  395. package/dist/theme/DefaultTheme.js.map +1 -1
  396. package/dist/tsconfig.build.tsbuildinfo +1 -1
  397. package/dist/utils/APIConstants.d.ts.map +1 -1
  398. package/dist/utils/APIConstants.js.map +1 -1
  399. package/dist/utils/AppUtils/AppUtils.js +1 -1
  400. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  401. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  402. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  403. package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
  404. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  405. package/dist/utils/functions/getEndpoint.d.ts +1 -0
  406. package/dist/utils/functions/getEndpoint.d.ts.map +1 -1
  407. package/dist/utils/functions/getEndpoint.js +3 -3
  408. package/dist/utils/functions/getEndpoint.js.map +1 -1
  409. package/dist/utils/types/RequestableAccessRequirement.d.ts +8 -0
  410. package/dist/utils/types/RequestableAccessRequirement.d.ts.map +1 -0
  411. package/dist/utils/types/RequestableAccessRequirement.js +9 -0
  412. package/dist/utils/types/RequestableAccessRequirement.js.map +1 -0
  413. package/package.json +6 -5
  414. package/dist/testutils/ReactQueryMockUtils.js +0 -676
  415. package/dist/testutils/ReactQueryMockUtils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowGenericCard.js","names":[],"sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"sourcesContent":["import { CommonCardProps } from '@/components/CardContainer/CardConfiguration'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n getValueOrMultiValue,\n} from '@/components/GenericCard/CardUtils'\nimport CroissantButton from '@/components/GenericCard/CroissantButton/CroissantButton'\nimport { GenericCardIcon } from '@/components/GenericCard/GenericCardIcon'\nimport PortalDOI from '@/components/GenericCard/PortalDOI/PortalDOI'\nimport {\n getCandidateDoiId,\n useShowDoiCardLabel,\n} from '@/components/GenericCard/PortalDOI/PortalDOIUtils'\nimport { mapRowToRecord } from '@/components/SynapseTable/SynapseTableUtils'\nimport { useGetEntity } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isDatasetCollection,\n isTableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport {\n extractMarkdownLinkHref,\n parseSynId,\n} from '@/utils/functions/RegularExpressions'\nimport { getColumnIndex } from '@/utils/functions/SqlFunctions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Collapse, Link, Stack, Typography } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Entity,\n SelectColumn,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport CitationPopover from '../CitationPopover'\nimport {\n DATASET_HOSTING_CONFIG,\n type DatasetHostingType,\n normalizeHosting,\n} from '../DatasetHosting/DatasetHosting'\nimport DatasetDownloadButton from '../DatasetHosting/DatasetDownloadButton'\nimport DatasetHostingAdornment from '../DatasetHosting/DatasetHostingAdornment'\nimport { EntityDownloadConfirmation } from '../EntityDownloadConfirmation'\nimport { HeaderCardVariant } from '../HeaderCard'\nimport IconList from '../IconList'\nimport { useQueryContext } from '../QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport ShareThisPage, {\n ShareThisPageProps,\n} from '../ShareThisPage/ShareThisPage'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport { CardActionButtonStyleContext } from './CardActionButtonStyleContext'\nimport GenericCard from './GenericCard'\nimport GenericCardActionButton from './GenericCardActionButton'\nimport DuoTermTags from './DuoTermTags/DuoTermTags'\nimport { parseDuoModifiers } from './DuoTermTags/duoTerms'\nimport { PortalDOIConfiguration } from './PortalDOI/PortalDOIConfiguration'\nimport { SynapseCardLabel } from './SynapseCardLabel'\nimport { useResolvedSynapseEntity } from './useResolvedSynapseEntity'\n\ntype RowSynapseEntityConfig = {\n /** Use the table rowId to resolve the Synapse entity ID. */\n id: {\n source: 'rowId'\n }\n /** Use the table rowVersionNumber to resolve the Synapse entity version (if available). */\n version?: {\n source: 'rowVersionNumber'\n }\n}\n\ntype ColumnSynapseEntityConfig = {\n /** Use a column value to resolve the Synapse entity ID. */\n id: {\n source: 'column'\n columnName: string\n }\n /** Use a column value to resolve the Synapse entity version. */\n version?: {\n source: 'column'\n columnName: string\n }\n}\n\nexport type SynapseEntityConfig =\n | RowSynapseEntityConfig\n | ColumnSynapseEntityConfig\n\n/**\n * Maps a table query result to a GenericCard.\n */\nexport type TableToGenericCardMapping = {\n /** The 'type' of resource a card refers to. Renders a label on the card with this string value.\n * Can be hidden by setting it to '' (empty string)\n */\n type: string\n /** The column name whose data contains the title of the card */\n title: string\n /** The column name whose data contains the subtitle of the card */\n subTitle?: string\n /** The column name whose data contains the description of the card */\n description?: string\n /** If true, a 'Cite As' button will be displayed for those cards with a DOI in the 'doi' column */\n includeCitation?: boolean\n /** If true, a 'Share this page' button will be displayed */\n includeShareButton?: boolean\n /**\n * Configuration for displaying the SustainabilityScorecard component\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /** The initial citation format to use in the 'Cite As' UI */\n defaultCitationFormat?: 'bibtex' | 'apa' | 'ieee' | 'nature' | 'science'\n /** Static text displayed in the 'Cite As' UI */\n citationBoilerplateText?: string\n /** The column name whose data contains the value used to map to the icon */\n icon?: string\n /** The column name whose data contains an image file handle to be displayed on the card */\n imageFileHandleColumnName?: string\n /** Static boolean value used if the image displayed using `imageFileHandleColumnName` requires extra padding */\n thumbnailRequiresPadding?: boolean\n /** Array of column names to be used for labels in the Card Footer */\n secondaryLabels?: string[]\n /** Can be used to add a custom secondary label */\n customSecondaryLabelConfig?: {\n /** The displayed label key */\n key: string\n /** The value to display */\n value: React.ReactNode\n /** Callback to determine visibility of the label\n * @param schema the mapping of columnName to data index\n * @param data the row data\n */\n isVisible: (schema: Record<string, number>, data: string[]) => boolean\n }\n /** Column name of the link value if the title should be linked */\n link?: string\n /** Column name of the STRING_LIST column that includes icon names that represent icons that should be displayed on the card */\n dataTypeIconNames?: string\n /**\n * Ordered list of column names to display to the right of the title area.\n * Each renders as \"Display Name: Value\" on its own line. Rows with empty values are skipped.\n * The display name is derived from getColumnDisplayName (respects column aliases and unCamelCase).\n *\n * Can also be a function that receives the schema and row data and returns the list of column\n * names to display, allowing the displayed details to vary based on the row's actual values.\n */\n titleAreaDetails?:\n | string[]\n | ((schema: Record<string, number>, data: string[]) => string[])\n /** Configuration for resolving the Synapse entity ID/version represented by each card row.\n * The ID and version sources must both reference either row-based values or column-based values.\n */\n synapseEntityConfig?: SynapseEntityConfig\n /** The column name whose data contains a synId that can be used to show a button to add the corresponding entity to the download cart. */\n downloadCartSynId?: string\n /**\n * Opt-in configuration for hosting-aware download/access. When `hostingColumn`\n * is provided, the card's primary action becomes a `DatasetDownloadButton` driven\n * by the row's hosting value: downloadable hosting types show the standard dataset\n * download options, while non-downloadable types (e.g. external-access) swap to a\n * link to the external repository instead. Other portals that don't set this\n * are unaffected.\n */\n hostingConfig?: {\n /** Column holding the hosting type. Blank/unknown → `synapse`. */\n hostingColumn: string\n /**\n * Optional map from the column's raw values to hosting types, for columns that\n * use portal-specific labels rather than the canonical vocabulary (e.g. CCKP's\n * `downloadType`: \"Synapse Indexed\" → `external-download`). Values not in the\n * map fall back to `normalizeHosting` (canonical value, or → `synapse`).\n */\n hostingValueMap?: Record<string, DatasetHostingType>\n /** Column holding the free-text external repository name (e.g. \"GEO\", \"dbGaP\"). */\n repositoryColumn?: string\n /** Column holding the external URL used for non-downloadable (external-access) datasets. */\n externalUrlColumn?: string\n }\n /** Configuration to display a DOI, as well as the ability to create one for users with such permission */\n portalDoiConfiguration?: PortalDOIConfiguration\n /**\n * Column name of a STRING_LIST of Data Use Ontology (DUO) values (ontology\n * codes or term names). When set, the values are rendered as DUO tags in a\n * metadata row labeled with the column's display name, so the card matches the\n * corresponding facet.\n */\n dataUseModifiersColumnName?: string\n}\n\nexport type TableRowGenericCardProps = {\n /** The schema that maps a table result to the GenericCard UI */\n genericCardSchema: TableToGenericCardMapping\n /** The table's SelectColumns */\n selectColumns?: SelectColumn[]\n /** The table's ColumnModels */\n columnModels?: ColumnModel[]\n /** If true, the 'type' column will be used as the icon string to choose the icon */\n useTypeColumnForIcon?: boolean\n /** If true, render the card as a HeaderCard */\n isHeader?: boolean\n /** If isHeader is true, use this variant of HeaderCard */\n headerCardVariant?: HeaderCardVariant\n isAlignToLeftNav?: boolean\n /** Mapping of column name to row data index */\n schema: Record<string, number>\n /** The row data */\n data: string[]\n /** The ID of the table row */\n rowId?: number\n /** The versionNumber of the table row */\n versionNumber?: number\n /** Optional props for the ShareThisPage component */\n sharePageLinkButtonProps?: ShareThisPageProps\n /** Optional function that receives schema and data and returns a ReactNode to be rendered next to the card type */\n CardTypeAdornment?: React.ComponentType<{\n schema: Record<string, number>\n data: string[]\n }>\n} & CommonCardProps\n\n// SWC-6115: special rendering of the version column (for Views)\nfunction VersionLabel(props: { synapseId: string; version: string }) {\n const { synapseId, version } = props\n return (\n <span>\n {version}&nbsp;&nbsp;\n <a\n target={TargetEnum.NEW_WINDOW}\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${synapseId}.${version}`}\n >\n (Show Version History on Synapse)\n </a>\n </span>\n )\n}\n\n/**\n * Maps a table row to a GenericCard.\n */\nexport function TableRowGenericCard(props: TableRowGenericCardProps) {\n const [showDownloadConfirmation, setShowDownloadConfirmation] =\n useState(false)\n const [downloadButtonLoading, setDownloadButtonLoading] = useState(false)\n\n const { entityId, versionNumber } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { ref, inView: cardIsInView } = useInView()\n\n const { data: table } = useGetEntity<Table>(entityId, versionNumber)\n\n const {\n schema,\n data,\n rowId,\n versionNumber: rowVersionNumber,\n genericCardSchema,\n secondaryLabelLimit,\n sharePageLinkButtonProps,\n selectColumns,\n columnModels,\n iconOptions,\n useTypeColumnForIcon = false,\n isHeader = false,\n sustainabilityScorecard,\n headerCardVariant,\n titleLinkConfig,\n ctaLinkConfig,\n ctaLinkPosition,\n labelLinkConfig,\n descriptionConfig,\n columnIconOptions,\n CardTypeAdornment,\n charCountCutoff,\n actionButtonStyle = 'button',\n } = props\n\n const {\n link = '',\n type,\n includeCitation,\n includeShareButton,\n defaultCitationFormat,\n citationBoilerplateText,\n downloadCartSynId,\n portalDoiConfiguration,\n } = genericCardSchema\n const title = data[schema[genericCardSchema.title]]\n let subTitle =\n genericCardSchema.subTitle && data[schema[genericCardSchema.subTitle]]\n subTitle =\n genericCardSchema.subTitle &&\n getValueOrMultiValue({\n value: subTitle,\n columnName: genericCardSchema.subTitle,\n selectColumns,\n columnModels,\n }).str\n const description = data[schema[genericCardSchema.description || '']]\n const iconValue = data[schema[genericCardSchema.icon || '']]\n const dataTypeIconNames =\n data[schema[genericCardSchema.dataTypeIconNames || '']]\n const imageFileHandleIdValue =\n data[schema[genericCardSchema.imageFileHandleColumnName || '']]\n const titleColumnModel = columnModels?.find(\n el => genericCardSchema.link === el.name,\n )\n const titleColumnType = titleColumnModel?.columnType\n // wrap link in parens because undefined would throw an error\n const linkValue: string = data[schema[link]] || ''\n const { href, target } = getLinkParams(\n linkValue,\n titleLinkConfig,\n data,\n schema,\n rowId,\n )\n\n const synapseEntityConfig = genericCardSchema.synapseEntityConfig\n\n const getColumnValue = useCallback(\n (columnName?: string) => {\n if (!columnName) {\n return undefined\n }\n const columnIndex = schema[columnName]\n if (columnIndex === undefined) {\n return undefined\n }\n return data[columnIndex]\n },\n [schema, data],\n )\n\n // DUO (Data Use Ontology) tags, when a dataUseModifiers column is configured.\n // Rendered as a metadata row labeled with the column's display name.\n const duoContent = useMemo(() => {\n const col = genericCardSchema.dataUseModifiersColumnName\n if (!col) {\n return undefined\n }\n const terms = parseDuoModifiers(data[schema[col]])\n if (terms.length === 0) {\n return undefined\n }\n return <DuoTermTags terms={terms} />\n }, [genericCardSchema, data, schema])\n\n const resolvedTitleAreaRightContent = useMemo(() => {\n const { titleAreaDetails } = genericCardSchema\n if (!titleAreaDetails) return undefined\n const columns =\n typeof titleAreaDetails === 'function'\n ? titleAreaDetails(schema, data)\n : titleAreaDetails\n if (columns.length === 0) return undefined\n const rows = columns\n .map(columnName => {\n const rawValue: string | undefined = data[schema[columnName]]\n if (!rawValue) return null\n return { name: getColumnDisplayName(columnName), rawValue, columnName }\n })\n .filter(Boolean) as {\n name: string\n rawValue: string\n columnName: string\n }[]\n if (rows.length === 0) return undefined\n return (\n <Stack direction=\"column\" gap=\"4px\">\n {rows.map(({ name, rawValue, columnName }) => (\n <Stack key={columnName} direction=\"row\" gap=\"4px\" alignItems=\"center\">\n <Typography component=\"span\" variant=\"body1\">\n {name}:\n </Typography>\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={undefined}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n </Stack>\n ))}\n </Stack>\n )\n }, [\n genericCardSchema,\n data,\n schema,\n getColumnDisplayName,\n isHeader,\n selectColumns,\n columnModels,\n columnIconOptions,\n ])\n\n const {\n entityId: resolvedSynapseEntityId,\n entityVersionNumber: resolvedSynapseEntityVersionNumber,\n } = useResolvedSynapseEntity({\n synapseEntityConfig,\n getColumnValue,\n rowId,\n rowVersionNumber,\n })\n\n let resolvedDownloadCartSynIdValue = resolvedSynapseEntityId\n let resolvedDownloadCartVersionNumber = resolvedSynapseEntityVersionNumber\n\n if (downloadCartSynId) {\n const reference = parseSynId(getColumnValue(downloadCartSynId) ?? '')\n resolvedDownloadCartSynIdValue = reference?.targetId\n resolvedDownloadCartVersionNumber = reference?.targetVersionNumber\n }\n\n // Opt-in hosting-aware action: when the schema declares a hosting column, the\n // primary action is a DatasetDownloadButton driven by the row's hosting value.\n const hostingConfig = genericCardSchema.hostingConfig\n const rawHostingValue = hostingConfig\n ? getColumnValue(hostingConfig.hostingColumn)\n : undefined\n const hostingType = hostingConfig\n ? (rawHostingValue && hostingConfig.hostingValueMap?.[rawHostingValue]) ||\n normalizeHosting(rawHostingValue)\n : undefined\n const hostingRepository = hostingConfig?.repositoryColumn\n ? getColumnValue(hostingConfig.repositoryColumn)\n : undefined\n const rawHostingExternalUrl = hostingConfig?.externalUrlColumn\n ? getColumnValue(hostingConfig.externalUrlColumn)\n : undefined\n // The externalUrl column may be a markdown link (e.g. CCKP's `externalLink`:\n // \"[label](https://...)\") rather than a plain URL — extract the href if so.\n const hostingExternalUrl = rawHostingExternalUrl\n ? extractMarkdownLinkHref(rawHostingExternalUrl)\n : undefined\n // Non-downloadable hosting (e.g. external-access) suppresses the Synapse\n // download flow entirely; everything else keeps the add-to-download-list behavior.\n const hostingIsDownloadable = hostingType\n ? DATASET_HOSTING_CONFIG[hostingType].downloadable\n : true\n\n // Transform the row to a record of (columnName, value) pairs for compatibility with getCandidateDoiId\n const dataAsRecord: Record<string, string | null> = useMemo(\n () => mapRowToRecord(data, schema),\n [data, schema],\n )\n\n const candidateDoiId = getCandidateDoiId({\n data: dataAsRecord,\n portalDoiConfiguration,\n })\n\n const showDoiCardLabel = useShowDoiCardLabel({\n portalId: portalDoiConfiguration?.portalId,\n resourceId: candidateDoiId,\n })\n\n const values: {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n }[] = []\n const { secondaryLabels = [] } = genericCardSchema\n const customLabelConfig = genericCardSchema.customSecondaryLabelConfig\n\n // DUO tags rendered as a metadata row (alongside \"How to download\", size, …).\n // Label it with the DUO column's display name so the card row matches the\n // facet exactly (respecting any column alias) rather than a hardcoded string.\n if (duoContent && genericCardSchema.dataUseModifiersColumnName) {\n values.push({\n columnName: genericCardSchema.dataUseModifiersColumnName,\n columnDisplayName: getColumnDisplayName(\n genericCardSchema.dataUseModifiersColumnName,\n ),\n value: duoContent,\n })\n }\n\n // PORTALS-3549 - if a DOI exists or can be created by the current user, show it\n if (\n showDoiCardLabel &&\n portalDoiConfiguration &&\n candidateDoiId &&\n cardIsInView\n ) {\n values.push({\n columnDisplayName: 'DOI',\n value: (\n <PortalDOI\n portalId={portalDoiConfiguration.portalId}\n resourceId={candidateDoiId}\n />\n ),\n })\n }\n\n // Overwrite the 'HOW TO DOWNLOAD' link if a synapse ID is available — but not\n // for non-downloadable hosting (e.g. external-access), where adding to the\n // Synapse download list wouldn't work; fall back to the static guidance instead.\n if (customLabelConfig?.isVisible(schema, data)) {\n const { key, value } = customLabelConfig\n if (resolvedDownloadCartSynIdValue && hostingIsDownloadable) {\n values.push({\n columnDisplayName: 'HOW TO DOWNLOAD',\n value: (\n <Link onClick={() => setShowDownloadConfirmation(val => !val)}>\n Click here to add to Synapse download list\n </Link>\n ),\n })\n } else {\n values.push({ columnDisplayName: key, value })\n }\n }\n\n const isView = table && !isTableEntity(table)\n for (let i = 0; i < secondaryLabels.length; i += 1) {\n const columnName = secondaryLabels[i]\n const rawValue: string | undefined = data[schema[columnName]]\n let renderedValue: React.ReactNode = rawValue\n let columnDisplayName\n if (renderedValue && rawValue !== '[]' && rawValue !== '[\"\"]') {\n // PORTALS-2750: special rendering of the datasetSizeInBytes (for Dataset Collections)\n if (\n isDatasetCollection(table as Entity) &&\n columnName === 'datasetSizeInBytes'\n ) {\n columnDisplayName = 'Size'\n renderedValue = calculateFriendlyFileSize(parseInt(rawValue))\n } // SWC-6115: special rendering of the version column (for Views)\n else if (isView && columnName === 'currentVersion') {\n const synapseId = data[schema.id]\n renderedValue = (\n <VersionLabel synapseId={synapseId} version={rawValue} />\n )\n columnDisplayName = 'Version'\n } else {\n const labelLink = labelLinkConfig?.find(\n el => el.matchColumnName === columnName,\n )\n renderedValue = (\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={labelLink}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n )\n columnDisplayName = getColumnDisplayName(columnName)\n }\n values.push({ columnDisplayName, value: renderedValue, columnName })\n }\n }\n\n const fileHandleId = imageFileHandleIdValue || linkValue\n\n /**\n * To show a direct download link to a file, we need to determine the association that gives permission to download the file.\n */\n const fileHandleAssociation = getFileHandleAssociation(\n table,\n fileHandleId,\n data[schema.id],\n )\n\n const descriptionSubTitle = getColumnDisplayName(\n genericCardSchema.description || '',\n )\n\n const doiColumnIndex = getColumnIndex('doi', selectColumns, columnModels)\n const doiValue =\n doiColumnIndex !== undefined ? data[doiColumnIndex] : undefined\n\n // Normalize ctaLinkConfig to array and resolve each config\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const resolvedCtaLinkConfigs = ctaLinkConfigs\n .map(config => {\n const ctaLinkValue: string = data[schema[config.link]] || ''\n if (!ctaLinkValue) return null\n const { href, target } = getLinkParams(\n ctaLinkValue,\n undefined, //card link config\n data,\n schema,\n rowId,\n )\n return {\n text: config.endIcon ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px' }}>\n {config.text}\n {config.endIcon}\n </div>\n ) : (\n config.text\n ),\n href,\n target,\n }\n })\n .filter(Boolean) as { text: string; href: string; target?: string }[]\n\n let croissantButton = <></>\n if (\n resolvedSynapseEntityId != null &&\n resolvedSynapseEntityVersionNumber != null\n ) {\n croissantButton = (\n <CroissantButton\n datasetId={resolvedSynapseEntityId}\n datasetVersionNumber={resolvedSynapseEntityVersionNumber}\n />\n )\n }\n\n // Auto-render a scannable hosting chip next to the dataset type when the card\n // opts into hosting-aware behavior and the row has a recognized hosting value,\n // so the button's icon/tooltip is not the only visual signal of where files\n // live. An explicit `CardTypeAdornment` prop always wins as an escape hatch.\n let resolvedCardTypeAdornment: React.ReactNode = null\n if (CardTypeAdornment) {\n resolvedCardTypeAdornment = (\n <CardTypeAdornment schema={schema} data={data} />\n )\n } else if (hostingConfig && rawHostingValue?.trim() && hostingType) {\n resolvedCardTypeAdornment = (\n <DatasetHostingAdornment hostingType={hostingType} isHeader={isHeader} />\n )\n }\n\n let isRenderingIcon = true\n if (isHeader && !imageFileHandleIdValue && !iconValue) {\n // For header cards, if there is no image or explicit icon value, we don't show an icon at all\n isRenderingIcon = false\n }\n const iconNode = isRenderingIcon ? (\n <GenericCardIcon\n type={\n useTypeColumnForIcon ? data[schema['type']] : genericCardSchema.type\n }\n useTypeForIcon={useTypeColumnForIcon}\n thumbnailRequiresPadding={genericCardSchema.thumbnailRequiresPadding}\n imageFileHandleId={imageFileHandleIdValue}\n fileHandleAssociation={fileHandleAssociation}\n iconOptions={iconOptions}\n iconValue={iconValue}\n />\n ) : undefined\n return (\n <GenericCard\n ref={ref}\n icon={iconNode}\n isHeader={isHeader}\n sustainabilityScorecard={sustainabilityScorecard}\n headerCardVariant={headerCardVariant}\n type={type}\n title={title}\n subtitle={subTitle}\n titleLinkConfiguration={{ target, href }}\n cardTypeAdornment={resolvedCardTypeAdornment}\n titleAsFileHandleLinkConfiguration={\n !titleLinkConfig &&\n titleColumnType === ColumnTypeEnum.FILEHANDLEID &&\n fileHandleAssociation\n ? {\n fileHandleAssociation: fileHandleAssociation,\n showDownloadIcon: type !== SynapseConstants.EXPERIMENTAL,\n }\n : undefined\n }\n ctaLinkConfig={\n resolvedCtaLinkConfigs.length > 0 ? resolvedCtaLinkConfigs : undefined\n }\n ctaLinkPosition={ctaLinkPosition}\n titleAreaRightContent={resolvedTitleAreaRightContent}\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n labels={values}\n secondaryLabelLimit={secondaryLabelLimit}\n useStylesForDisplayedImage={Boolean(imageFileHandleIdValue)}\n cardTopContent={\n <>\n {resolvedDownloadCartSynIdValue && (\n <Collapse in={showDownloadConfirmation}>\n <EntityDownloadConfirmation\n entityId={resolvedDownloadCartSynIdValue}\n versionNumber={resolvedDownloadCartVersionNumber}\n handleClose={() => setShowDownloadConfirmation(false)}\n onIsLoadingChange={isLoading => {\n setDownloadButtonLoading(isLoading)\n }}\n />\n </Collapse>\n )}\n </>\n }\n renderedIconList={\n // If the portal configs has columnIconOptions.columns.dataType option\n // and the column value is not null, display the card data type icons\n columnIconOptions?.columns?.dataType &&\n dataTypeIconNames?.length && (\n <div style={{ marginTop: '20px' }}>\n <IconList\n iconConfigs={columnIconOptions.columns.dataType}\n iconNames={JSON.parse(dataTypeIconNames) as string[]}\n commonIconProps={{\n sx: { fontSize: '40px' },\n }}\n useBackground={true}\n useTheme={true}\n />\n </div>\n )\n }\n cardTopButtons={\n <CardActionButtonStyleContext.Provider value={actionButtonStyle}>\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n {croissantButton}\n {/* Hosting-aware action (opt-in via schema.hostingConfig): downloadable\n hosting shows the standard dataset download options; non-downloadable\n hosting links out to the external repository or is non-actionable. */}\n {hostingConfig &&\n (resolvedDownloadCartSynIdValue || !hostingIsDownloadable) && (\n <DatasetDownloadButton\n entityId={resolvedDownloadCartSynIdValue}\n name={title}\n hosting={hostingType}\n repository={hostingRepository}\n externalUrl={hostingExternalUrl}\n onDownloadClick={() =>\n setShowDownloadConfirmation(val => !val)\n }\n isDownloading={downloadButtonLoading}\n />\n )}\n {/* PORTALS-3386 Use synapseLink in schema to add entity to download cart */}\n {!hostingConfig && resolvedDownloadCartSynIdValue && (\n <GenericCardActionButton\n onClick={() => setShowDownloadConfirmation(val => !val)}\n variant=\"outlined\"\n startIcon={<GetAppTwoTone sx={{ height: '12px' }} />}\n loading={downloadButtonLoading}\n >\n Download\n </GenericCardActionButton>\n )}\n {includeCitation && doiValue && (\n <CitationPopover\n title={title}\n doi={doiValue}\n boilerplateText={citationBoilerplateText}\n defaultCitationFormat={defaultCitationFormat}\n />\n )}\n {includeShareButton && isHeader && (\n <ShareThisPage {...sharePageLinkButtonProps} />\n )}\n </Box>\n </CardActionButtonStyleContext.Provider>\n }\n />\n )\n}\n\nexport default TableRowGenericCard\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableRowGenericCard.js","names":[],"sources":["../../../src/components/GenericCard/TableRowGenericCard.tsx"],"sourcesContent":["import { CommonCardProps } from '@/components/CardContainer/CardConfiguration'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n getValueOrMultiValue,\n} from '@/components/GenericCard/CardUtils'\nimport CroissantButton from '@/components/GenericCard/CroissantButton/CroissantButton'\nimport { GenericCardIcon } from '@/components/GenericCard/GenericCardIcon'\nimport PortalDOI from '@/components/GenericCard/PortalDOI/PortalDOI'\nimport {\n getCandidateDoiId,\n useShowDoiCardLabel,\n} from '@/components/GenericCard/PortalDOI/PortalDOIUtils'\nimport { mapRowToRecord } from '@/components/SynapseTable/SynapseTableUtils'\nimport { useGetEntity } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isDatasetCollection,\n isTableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport {\n extractMarkdownLinkHref,\n parseSynId,\n} from '@/utils/functions/RegularExpressions'\nimport { getColumnIndex } from '@/utils/functions/SqlFunctions'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport * as SynapseConstants from '@/utils/SynapseConstants'\nimport GetAppTwoTone from '@mui/icons-material/GetAppTwoTone'\nimport { Box, Collapse, Link, Stack, Typography } from '@mui/material'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n Entity,\n SelectColumn,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport CitationPopover from '../CitationPopover'\nimport {\n DATASET_HOSTING_CONFIG,\n type DatasetHostingType,\n normalizeHosting,\n} from '../DatasetHosting/DatasetHosting'\nimport DatasetDownloadButton from '../DatasetHosting/DatasetDownloadButton'\nimport DatasetHostingAdornment from '../DatasetHosting/DatasetHostingAdornment'\nimport { EntityDownloadConfirmation } from '../EntityDownloadConfirmation'\nimport { HeaderCardVariant } from '../HeaderCard'\nimport IconList from '../IconList'\nimport { useQueryContext } from '../QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport ShareThisPage, {\n ShareThisPageProps,\n} from '../ShareThisPage/ShareThisPage'\nimport { SustainabilityScorecardProps } from '../SustainabilityScorecard/SustainabilityScorecard'\nimport { CardActionButtonStyleContext } from './CardActionButtonStyleContext'\nimport GenericCard from './GenericCard'\nimport GenericCardActionButton from './GenericCardActionButton'\nimport DuoTermTags from './DuoTermTags/DuoTermTags'\nimport { parseDuoModifiers } from './DuoTermTags/duoTerms'\nimport { PortalDOIConfiguration } from './PortalDOI/PortalDOIConfiguration'\nimport { SynapseCardLabel } from './SynapseCardLabel'\nimport { useResolvedSynapseEntity } from './useResolvedSynapseEntity'\n\ntype RowSynapseEntityConfig = {\n /** Use the table rowId to resolve the Synapse entity ID. */\n id: {\n source: 'rowId'\n }\n /** Use the table rowVersionNumber to resolve the Synapse entity version (if available). */\n version?: {\n source: 'rowVersionNumber'\n }\n}\n\ntype ColumnSynapseEntityConfig = {\n /** Use a column value to resolve the Synapse entity ID. */\n id: {\n source: 'column'\n columnName: string\n }\n /** Use a column value to resolve the Synapse entity version. */\n version?: {\n source: 'column'\n columnName: string\n }\n}\n\nexport type SynapseEntityConfig =\n | RowSynapseEntityConfig\n | ColumnSynapseEntityConfig\n\n/**\n * Maps a table query result to a GenericCard.\n */\nexport type TableToGenericCardMapping = {\n /** The 'type' of resource a card refers to. Renders a label on the card with this string value.\n * Can be hidden by setting it to '' (empty string)\n */\n type: string\n /** The column name whose data contains the title of the card */\n title: string\n /** The column name whose data contains the subtitle of the card */\n subTitle?: string\n /** The column name whose data contains the description of the card */\n description?: string\n /** If true, a 'Cite As' button will be displayed for those cards with a DOI in the 'doi' column */\n includeCitation?: boolean\n /** If true, a 'Share this page' button will be displayed */\n includeShareButton?: boolean\n /**\n * Configuration for displaying the SustainabilityScorecard component\n */\n sustainabilityScorecard?: SustainabilityScorecardProps\n /** The initial citation format to use in the 'Cite As' UI */\n defaultCitationFormat?: 'bibtex' | 'apa' | 'ieee' | 'nature' | 'science'\n /** Static text displayed in the 'Cite As' UI */\n citationBoilerplateText?: string\n /** The column name whose data contains the value used to map to the icon */\n icon?: string\n /** The column name whose data contains an image file handle to be displayed on the card */\n imageFileHandleColumnName?: string\n /** Static boolean value used if the image displayed using `imageFileHandleColumnName` requires extra padding */\n thumbnailRequiresPadding?: boolean\n /** Array of column names to be used for labels in the Card Footer */\n secondaryLabels?: string[]\n /** Can be used to add a custom secondary label */\n customSecondaryLabelConfig?: {\n /** The displayed label key */\n key: string\n /** The value to display */\n value: React.ReactNode\n /** Callback to determine visibility of the label\n * @param schema the mapping of columnName to data index\n * @param data the row data\n */\n isVisible: (schema: Record<string, number>, data: string[]) => boolean\n }\n /** Column name of the link value if the title should be linked */\n link?: string\n /** Column name of the STRING_LIST column that includes icon names that represent icons that should be displayed on the card */\n dataTypeIconNames?: string\n /**\n * Ordered list of column names to display to the right of the title area.\n * Each renders as \"Display Name: Value\" on its own line. Rows with empty values are skipped.\n * The display name is derived from getColumnDisplayName (respects column aliases and unCamelCase).\n *\n * Can also be a function that receives the schema and row data and returns the list of column\n * names to display, allowing the displayed details to vary based on the row's actual values.\n */\n titleAreaDetails?:\n | string[]\n | ((schema: Record<string, number>, data: string[]) => string[])\n /** Configuration for resolving the Synapse entity ID/version represented by each card row.\n * The ID and version sources must both reference either row-based values or column-based values.\n */\n synapseEntityConfig?: SynapseEntityConfig\n /** The column name whose data contains a synId that can be used to show a button to add the corresponding entity to the download cart. */\n downloadCartSynId?: string\n /**\n * Opt-in configuration for hosting-aware download/access. When `hostingColumn`\n * is provided, the card's primary action becomes a `DatasetDownloadButton` driven\n * by the row's hosting value: downloadable hosting types show the standard dataset\n * download options, while non-downloadable types (e.g. external-access) swap to a\n * link to the external repository instead. Other portals that don't set this\n * are unaffected.\n */\n hostingConfig?: {\n /** Column holding the hosting type. Blank/unknown → `synapse`. */\n hostingColumn: string\n /**\n * Optional map from the column's raw values to hosting types, for columns that\n * use portal-specific labels rather than the canonical vocabulary (e.g. CCKP's\n * `downloadType`: \"Synapse Indexed\" → `external-download`). Values not in the\n * map fall back to `normalizeHosting` (canonical value, or → `synapse`).\n */\n hostingValueMap?: Record<string, DatasetHostingType>\n /** Column holding the free-text external repository name (e.g. \"GEO\", \"dbGaP\"). */\n repositoryColumn?: string\n /** Column holding the external URL used for non-downloadable (external-access) datasets. */\n externalUrlColumn?: string\n }\n /** Configuration to display a DOI, as well as the ability to create one for users with such permission */\n portalDoiConfiguration?: PortalDOIConfiguration\n /**\n * Column name of a STRING_LIST of Data Use Ontology (DUO) values (ontology\n * codes or term names). When set, the values are rendered as DUO tags in a\n * metadata row labeled with the column's display name, so the card matches the\n * corresponding facet.\n */\n dataUseModifiersColumnName?: string\n}\n\nexport type TableRowGenericCardProps = {\n /** The schema that maps a table result to the GenericCard UI */\n genericCardSchema: TableToGenericCardMapping\n /** The table's SelectColumns */\n selectColumns?: SelectColumn[]\n /** The table's ColumnModels */\n columnModels?: ColumnModel[]\n /** If true, the 'type' column will be used as the icon string to choose the icon */\n useTypeColumnForIcon?: boolean\n /** If true, render the card as a HeaderCard */\n isHeader?: boolean\n /** If isHeader is true, use this variant of HeaderCard */\n headerCardVariant?: HeaderCardVariant\n isAlignToLeftNav?: boolean\n /** Mapping of column name to row data index */\n schema: Record<string, number>\n /** The row data */\n data: string[]\n /** The ID of the table row */\n rowId?: number\n /** The versionNumber of the table row */\n versionNumber?: number\n /** Optional props for the ShareThisPage component */\n sharePageLinkButtonProps?: ShareThisPageProps\n /** Optional function that receives schema and data and returns a ReactNode to be rendered next to the card type */\n CardTypeAdornment?: React.ComponentType<{\n schema: Record<string, number>\n data: string[]\n }>\n} & CommonCardProps\n\n// SWC-6115: special rendering of the version column (for Views)\nfunction VersionLabel(props: { synapseId: string; version: string }) {\n const { synapseId, version } = props\n return (\n <span>\n {version}&nbsp;&nbsp;\n <a\n target={TargetEnum.NEW_WINDOW}\n rel=\"noopener noreferrer\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${synapseId}.${version}`}\n >\n (Show Version History on Synapse)\n </a>\n </span>\n )\n}\n\n/**\n * Maps a table row to a GenericCard.\n */\nexport function TableRowGenericCard(props: TableRowGenericCardProps) {\n const [showDownloadConfirmation, setShowDownloadConfirmation] =\n useState(false)\n const [downloadButtonLoading, setDownloadButtonLoading] = useState(false)\n\n const { entityId, versionNumber } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n\n const { ref, inView: cardIsInView } = useInView()\n\n const { data: table } = useGetEntity<Table>(entityId, versionNumber)\n\n const {\n schema,\n data,\n rowId,\n versionNumber: rowVersionNumber,\n genericCardSchema,\n secondaryLabelLimit,\n sharePageLinkButtonProps,\n selectColumns,\n columnModels,\n iconOptions,\n useTypeColumnForIcon = false,\n isHeader = false,\n sustainabilityScorecard,\n headerCardVariant,\n titleLinkConfig,\n ctaLinkConfig,\n ctaLinkPosition,\n labelLinkConfig,\n descriptionConfig,\n columnIconOptions,\n CardTypeAdornment,\n charCountCutoff,\n actionButtonStyle = 'button',\n } = props\n\n const {\n link = '',\n type,\n includeCitation,\n includeShareButton,\n defaultCitationFormat,\n citationBoilerplateText,\n downloadCartSynId,\n portalDoiConfiguration,\n } = genericCardSchema\n const title = data[schema[genericCardSchema.title]]\n let subTitle =\n genericCardSchema.subTitle && data[schema[genericCardSchema.subTitle]]\n subTitle =\n genericCardSchema.subTitle &&\n getValueOrMultiValue({\n value: subTitle,\n columnName: genericCardSchema.subTitle,\n selectColumns,\n columnModels,\n }).str\n const description = data[schema[genericCardSchema.description || '']]\n const iconValue = data[schema[genericCardSchema.icon || '']]\n const dataTypeIconNames =\n data[schema[genericCardSchema.dataTypeIconNames || '']]\n const imageFileHandleIdValue =\n data[schema[genericCardSchema.imageFileHandleColumnName || '']]\n const titleColumnModel = columnModels?.find(\n el => genericCardSchema.link === el.name,\n )\n const titleColumnType = titleColumnModel?.columnType\n // wrap link in parens because undefined would throw an error\n const linkValue: string = data[schema[link]] || ''\n const { href, target } = getLinkParams(\n linkValue,\n titleLinkConfig,\n data,\n schema,\n rowId,\n )\n\n const synapseEntityConfig = genericCardSchema.synapseEntityConfig\n\n const getColumnValue = useCallback(\n (columnName?: string) => {\n if (!columnName) {\n return undefined\n }\n const columnIndex = schema[columnName]\n if (columnIndex === undefined) {\n return undefined\n }\n return data[columnIndex]\n },\n [schema, data],\n )\n\n // DUO (Data Use Ontology) tags, when a dataUseModifiers column is configured.\n // Rendered as a metadata row labeled with the column's display name.\n const duoContent = useMemo(() => {\n const col = genericCardSchema.dataUseModifiersColumnName\n if (!col) {\n return undefined\n }\n const terms = parseDuoModifiers(data[schema[col]])\n if (terms.length === 0) {\n return undefined\n }\n return <DuoTermTags terms={terms} />\n }, [genericCardSchema, data, schema])\n\n const resolvedTitleAreaRightContent = useMemo(() => {\n const { titleAreaDetails } = genericCardSchema\n if (!titleAreaDetails) return undefined\n const columns =\n typeof titleAreaDetails === 'function'\n ? titleAreaDetails(schema, data)\n : titleAreaDetails\n if (columns.length === 0) return undefined\n const rows = columns\n .map(columnName => {\n const rawValue: string | undefined = data[schema[columnName]]\n if (!rawValue) return null\n return { name: getColumnDisplayName(columnName), rawValue, columnName }\n })\n .filter(Boolean) as {\n name: string\n rawValue: string\n columnName: string\n }[]\n if (rows.length === 0) return undefined\n return (\n <Stack direction=\"column\" gap=\"4px\">\n {rows.map(({ name, rawValue, columnName }) => (\n <Stack key={columnName} direction=\"row\" gap=\"4px\" alignItems=\"center\">\n <Typography component=\"span\" variant=\"body1\">\n {name}:\n </Typography>\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={undefined}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n </Stack>\n ))}\n </Stack>\n )\n }, [\n genericCardSchema,\n data,\n schema,\n getColumnDisplayName,\n isHeader,\n selectColumns,\n columnModels,\n columnIconOptions,\n ])\n\n const {\n entityId: resolvedSynapseEntityId,\n entityVersionNumber: resolvedSynapseEntityVersionNumber,\n } = useResolvedSynapseEntity({\n synapseEntityConfig,\n getColumnValue,\n rowId,\n rowVersionNumber,\n })\n\n let resolvedDownloadCartSynIdValue = resolvedSynapseEntityId\n let resolvedDownloadCartVersionNumber = resolvedSynapseEntityVersionNumber\n\n if (downloadCartSynId) {\n const reference = parseSynId(getColumnValue(downloadCartSynId) ?? '')\n resolvedDownloadCartSynIdValue = reference?.targetId\n resolvedDownloadCartVersionNumber = reference?.targetVersionNumber\n }\n\n // Opt-in hosting-aware action: when the schema declares a hosting column, the\n // primary action is a DatasetDownloadButton driven by the row's hosting value.\n const hostingConfig = genericCardSchema.hostingConfig\n const rawHostingValue = hostingConfig\n ? getColumnValue(hostingConfig.hostingColumn)\n : undefined\n const hostingType = hostingConfig\n ? (rawHostingValue && hostingConfig.hostingValueMap?.[rawHostingValue]) ||\n normalizeHosting(rawHostingValue)\n : undefined\n const hostingRepository = hostingConfig?.repositoryColumn\n ? getColumnValue(hostingConfig.repositoryColumn)\n : undefined\n const rawHostingExternalUrl = hostingConfig?.externalUrlColumn\n ? getColumnValue(hostingConfig.externalUrlColumn)\n : undefined\n // The externalUrl column may be a markdown link (e.g. CCKP's `externalLink`:\n // \"[label](https://...)\") rather than a plain URL — extract the href if so.\n const hostingExternalUrl = rawHostingExternalUrl\n ? extractMarkdownLinkHref(rawHostingExternalUrl)\n : undefined\n // Non-downloadable hosting (e.g. external-access) suppresses the Synapse\n // download flow entirely; everything else keeps the add-to-download-list behavior.\n const hostingIsDownloadable = hostingType\n ? DATASET_HOSTING_CONFIG[hostingType].downloadable\n : true\n\n // Transform the row to a record of (columnName, value) pairs for compatibility with getCandidateDoiId\n const dataAsRecord: Record<string, string | null> = useMemo(\n () => mapRowToRecord(data, schema),\n [data, schema],\n )\n\n const candidateDoiId = getCandidateDoiId({\n data: dataAsRecord,\n portalDoiConfiguration,\n })\n\n const showDoiCardLabel = useShowDoiCardLabel({\n portalId: portalDoiConfiguration?.portalId,\n resourceId: candidateDoiId,\n })\n\n const values: {\n columnDisplayName: string\n value: React.ReactNode\n columnName?: string\n }[] = []\n const { secondaryLabels = [] } = genericCardSchema\n const customLabelConfig = genericCardSchema.customSecondaryLabelConfig\n\n // DUO tags rendered as a metadata row (alongside \"How to download\", size, …).\n // Label it with the DUO column's display name so the card row matches the\n // facet exactly (respecting any column alias) rather than a hardcoded string.\n if (duoContent && genericCardSchema.dataUseModifiersColumnName) {\n values.push({\n columnName: genericCardSchema.dataUseModifiersColumnName,\n columnDisplayName: getColumnDisplayName(\n genericCardSchema.dataUseModifiersColumnName,\n ),\n value: duoContent,\n })\n }\n\n // PORTALS-3549 - if a DOI exists or can be created by the current user, show it\n if (\n showDoiCardLabel &&\n portalDoiConfiguration &&\n candidateDoiId &&\n cardIsInView\n ) {\n values.push({\n columnDisplayName: 'DOI',\n value: (\n <PortalDOI\n portalId={portalDoiConfiguration.portalId}\n resourceId={candidateDoiId}\n />\n ),\n })\n }\n\n // Overwrite the 'HOW TO DOWNLOAD' link if a synapse ID is available — but not\n // for non-downloadable hosting (e.g. external-access), where adding to the\n // Synapse download list wouldn't work; fall back to the static guidance instead.\n if (customLabelConfig?.isVisible(schema, data)) {\n const { key, value } = customLabelConfig\n if (resolvedDownloadCartSynIdValue && hostingIsDownloadable) {\n values.push({\n columnDisplayName: 'HOW TO DOWNLOAD',\n value: (\n <Link onClick={() => setShowDownloadConfirmation(val => !val)}>\n Click here to add to Synapse download list\n </Link>\n ),\n })\n } else {\n values.push({ columnDisplayName: key, value })\n }\n }\n\n const isView = table && !isTableEntity(table)\n for (let i = 0; i < secondaryLabels.length; i += 1) {\n const columnName = secondaryLabels[i]\n const rawValue: string | undefined = data[schema[columnName]]\n let renderedValue: React.ReactNode = rawValue\n let columnDisplayName\n if (renderedValue && rawValue !== '[]' && rawValue !== '[\"\"]') {\n // PORTALS-2750: special rendering of the datasetSizeInBytes (for Dataset Collections)\n if (\n isDatasetCollection(table as Entity) &&\n columnName === 'datasetSizeInBytes'\n ) {\n columnDisplayName = 'Size'\n renderedValue = calculateFriendlyFileSize(parseInt(rawValue))\n } // SWC-6115: special rendering of the version column (for Views)\n else if (isView && columnName === 'currentVersion') {\n const synapseId = data[schema.id]\n renderedValue = (\n <VersionLabel synapseId={synapseId} version={rawValue} />\n )\n columnDisplayName = 'Version'\n } else {\n const labelLink = labelLinkConfig?.find(\n el => el.matchColumnName === columnName,\n )\n renderedValue = (\n <SynapseCardLabel\n value={rawValue}\n columnName={columnName}\n labelLink={labelLink}\n isHeader={isHeader}\n selectColumns={selectColumns}\n columnModels={columnModels}\n rowData={data}\n columnIconOptions={columnIconOptions}\n />\n )\n columnDisplayName = getColumnDisplayName(columnName)\n }\n values.push({ columnDisplayName, value: renderedValue, columnName })\n }\n }\n\n const fileHandleId = imageFileHandleIdValue || linkValue\n\n /**\n * To show a direct download link to a file, we need to determine the association that gives permission to download the file.\n */\n const fileHandleAssociation = getFileHandleAssociation(\n table,\n fileHandleId,\n data[schema.id],\n )\n\n const descriptionSubTitle = getColumnDisplayName(\n genericCardSchema.description || '',\n )\n\n const doiColumnIndex = getColumnIndex('doi', selectColumns, columnModels)\n const doiValue =\n doiColumnIndex !== undefined ? data[doiColumnIndex] : undefined\n\n // Normalize ctaLinkConfig to array and resolve each config\n const ctaLinkConfigs = ctaLinkConfig\n ? Array.isArray(ctaLinkConfig)\n ? ctaLinkConfig\n : [ctaLinkConfig]\n : []\n const resolvedCtaLinkConfigs = ctaLinkConfigs\n .map(config => {\n const ctaLinkValue: string = data[schema[config.link]] || ''\n if (!ctaLinkValue) return null\n const { href, target } = getLinkParams(\n ctaLinkValue,\n undefined, //card link config\n data,\n schema,\n rowId,\n )\n return {\n text: config.endIcon ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px' }}>\n {config.text}\n {config.endIcon}\n </div>\n ) : (\n config.text\n ),\n href,\n target,\n }\n })\n .filter(Boolean) as { text: string; href: string; target?: string }[]\n\n let croissantButton = <></>\n if (\n resolvedSynapseEntityId != null &&\n resolvedSynapseEntityVersionNumber != null\n ) {\n croissantButton = (\n <CroissantButton\n datasetId={resolvedSynapseEntityId}\n datasetVersionNumber={resolvedSynapseEntityVersionNumber}\n />\n )\n }\n\n // Auto-render a scannable hosting chip next to the dataset type when the card\n // opts into hosting-aware behavior and the row has a recognized hosting value,\n // so the button's icon/tooltip is not the only visual signal of where files\n // live. An explicit `CardTypeAdornment` prop always wins as an escape hatch.\n let resolvedCardTypeAdornment: React.ReactNode = null\n if (CardTypeAdornment) {\n resolvedCardTypeAdornment = (\n <CardTypeAdornment schema={schema} data={data} />\n )\n } else if (hostingConfig && rawHostingValue?.trim() && hostingType) {\n resolvedCardTypeAdornment = (\n <DatasetHostingAdornment hostingType={hostingType} isHeader={isHeader} />\n )\n }\n\n let isRenderingIcon = true\n if (isHeader && !imageFileHandleIdValue && !iconValue) {\n // For header cards, if there is no image or explicit icon value, we don't show an icon at all\n isRenderingIcon = false\n }\n const iconNode = isRenderingIcon ? (\n <GenericCardIcon\n type={\n useTypeColumnForIcon ? data[schema['type']] : genericCardSchema.type\n }\n useTypeForIcon={useTypeColumnForIcon}\n thumbnailRequiresPadding={genericCardSchema.thumbnailRequiresPadding}\n imageFileHandleId={imageFileHandleIdValue}\n fileHandleAssociation={fileHandleAssociation}\n iconOptions={iconOptions}\n iconValue={iconValue}\n />\n ) : undefined\n return (\n <GenericCard\n ref={ref}\n icon={iconNode}\n isHeader={isHeader}\n sustainabilityScorecard={sustainabilityScorecard}\n headerCardVariant={headerCardVariant}\n type={type}\n title={title}\n subtitle={subTitle}\n titleLinkConfiguration={{ target, href }}\n cardTypeAdornment={resolvedCardTypeAdornment}\n titleAsFileHandleLinkConfiguration={\n !titleLinkConfig &&\n titleColumnType === ColumnTypeEnum.FILEHANDLEID &&\n fileHandleAssociation\n ? {\n fileHandleAssociation: fileHandleAssociation,\n showDownloadIcon: type !== SynapseConstants.EXPERIMENTAL,\n }\n : undefined\n }\n ctaLinkConfig={\n resolvedCtaLinkConfigs.length > 0 ? resolvedCtaLinkConfigs : undefined\n }\n ctaLinkPosition={ctaLinkPosition}\n titleAreaRightContent={resolvedTitleAreaRightContent}\n description={description}\n descriptionSubTitle={descriptionSubTitle}\n descriptionConfig={descriptionConfig}\n charCountCutoff={charCountCutoff}\n labels={values}\n secondaryLabelLimit={secondaryLabelLimit}\n useStylesForDisplayedImage={Boolean(imageFileHandleIdValue)}\n cardTopContent={\n <>\n {resolvedDownloadCartSynIdValue && (\n <Collapse in={showDownloadConfirmation}>\n <EntityDownloadConfirmation\n entityId={resolvedDownloadCartSynIdValue}\n versionNumber={resolvedDownloadCartVersionNumber}\n handleClose={() => setShowDownloadConfirmation(false)}\n onIsLoadingChange={isLoading => {\n setDownloadButtonLoading(isLoading)\n }}\n />\n </Collapse>\n )}\n </>\n }\n renderedIconList={\n // If the portal configs has columnIconOptions.columns.dataType option\n // and the column value is not null, display the card data type icons\n columnIconOptions?.columns?.dataType &&\n dataTypeIconNames?.length && (\n <div style={{ marginTop: '20px' }}>\n <IconList\n iconConfigs={columnIconOptions.columns.dataType}\n iconNames={JSON.parse(dataTypeIconNames) as string[]}\n commonIconProps={{\n sx: { fontSize: '40px' },\n }}\n useBackground={true}\n useTheme={true}\n />\n </div>\n )\n }\n cardTopButtons={\n <CardActionButtonStyleContext.Provider value={actionButtonStyle}>\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n {croissantButton}\n {/* Hosting-aware action (opt-in via schema.hostingConfig): downloadable\n hosting shows the standard dataset download options; non-downloadable\n hosting links out to the external repository or is non-actionable. */}\n {hostingConfig &&\n (resolvedDownloadCartSynIdValue || !hostingIsDownloadable) && (\n <DatasetDownloadButton\n entityId={resolvedDownloadCartSynIdValue}\n name={title}\n hosting={hostingType}\n repository={hostingRepository}\n externalUrl={hostingExternalUrl}\n onDownloadClick={() =>\n setShowDownloadConfirmation(val => !val)\n }\n isDownloading={downloadButtonLoading}\n />\n )}\n {/* PORTALS-3386 Use synapseLink in schema to add entity to download cart */}\n {!hostingConfig && resolvedDownloadCartSynIdValue && (\n <GenericCardActionButton\n onClick={() => setShowDownloadConfirmation(val => !val)}\n variant=\"outlined\"\n startIcon={<GetAppTwoTone sx={{ height: '12px' }} />}\n loading={downloadButtonLoading}\n >\n Download\n </GenericCardActionButton>\n )}\n {includeCitation && doiValue && (\n <CitationPopover\n title={title}\n doi={doiValue}\n boilerplateText={citationBoilerplateText}\n defaultCitationFormat={defaultCitationFormat}\n />\n )}\n {includeShareButton && isHeader && (\n <ShareThisPage {...sharePageLinkButtonProps} />\n )}\n </Box>\n </CardActionButtonStyleContext.Provider>\n }\n />\n )\n}\n\nexport default TableRowGenericCard\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { MarkdownPopover as e } from "../Markdown/MarkdownPopover.js";
2
2
  import { Fragment as t, jsx as n } from "react/jsx-runtime";
3
- import { HelpOutlineTwoTone as r } from "@mui/icons-material";
3
+ import r from "@mui/icons-material/HelpOutlineTwoTone";
4
4
  //#region src/components/HelpPopover/HelpPopover.tsx
5
5
  function i({ markdownText: i, helpUrl: a, placement: o = "bottom", showCloseButton: s = !0, className: c = "", iconSx: l, containerSx: u, Icon: d = r }) {
6
6
  return /* @__PURE__ */ n(t, { children: /* @__PURE__ */ n(e, {
@@ -1 +1 @@
1
- {"version":3,"file":"HelpPopover.js","names":[],"sources":["../../../src/components/HelpPopover/HelpPopover.tsx"],"sourcesContent":["import { MarkdownPopover } from '../Markdown/MarkdownPopover'\nimport { ButtonProps, SxProps, TooltipProps } from '@mui/material'\nimport { HelpOutlineTwoTone } from '@mui/icons-material'\n\nexport type HelpPopoverProps = {\n markdownText: string\n helpUrl?: string\n placement?: TooltipProps['placement']\n showCloseButton?: boolean\n className?: string\n containerSx?: SxProps\n iconSx?: SxProps\n Icon?: React.ComponentType<{ className?: string; sx?: SxProps }>\n}\n\nexport function HelpPopover({\n markdownText,\n helpUrl,\n placement = 'bottom',\n showCloseButton = true,\n className = '',\n iconSx,\n containerSx,\n Icon = HelpOutlineTwoTone,\n}: HelpPopoverProps) {\n const actionButtonConfig = helpUrl\n ? {\n content: <>More info</>,\n closePopoverOnClick: true,\n onClick: () => window.open(helpUrl, '_blank'),\n color: 'primary' as ButtonProps['color'],\n }\n : undefined\n return (\n <>\n <MarkdownPopover\n contentProps={{ markdown: markdownText }}\n placement={placement}\n actionButton={actionButtonConfig}\n showCloseButton={showCloseButton}\n maxWidth=\"350px\"\n containerSx={containerSx}\n >\n <Icon className={`HelpButton ${className}`} sx={iconSx} />\n </MarkdownPopover>\n </>\n )\n}\n\nexport default HelpPopover\n"],"mappings":";;;;AAeA,SAAgB,EAAY,EAC1B,iBACA,YACA,eAAY,UACZ,qBAAkB,IAClB,eAAY,IACZ,WACA,gBACA,UAAO,KACY;CASnB,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,cAAc,EAAE,UAAU,EAAa;EAC5B;EACX,cAbqB,IACvB;GACE,SAAS,kBAAA,GAAA,EAAA,UAAE,YAAW,CAAA;GACtB,qBAAqB;GACrB,eAAe,OAAO,KAAK,GAAS,QAAQ;GAC5C,OAAO;EACT,IACA,KAAA;EAOmB;EACjB,UAAS;EACI;YAEb,kBAAC,GAAD;GAAM,WAAW,cAAc;GAAa,IAAI;EAAS,CAAA;CAC1C,CAAA,EACjB,CAAA;AAEN"}
1
+ {"version":3,"file":"HelpPopover.js","names":[],"sources":["../../../src/components/HelpPopover/HelpPopover.tsx"],"sourcesContent":["import { MarkdownPopover } from '../Markdown/MarkdownPopover'\nimport { ButtonProps, SxProps, TooltipProps } from '@mui/material'\nimport HelpOutlineTwoTone from '@mui/icons-material/HelpOutlineTwoTone'\n\nexport type HelpPopoverProps = {\n markdownText: string\n helpUrl?: string\n placement?: TooltipProps['placement']\n showCloseButton?: boolean\n className?: string\n containerSx?: SxProps\n iconSx?: SxProps\n Icon?: React.ComponentType<{ className?: string; sx?: SxProps }>\n}\n\nexport function HelpPopover({\n markdownText,\n helpUrl,\n placement = 'bottom',\n showCloseButton = true,\n className = '',\n iconSx,\n containerSx,\n Icon = HelpOutlineTwoTone,\n}: HelpPopoverProps) {\n const actionButtonConfig = helpUrl\n ? {\n content: <>More info</>,\n closePopoverOnClick: true,\n onClick: () => window.open(helpUrl, '_blank'),\n color: 'primary' as ButtonProps['color'],\n }\n : undefined\n return (\n <>\n <MarkdownPopover\n contentProps={{ markdown: markdownText }}\n placement={placement}\n actionButton={actionButtonConfig}\n showCloseButton={showCloseButton}\n maxWidth=\"350px\"\n containerSx={containerSx}\n >\n <Icon className={`HelpButton ${className}`} sx={iconSx} />\n </MarkdownPopover>\n </>\n )\n}\n\nexport default HelpPopover\n"],"mappings":";;;;AAeA,SAAgB,EAAY,EAC1B,iBACA,YACA,eAAY,UACZ,qBAAkB,IAClB,eAAY,IACZ,WACA,gBACA,UAAO,KACY;CASnB,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,cAAc,EAAE,UAAU,EAAa;EAC5B;EACX,cAbqB,IACvB;GACE,SAAS,kBAAA,GAAA,EAAA,UAAE,YAAW,CAAA;GACtB,qBAAqB;GACrB,eAAe,OAAO,KAAK,GAAS,QAAQ;GAC5C,OAAO;EACT,IACA,KAAA;EAOmB;EACjB,UAAS;EACI;YAEb,kBAAC,GAAD;GAAM,WAAW,cAAc;GAAa,IAAI;EAAS,CAAA;CAC1C,CAAA,EACjB,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconSvg.d.ts","sourceRoot":"","sources":["../../../src/components/IconSvg/IconSvg.tsx"],"names":[],"mappings":"AA+JA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAG7D,eAAO,MAAM,WAAW,+sEAsKd,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAA;IAEd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GAAG,YAAY,CAAA;AA+VhB,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,2CA2CnC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAezD,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAejE,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"IconSvg.d.ts","sourceRoot":"","sources":["../../../src/components/IconSvg/IconSvg.tsx"],"names":[],"mappings":"AA6JA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAG7D,eAAO,MAAM,WAAW,+sEAsKd,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAA;IAEd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GAAG,YAAY,CAAA;AA+VhB,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,2CA2CnC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAezD,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAejE,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -48,7 +48,114 @@ import R from "../../assets/mui_components/Rat.js";
48
48
  import z from "../../assets/mui_components/SpatialProfiling.js";
49
49
  import { Tooltip as B } from "@mui/material";
50
50
  import { Fragment as V, jsx as H } from "react/jsx-runtime";
51
- import { AccessTimeTwoTone as U, AddBoxOutlined as W, AddCircleOutline as G, AddCircleTwoTone as K, AddShoppingCart as ce, AddTwoTone as le, AlternateEmail as ue, ArrowBack as de, ArrowDropDownTwoTone as fe, ArrowDropUpTwoTone as pe, ArrowForward as me, ArticleOutlined as he, ArticleTwoTone as q, AssessmentTwoTone as J, AssignmentOutlined as ge, AssignmentTurnedInTwoTone as _e, Block as ve, Cached as ye, ChatTwoTone as be, Check as xe, CheckCircleTwoTone as Se, ChevronLeft as Ce, ChevronRight as we, Clear as Te, CloseTwoTone as Ee, Code as De, ContentCopyRounded as Oe, ContentCopyTwoTone as ke, CreateNewFolderTwoTone as Ae, DashboardOutlined as je, DashboardTwoTone as Me, DeleteSweepTwoTone as Ne, DeleteTwoTone as Pe, EditTwoTone as Fe, ErrorOutlined as Ie, ExpandLess as Le, ExpandMore as Re, FactCheckTwoTone as ze, FilterAltTwoTone as Be, FlagTwoTone as Ve, FolderOutlined as He, FolderTwoTone as Ue, FormatBold as We, FormatItalic as Ge, GetAppTwoTone as Ke, GitHub as qe, Group as Je, HelpOutlineTwoTone as Ye, HelpOutlined as Xe, HistoryTwoTone as Ze, Image as Qe, IndeterminateCheckBoxOutlined as $e, InfoOutlined as et, InsertDriveFileOutlined as tt, InsertDriveFileTwoTone as nt, LabelTwoTone as rt, LanguageTwoTone as it, LayersTwoTone as at, LinkOffTwoTone as ot, LinkOutlined as st, LinkTwoTone as ct, ListTwoTone as lt, LockOpenTwoTone as ut, LockTwoTone as dt, Login as ft, MailOutlineTwoTone as pt, MoreVertTwoTone as mt, OpenInFull as ht, OpenInNewTwoTone as gt, PeopleTwoTone as Y, PhoneTwoTone as _t, PhotoCameraOutlined as vt, PublicTwoTone as yt, PushPinTwoTone as bt, QuestionAnswerTwoTone as xt, RadioButtonUncheckedTwoTone as St, RemoveCircleTwoTone as Ct, ReplyTwoTone as wt, ReportProblemOutlined as Tt, RestoreFromTrashTwoTone as Et, SearchOutlined as Dt, SearchTwoTone as Ot, ShareTwoTone as kt, ShoppingCartOutlined as At, Sort as X, Star as jt, StarOutline as Mt, StarTwoTone as Nt, StrikethroughS as Pt, Subscript as Ft, Superscript as It, Support as Lt, SyncTwoTone as Rt, TableChartOutlined as zt, TableChartTwoTone as Bt, TableRows as Vt, TableViewOutlined as Ht, TableViewTwoTone as Z, Title as Ut, UploadTwoTone as Wt, ViewAgendaTwoTone as Gt, ViewColumnOutlined as Kt, ViewColumnTwoTone as qt, VisibilityOffTwoTone as Jt, VisibilityTwoTone as Yt, VpnKeyTwoTone as Xt, WarningTwoTone as Zt, WatchLater as Qt } from "@mui/icons-material";
51
+ import U from "@mui/icons-material/CheckCircleTwoTone";
52
+ import W from "@mui/icons-material/HelpOutlineTwoTone";
53
+ import G from "@mui/icons-material/AddCircleTwoTone";
54
+ import K from "@mui/icons-material/DeleteTwoTone";
55
+ import ce from "@mui/icons-material/AccessTimeTwoTone";
56
+ import le from "@mui/icons-material/AddBoxOutlined";
57
+ import ue from "@mui/icons-material/AddCircleOutline";
58
+ import de from "@mui/icons-material/AddShoppingCart";
59
+ import fe from "@mui/icons-material/AddTwoTone";
60
+ import pe from "@mui/icons-material/AlternateEmail";
61
+ import me from "@mui/icons-material/ArrowBack";
62
+ import he from "@mui/icons-material/ArrowDropDownTwoTone";
63
+ import ge from "@mui/icons-material/ArrowDropUpTwoTone";
64
+ import _e from "@mui/icons-material/ArrowForward";
65
+ import ve from "@mui/icons-material/ArticleOutlined";
66
+ import q from "@mui/icons-material/ArticleTwoTone";
67
+ import J from "@mui/icons-material/AssessmentTwoTone";
68
+ import ye from "@mui/icons-material/AssignmentOutlined";
69
+ import be from "@mui/icons-material/AssignmentTurnedInTwoTone";
70
+ import xe from "@mui/icons-material/Block";
71
+ import Se from "@mui/icons-material/Cached";
72
+ import Ce from "@mui/icons-material/ChatTwoTone";
73
+ import we from "@mui/icons-material/Check";
74
+ import Te from "@mui/icons-material/ChevronLeft";
75
+ import Ee from "@mui/icons-material/ChevronRight";
76
+ import De from "@mui/icons-material/Clear";
77
+ import Oe from "@mui/icons-material/CloseTwoTone";
78
+ import ke from "@mui/icons-material/Code";
79
+ import Ae from "@mui/icons-material/ContentCopyRounded";
80
+ import je from "@mui/icons-material/ContentCopyTwoTone";
81
+ import Me from "@mui/icons-material/CreateNewFolderTwoTone";
82
+ import Ne from "@mui/icons-material/DashboardOutlined";
83
+ import Pe from "@mui/icons-material/DashboardTwoTone";
84
+ import Fe from "@mui/icons-material/DeleteSweepTwoTone";
85
+ import Ie from "@mui/icons-material/EditTwoTone";
86
+ import Le from "@mui/icons-material/ErrorOutlined";
87
+ import Re from "@mui/icons-material/ExpandLess";
88
+ import ze from "@mui/icons-material/ExpandMore";
89
+ import Be from "@mui/icons-material/FactCheckTwoTone";
90
+ import Ve from "@mui/icons-material/FilterAltTwoTone";
91
+ import He from "@mui/icons-material/FlagTwoTone";
92
+ import Ue from "@mui/icons-material/FolderOutlined";
93
+ import We from "@mui/icons-material/FolderTwoTone";
94
+ import Ge from "@mui/icons-material/FormatBold";
95
+ import Ke from "@mui/icons-material/FormatItalic";
96
+ import qe from "@mui/icons-material/GetAppTwoTone";
97
+ import Je from "@mui/icons-material/GitHub";
98
+ import Ye from "@mui/icons-material/Group";
99
+ import Xe from "@mui/icons-material/HelpOutlined";
100
+ import Ze from "@mui/icons-material/HistoryTwoTone";
101
+ import Qe from "@mui/icons-material/Image";
102
+ import $e from "@mui/icons-material/IndeterminateCheckBoxOutlined";
103
+ import et from "@mui/icons-material/InfoOutlined";
104
+ import tt from "@mui/icons-material/InsertDriveFileOutlined";
105
+ import nt from "@mui/icons-material/InsertDriveFileTwoTone";
106
+ import rt from "@mui/icons-material/LabelTwoTone";
107
+ import it from "@mui/icons-material/LanguageTwoTone";
108
+ import at from "@mui/icons-material/LayersTwoTone";
109
+ import ot from "@mui/icons-material/LinkOffTwoTone";
110
+ import st from "@mui/icons-material/LinkOutlined";
111
+ import ct from "@mui/icons-material/LinkTwoTone";
112
+ import lt from "@mui/icons-material/ListTwoTone";
113
+ import ut from "@mui/icons-material/LockOpenTwoTone";
114
+ import dt from "@mui/icons-material/LockTwoTone";
115
+ import ft from "@mui/icons-material/Login";
116
+ import pt from "@mui/icons-material/MailOutlineTwoTone";
117
+ import mt from "@mui/icons-material/MoreVertTwoTone";
118
+ import ht from "@mui/icons-material/OpenInFull";
119
+ import gt from "@mui/icons-material/OpenInNewTwoTone";
120
+ import Y from "@mui/icons-material/PeopleTwoTone";
121
+ import _t from "@mui/icons-material/PhoneTwoTone";
122
+ import vt from "@mui/icons-material/PhotoCameraOutlined";
123
+ import yt from "@mui/icons-material/PublicTwoTone";
124
+ import bt from "@mui/icons-material/PushPinTwoTone";
125
+ import xt from "@mui/icons-material/QuestionAnswerTwoTone";
126
+ import St from "@mui/icons-material/RadioButtonUncheckedTwoTone";
127
+ import Ct from "@mui/icons-material/RemoveCircleTwoTone";
128
+ import wt from "@mui/icons-material/ReplyTwoTone";
129
+ import Tt from "@mui/icons-material/ReportProblemOutlined";
130
+ import Et from "@mui/icons-material/RestoreFromTrashTwoTone";
131
+ import Dt from "@mui/icons-material/SearchOutlined";
132
+ import Ot from "@mui/icons-material/SearchTwoTone";
133
+ import kt from "@mui/icons-material/ShareTwoTone";
134
+ import At from "@mui/icons-material/ShoppingCartOutlined";
135
+ import X from "@mui/icons-material/Sort";
136
+ import jt from "@mui/icons-material/Star";
137
+ import Mt from "@mui/icons-material/StarOutline";
138
+ import Nt from "@mui/icons-material/StarTwoTone";
139
+ import Pt from "@mui/icons-material/StrikethroughS";
140
+ import Ft from "@mui/icons-material/Subscript";
141
+ import It from "@mui/icons-material/Superscript";
142
+ import Lt from "@mui/icons-material/Support";
143
+ import Rt from "@mui/icons-material/SyncTwoTone";
144
+ import zt from "@mui/icons-material/TableChartOutlined";
145
+ import Bt from "@mui/icons-material/TableChartTwoTone";
146
+ import Vt from "@mui/icons-material/TableRows";
147
+ import Ht from "@mui/icons-material/TableViewOutlined";
148
+ import Z from "@mui/icons-material/TableViewTwoTone";
149
+ import Ut from "@mui/icons-material/Title";
150
+ import Wt from "@mui/icons-material/UploadTwoTone";
151
+ import Gt from "@mui/icons-material/ViewAgendaTwoTone";
152
+ import Kt from "@mui/icons-material/ViewColumnOutlined";
153
+ import qt from "@mui/icons-material/ViewColumnTwoTone";
154
+ import Jt from "@mui/icons-material/VisibilityOffTwoTone";
155
+ import Yt from "@mui/icons-material/VisibilityTwoTone";
156
+ import Xt from "@mui/icons-material/VpnKeyTwoTone";
157
+ import Zt from "@mui/icons-material/WarningTwoTone";
158
+ import Qt from "@mui/icons-material/WatchLater";
52
159
  //#region src/components/IconSvg/IconSvg.tsx
53
160
  var Q = /* @__PURE__ */ "accessOpen.accessPending.accessPendingCloud.accessClosed.actionKey.arrowBack.arrowForward.arrowDropUp.arrowDropDown.article.cards.check.clear.cart.clock.code.columns.columnsOutlined.openInNewWindow.dashboard.dashboardOutlined.delete.deleteSweep.filter.addToCart.addCircleOutline.addCircleTwoTone.reload.team.photoCamera.info.favTwoTone.favOutline.fav.peopleTwoTone.challengesTwoTone.download.searchOutlined.search.history.time.login.helpChatBubble.helpOutlined.helpOutlineTwoTone.expandLess.expandMore.rat.chromatin.clinical.contentCopy.contentCopyRounded.fileCopy.data.dataLocked.geneExpression.geneVariants.github.imaging.inSilicoModel.modelSystem.bioChemicalPhysical.computationalTool.spatialProfiling.dataReuse.lineGraph.kinomics.proteomics.packagableFile.unpackagableFile.other.wiki.file.fileOutlined.folder.folderOutlined.link.linkOff.linkOutlined.table.tableOutlined.tableRows.share.public.people.entityview.submissionview.submissionviewOutlined.challenge.discussion.dataset.datasetcollection.docker.accountCertified.accountRegistered.accountValidated.warningOutlined.removeCircle.replyTwoTone.chatTwoTone.accessManagement.chevronRight.chevronLeft.database.close.cross.verticalEllipsis.support.sync.clipboard.clipboardCheck.add.warning.circle.block.checkCircle.errorOutlined.phone.pushpin.addBoxOutline.minusBoxOutline.italic.bold.title.visibility.visibilityOff.strikethrough.subscript.superscript.latex.image.edit.tag.restore.label.upload.flag.newFolder.createVersion.email.addConditions.sortUp.sortDown.nih.orcid.tasks.google24.openInFull.tableview.tableviewOutlined.fileWithShield.baseline.rosetteRibbon.starTrophy.awardScroll.clappingHands.podium.openBook.handWithMoney.threeStars.multiFile.publicVisibility.openVisibility.privateVisibility".split(".");
54
161
  function $(B) {
@@ -61,38 +168,38 @@ function $(B) {
61
168
  case "accessClosed": return /* @__PURE__ */ H(Xt, { ...$ });
62
169
  case "accessPending": return /* @__PURE__ */ H(t, { ...$ });
63
170
  case "accessPendingCloud": return /* @__PURE__ */ H(n, { ...$ });
64
- case "add": return /* @__PURE__ */ H(le, { ...$ });
65
- case "addConditions": return /* @__PURE__ */ H(ze, { ...$ });
171
+ case "add": return /* @__PURE__ */ H(fe, { ...$ });
172
+ case "addConditions": return /* @__PURE__ */ H(Be, { ...$ });
66
173
  case "actionKey": return /* @__PURE__ */ H(g, { ...$ });
67
- case "arrowBack": return /* @__PURE__ */ H(de, { ...$ });
68
- case "arrowForward": return /* @__PURE__ */ H(me, { ...$ });
69
- case "arrowDropUp": return /* @__PURE__ */ H(pe, { ...$ });
70
- case "arrowDropDown": return /* @__PURE__ */ H(fe, { ...$ });
174
+ case "arrowBack": return /* @__PURE__ */ H(me, { ...$ });
175
+ case "arrowForward": return /* @__PURE__ */ H(_e, { ...$ });
176
+ case "arrowDropUp": return /* @__PURE__ */ H(ge, { ...$ });
177
+ case "arrowDropDown": return /* @__PURE__ */ H(he, { ...$ });
71
178
  case "article": return /* @__PURE__ */ H(q, { ...$ });
72
- case "block": return /* @__PURE__ */ H(ve, { ...$ });
73
- case "check": return /* @__PURE__ */ H(xe, { ...$ });
74
- case "clear": return /* @__PURE__ */ H(Te, { ...$ });
179
+ case "block": return /* @__PURE__ */ H(xe, { ...$ });
180
+ case "check": return /* @__PURE__ */ H(we, { ...$ });
181
+ case "clear": return /* @__PURE__ */ H(De, { ...$ });
75
182
  case "cart": return /* @__PURE__ */ H(At, { ...$ });
76
183
  case "cards": return /* @__PURE__ */ H(Gt, { ...$ });
77
- case "clock": return /* @__PURE__ */ H(U, { ...$ });
78
- case "code": return /* @__PURE__ */ H(De, { ...$ });
184
+ case "clock": return /* @__PURE__ */ H(ce, { ...$ });
185
+ case "code": return /* @__PURE__ */ H(ke, { ...$ });
79
186
  case "columns": return /* @__PURE__ */ H(qt, { ...$ });
80
187
  case "columnsOutlined": return /* @__PURE__ */ H(Kt, { ...$ });
81
188
  case "circle": return /* @__PURE__ */ H(St, { ...$ });
82
- case "checkCircle": return /* @__PURE__ */ H(Se, { ...$ });
189
+ case "checkCircle": return /* @__PURE__ */ H(U, { ...$ });
83
190
  case "createVersion": return /* @__PURE__ */ H(o, { ...$ });
84
- case "dashboard": return /* @__PURE__ */ H(Me, { ...$ });
85
- case "dashboardOutlined": return /* @__PURE__ */ H(je, { ...$ });
86
- case "delete": return /* @__PURE__ */ H(Pe, { ...$ });
87
- case "deleteSweep": return /* @__PURE__ */ H(Ne, { ...$ });
191
+ case "dashboard": return /* @__PURE__ */ H(Pe, { ...$ });
192
+ case "dashboardOutlined": return /* @__PURE__ */ H(Ne, { ...$ });
193
+ case "delete": return /* @__PURE__ */ H(K, { ...$ });
194
+ case "deleteSweep": return /* @__PURE__ */ H(Fe, { ...$ });
88
195
  case "openInNewWindow": return /* @__PURE__ */ H(gt, { ...$ });
89
196
  case "phone": return /* @__PURE__ */ H(_t, { ...$ });
90
197
  case "people": return /* @__PURE__ */ H(Y, { ...$ });
91
- case "addToCart": return /* @__PURE__ */ H(ce, { ...$ });
92
- case "addCircleOutline": return /* @__PURE__ */ H(G, { ...$ });
93
- case "addCircleTwoTone": return /* @__PURE__ */ H(K, { ...$ });
94
- case "reload": return /* @__PURE__ */ H(ye, { ...$ });
95
- case "team": return /* @__PURE__ */ H(Je, { ...$ });
198
+ case "addToCart": return /* @__PURE__ */ H(de, { ...$ });
199
+ case "addCircleOutline": return /* @__PURE__ */ H(ue, { ...$ });
200
+ case "addCircleTwoTone": return /* @__PURE__ */ H(G, { ...$ });
201
+ case "reload": return /* @__PURE__ */ H(Se, { ...$ });
202
+ case "team": return /* @__PURE__ */ H(Ye, { ...$ });
96
203
  case "photoCamera": return /* @__PURE__ */ H(vt, { ...$ });
97
204
  case "verticalEllipsis": return /* @__PURE__ */ H(mt, { ...$ });
98
205
  case "sync": return /* @__PURE__ */ H(Rt, { ...$ });
@@ -101,34 +208,34 @@ function $(B) {
101
208
  case "public":
102
209
  case "openVisibility": return /* @__PURE__ */ H(yt, { ...$ });
103
210
  case "privateVisibility": return /* @__PURE__ */ H(dt, { ...$ });
104
- case "clipboard": return /* @__PURE__ */ H(ge, { ...$ });
105
- case "clipboardCheck": return /* @__PURE__ */ H(_e, { ...$ });
211
+ case "clipboard": return /* @__PURE__ */ H(ye, { ...$ });
212
+ case "clipboardCheck": return /* @__PURE__ */ H(be, { ...$ });
106
213
  case "info": return /* @__PURE__ */ H(et, { ...$ });
107
214
  case "favTwoTone": return /* @__PURE__ */ H(Nt, { ...$ });
108
215
  case "favOutline": return /* @__PURE__ */ H(Mt, { ...$ });
109
216
  case "fav": return /* @__PURE__ */ H(jt, { ...$ });
110
- case "github": return /* @__PURE__ */ H(qe, { ...$ });
217
+ case "github": return /* @__PURE__ */ H(Je, { ...$ });
111
218
  case "peopleTwoTone": return /* @__PURE__ */ H(Y, { ...$ });
112
219
  case "challengesTwoTone": return /* @__PURE__ */ H(J, { ...$ });
113
- case "download": return /* @__PURE__ */ H(Ke, { ...$ });
114
- case "errorOutlined": return /* @__PURE__ */ H(Ie, { ...$ });
220
+ case "download": return /* @__PURE__ */ H(qe, { ...$ });
221
+ case "errorOutlined": return /* @__PURE__ */ H(Le, { ...$ });
115
222
  case "searchOutlined": return /* @__PURE__ */ H(Dt, { ...$ });
116
223
  case "search": return /* @__PURE__ */ H(Ot, { ...$ });
117
224
  case "history": return /* @__PURE__ */ H(Ze, { ...$ });
118
225
  case "time": return /* @__PURE__ */ H(Qt, { ...$ });
119
226
  case "login": return /* @__PURE__ */ H(ft, { ...$ });
120
227
  case "helpChatBubble": return /* @__PURE__ */ H(k, { ...$ });
121
- case "helpOutlineTwoTone": return /* @__PURE__ */ H(Ye, { ...$ });
228
+ case "helpOutlineTwoTone": return /* @__PURE__ */ H(W, { ...$ });
122
229
  case "helpOutlined": return /* @__PURE__ */ H(Xe, { ...$ });
123
230
  case "close":
124
- case "cross": return /* @__PURE__ */ H(Ee, { ...$ });
125
- case "expandLess": return /* @__PURE__ */ H(Le, { ...$ });
126
- case "expandMore": return /* @__PURE__ */ H(Re, { ...$ });
231
+ case "cross": return /* @__PURE__ */ H(Oe, { ...$ });
232
+ case "expandLess": return /* @__PURE__ */ H(Re, { ...$ });
233
+ case "expandMore": return /* @__PURE__ */ H(ze, { ...$ });
127
234
  case "rat": return /* @__PURE__ */ H(R, { ...$ });
128
235
  case "chromatin": return /* @__PURE__ */ H(v, { ...$ });
129
236
  case "clinical": return /* @__PURE__ */ H(y, { ...$ });
130
- case "contentCopy": return /* @__PURE__ */ H(ke, { ...$ });
131
- case "contentCopyRounded": return /* @__PURE__ */ H(Oe, { ...$ });
237
+ case "contentCopy": return /* @__PURE__ */ H(je, { ...$ });
238
+ case "contentCopyRounded": return /* @__PURE__ */ H(Ae, { ...$ });
132
239
  case "fileCopy": return /* @__PURE__ */ H(c, { ...$ });
133
240
  case "data": return /* @__PURE__ */ H(x, { ...$ });
134
241
  case "dataLocked": return /* @__PURE__ */ H(S, { ...$ });
@@ -154,9 +261,9 @@ function $(B) {
154
261
  case "publicVisibility": return /* @__PURE__ */ H(it, { ...$ });
155
262
  case "file": return /* @__PURE__ */ H(nt, { ...$ });
156
263
  case "fileOutlined": return /* @__PURE__ */ H(tt, { ...$ });
157
- case "folder": return /* @__PURE__ */ H(Ue, { ...$ });
158
- case "folderOutlined": return /* @__PURE__ */ H(He, { ...$ });
159
- case "newFolder": return /* @__PURE__ */ H(Ae, { ...$ });
264
+ case "folder": return /* @__PURE__ */ H(We, { ...$ });
265
+ case "folderOutlined": return /* @__PURE__ */ H(Ue, { ...$ });
266
+ case "newFolder": return /* @__PURE__ */ H(Me, { ...$ });
160
267
  case "link": return /* @__PURE__ */ H(ct, { ...$ });
161
268
  case "linkOff": return /* @__PURE__ */ H(ot, { ...$ });
162
269
  case "linkOutlined": return /* @__PURE__ */ H(st, { ...$ });
@@ -166,7 +273,7 @@ function $(B) {
166
273
  case "tableViewOutlined": return /* @__PURE__ */ H(Ht, { ...$ });
167
274
  case "entityview": return /* @__PURE__ */ H(lt, { ...$ });
168
275
  case "submissionview": return /* @__PURE__ */ H(q, { ...$ });
169
- case "submissionviewOutlined": return /* @__PURE__ */ H(he, { ...$ });
276
+ case "submissionviewOutlined": return /* @__PURE__ */ H(ve, { ...$ });
170
277
  case "challenge": return /* @__PURE__ */ H(J, { ...$ });
171
278
  case "discussion": return /* @__PURE__ */ H(xt, { ...$ });
172
279
  case "dataset": return /* @__PURE__ */ H(w, { ...$ });
@@ -180,15 +287,15 @@ function $(B) {
180
287
  case "warning": return /* @__PURE__ */ H(Zt, { ...$ });
181
288
  case "removeCircle": return /* @__PURE__ */ H(Ct, { ...$ });
182
289
  case "replyTwoTone": return /* @__PURE__ */ H(wt, { ...$ });
183
- case "chatTwoTone": return /* @__PURE__ */ H(be, { ...$ });
290
+ case "chatTwoTone": return /* @__PURE__ */ H(Ce, { ...$ });
184
291
  case "accessManagement": return /* @__PURE__ */ H(se, { ...$ });
185
- case "chevronRight": return /* @__PURE__ */ H(we, { ...$ });
186
- case "chevronLeft": return /* @__PURE__ */ H(Ce, { ...$ });
292
+ case "chevronRight": return /* @__PURE__ */ H(Ee, { ...$ });
293
+ case "chevronLeft": return /* @__PURE__ */ H(Te, { ...$ });
187
294
  case "pushpin": return /* @__PURE__ */ H(bt, { ...$ });
188
- case "addBoxOutline": return /* @__PURE__ */ H(W, { ...$ });
295
+ case "addBoxOutline": return /* @__PURE__ */ H(le, { ...$ });
189
296
  case "minusBoxOutline": return /* @__PURE__ */ H($e, { ...$ });
190
- case "italic": return /* @__PURE__ */ H(Ge, { ...$ });
191
- case "bold": return /* @__PURE__ */ H(We, { ...$ });
297
+ case "italic": return /* @__PURE__ */ H(Ke, { ...$ });
298
+ case "bold": return /* @__PURE__ */ H(Ge, { ...$ });
192
299
  case "title": return /* @__PURE__ */ H(Ut, { ...$ });
193
300
  case "visibility": return /* @__PURE__ */ H(Yt, { ...$ });
194
301
  case "visibilityOff": return /* @__PURE__ */ H(Jt, { ...$ });
@@ -198,12 +305,12 @@ function $(B) {
198
305
  case "superscript": return /* @__PURE__ */ H(It, { ...$ });
199
306
  case "support": return /* @__PURE__ */ H(Lt, { ...$ });
200
307
  case "subscript": return /* @__PURE__ */ H(Ft, { ...$ });
201
- case "edit": return /* @__PURE__ */ H(Fe, { ...$ });
202
- case "tag": return /* @__PURE__ */ H(ue, { ...$ });
308
+ case "edit": return /* @__PURE__ */ H(Ie, { ...$ });
309
+ case "tag": return /* @__PURE__ */ H(pe, { ...$ });
203
310
  case "restore": return /* @__PURE__ */ H(Et, { ...$ });
204
311
  case "label": return /* @__PURE__ */ H(rt, { ...$ });
205
312
  case "upload": return /* @__PURE__ */ H(Wt, { ...$ });
206
- case "flag": return /* @__PURE__ */ H(Ve, { ...$ });
313
+ case "flag": return /* @__PURE__ */ H(He, { ...$ });
207
314
  case "email": return /* @__PURE__ */ H(pt, { ...$ });
208
315
  case "sortUp": return /* @__PURE__ */ H(X, {
209
316
  ...$,
@@ -217,7 +324,7 @@ function $(B) {
217
324
  case "nih": return /* @__PURE__ */ H(f, { ...$ });
218
325
  case "orcid": return /* @__PURE__ */ H(ee, { ...$ });
219
326
  case "tasks": return /* @__PURE__ */ H(ae, { ...$ });
220
- case "filter": return /* @__PURE__ */ H(Be, { ...$ });
327
+ case "filter": return /* @__PURE__ */ H(Ve, { ...$ });
221
328
  case "openInFull": return /* @__PURE__ */ H(ht, { ...$ });
222
329
  case "fileWithShield": return /* @__PURE__ */ H(s, { ...$ });
223
330
  case "baseline": return /* @__PURE__ */ H(i, { ...$ });