synapse-react-client 4.0.46 → 4.0.48

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 (559) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
  3. package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
  4. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
  5. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  6. package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
  7. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  8. package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
  9. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  10. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  11. package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
  12. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  13. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
  14. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
  15. package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
  16. package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
  17. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
  18. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
  19. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
  20. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  21. package/dist/components/Authentication/LastLoginInfo.js +2 -2
  22. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  23. package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
  24. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  25. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  26. package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
  27. package/dist/components/Authentication/TOTPForm.js +3 -3
  28. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  29. package/dist/components/Authentication/index.d.ts +6 -6
  30. package/dist/components/Authentication/index.d.ts.map +1 -1
  31. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
  32. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  33. package/dist/components/CardContainer/CardContainer.js +7 -7
  34. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  35. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
  36. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  37. package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
  38. package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
  39. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  40. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +1 -1
  41. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  42. package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
  43. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  44. package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
  45. package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
  46. package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
  47. package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
  48. package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
  49. package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
  50. package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
  51. package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
  52. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
  53. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
  54. package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
  55. package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
  56. package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
  57. package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
  58. package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
  59. package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
  60. package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
  61. package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
  62. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  63. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  64. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  65. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
  66. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  67. package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
  68. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  69. package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
  70. package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
  71. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
  72. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
  73. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
  74. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
  75. package/dist/components/DataGrid/components/contextMenu.js +3 -3
  76. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  77. package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
  78. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +9 -7
  79. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  80. package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
  81. package/dist/components/DataGrid/hooks/useStack.js +2 -2
  82. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  83. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  84. package/dist/components/DataGrid/utils/columnFactory.js +47 -42
  85. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  86. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
  87. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  88. package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
  89. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  90. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +1 -1
  91. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  92. package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
  93. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  94. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
  95. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  96. package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
  97. package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
  98. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  99. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
  100. package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
  101. package/dist/components/EntityHeaderTable/Filter.js +1 -1
  102. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  103. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  104. package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
  105. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
  106. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  107. package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
  108. package/dist/components/FormTemplateEditor/StepCard.js +9 -9
  109. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
  110. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
  111. package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
  112. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  113. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +1 -1
  114. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
  115. package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
  116. package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
  117. package/dist/components/GenericCard/TableRowGenericCard.js +37 -37
  118. package/dist/components/GoalsV3/GoalsV3.js +1 -1
  119. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  120. package/dist/components/HexGrid/HexGrid.d.ts +3 -1
  121. package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
  122. package/dist/components/HexGrid/HexGrid.js +14 -13
  123. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  124. package/dist/components/IconSvg/index.d.ts +1 -1
  125. package/dist/components/IconSvg/index.d.ts.map +1 -1
  126. package/dist/components/IconSvg/index.js.map +1 -1
  127. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
  128. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
  129. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  130. package/dist/components/Markdown/MarkdownEditor.js +1 -1
  131. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  132. package/dist/components/Markdown/widget/index.d.ts +1 -1
  133. package/dist/components/Markdown/widget/index.d.ts.map +1 -1
  134. package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
  135. package/dist/components/ModalDownload/ModalDownload.js +2 -1
  136. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  137. package/dist/components/Plot/BarPlot.js +1 -1
  138. package/dist/components/Plot/BarPlot.js.map +1 -1
  139. package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
  140. package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
  141. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  142. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
  143. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  144. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
  145. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  146. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  147. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
  148. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  149. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
  150. package/dist/components/QueryBuilder/FilterConditionRow.js +28 -27
  151. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
  152. package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
  153. package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
  154. package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
  155. package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
  156. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
  157. package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
  158. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
  159. package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
  160. package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
  161. package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
  162. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
  163. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
  164. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
  165. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
  166. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
  167. package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
  168. package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
  169. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
  170. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
  171. package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
  172. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
  173. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
  174. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
  175. package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
  176. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
  177. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
  178. package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
  179. package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
  180. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
  181. package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
  182. package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
  183. package/dist/components/QuerySortSelector.js +5 -5
  184. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
  185. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  186. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
  187. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
  188. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
  189. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
  190. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
  191. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
  192. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
  193. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  194. package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
  195. package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
  196. package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
  197. package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
  198. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
  199. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
  200. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
  201. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
  202. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
  203. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
  204. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
  205. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  206. package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
  207. package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
  208. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  209. package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
  210. package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
  211. package/dist/components/QueryWrapperErrorBoundary.js +26 -21
  212. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  213. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
  214. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
  215. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  216. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
  217. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  218. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
  219. package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
  220. package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
  221. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  222. package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
  223. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
  224. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
  225. package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
  226. package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
  227. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
  228. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
  229. package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
  230. package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
  231. package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
  232. package/dist/components/RowDataTable/RowDataTable.js +25 -8
  233. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  234. package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
  235. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  236. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
  237. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
  238. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  239. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
  240. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  241. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
  242. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  243. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
  244. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  245. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
  246. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  247. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
  248. package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
  249. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  250. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  251. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  252. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
  253. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  254. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
  255. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
  256. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  257. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
  258. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
  259. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  260. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
  261. package/dist/components/SynapseTable/SqlEditor.js +7 -7
  262. package/dist/components/SynapseTable/SynapseTable.js +8 -8
  263. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  264. package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
  265. package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
  266. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  267. package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
  268. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  269. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  270. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
  271. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  272. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
  273. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  274. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
  275. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +142 -142
  276. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  277. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
  278. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
  279. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  280. package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
  281. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
  282. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
  283. package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
  284. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  285. package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
  286. package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
  287. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  288. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  289. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  290. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
  291. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  292. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
  293. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  294. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +60 -60
  295. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  296. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
  297. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  298. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
  299. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  300. package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
  301. package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
  302. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  303. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  304. package/dist/components/TotalQueryResults.js +14 -14
  305. package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
  306. package/dist/components/Webhook/WebhookDashboard.js +2 -2
  307. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  308. package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
  309. package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
  310. package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
  311. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  312. package/dist/components/error/ErrorBanner.d.ts.map +1 -1
  313. package/dist/components/error/ErrorBanner.js +49 -46
  314. package/dist/components/error/ErrorBanner.js.map +1 -1
  315. package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
  316. package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
  317. package/dist/components/row_renderers/Dataset.js +6 -6
  318. package/dist/components/row_renderers/Dataset.js.map +1 -1
  319. package/dist/components/row_renderers/Funder.js +1 -1
  320. package/dist/components/row_renderers/Funder.js.map +1 -1
  321. package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
  322. package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
  323. package/dist/components/widgets/ElementWithTooltip.js +22 -14
  324. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  325. package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
  326. package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
  327. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  328. package/dist/components/widgets/SynapseImage.js +1 -1
  329. package/dist/components/widgets/SynapseImage.js.map +1 -1
  330. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
  331. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  332. package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
  333. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  334. package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
  335. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
  336. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  337. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
  338. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  339. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
  340. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
  341. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  342. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
  343. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  344. package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
  345. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  346. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
  347. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
  348. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  349. package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
  350. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  351. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
  352. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
  353. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  354. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
  355. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  356. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
  357. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
  358. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
  359. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  360. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
  361. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
  362. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
  363. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  364. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
  365. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
  366. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  367. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
  368. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
  369. package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
  370. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  371. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
  372. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
  373. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  374. package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
  375. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
  376. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
  377. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
  378. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
  379. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
  380. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
  381. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
  382. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
  383. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
  384. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
  385. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
  386. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
  387. package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
  388. package/dist/mocks/mockAnnotationColumns.js +1 -1
  389. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  390. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +9 -0
  391. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  392. package/dist/mocks/msw/handlers/aridhiaHandlers.js +24 -15
  393. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  394. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
  395. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
  396. package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
  397. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  398. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
  399. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
  400. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
  401. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
  402. package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
  403. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  404. package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
  405. package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
  406. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  407. package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
  408. package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
  409. package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
  410. package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
  411. package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
  412. package/dist/stories/ColorPaletteInspector.js +2 -2
  413. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  414. package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
  415. package/dist/style/main.css +1 -1
  416. package/dist/synapse-queries/auth/useOIDC.js +2 -2
  417. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  418. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
  419. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
  420. package/dist/synapse-queries/challenge/useChallenge.js +2 -2
  421. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  422. package/dist/synapse-queries/chat/useChat.js +8 -8
  423. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  424. package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
  425. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  426. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
  427. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  428. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
  429. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  430. package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
  431. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  432. package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
  433. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  434. package/dist/synapse-queries/download/index.js +2 -2
  435. package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
  436. package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
  437. package/dist/synapse-queries/download/useDownloadList.js +14 -13
  438. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  439. package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
  440. package/dist/synapse-queries/entity/useEntity.js +20 -20
  441. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  442. package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
  443. package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
  444. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  445. package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
  446. package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
  447. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  448. package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
  449. package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
  450. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  451. package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
  452. package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
  453. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  454. package/dist/synapse-queries/forum/useReply.js +6 -6
  455. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  456. package/dist/synapse-queries/forum/useThread.js +14 -14
  457. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  458. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  459. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  460. package/dist/synapse-queries/grid/useGridSession.js +4 -4
  461. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  462. package/dist/synapse-queries/index.js +177 -176
  463. package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
  464. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  465. package/dist/synapse-queries/portal/usePortal.js +7 -7
  466. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  467. package/dist/synapse-queries/subscription/useSubscription.js +4 -4
  468. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  469. package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
  470. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  471. package/dist/synapse-queries/team/useTeam.js +2 -2
  472. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  473. package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
  474. package/dist/synapse-queries/team/useTeamList.js +3 -3
  475. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  476. package/dist/synapse-queries/team/useTeamMembers.js +8 -8
  477. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  478. package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
  479. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  480. package/dist/synapse-queries/trash/useTrashCan.js +4 -4
  481. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  482. package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
  483. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  484. package/dist/synapse-queries/user/useFavorites.js +4 -4
  485. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  486. package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
  487. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  488. package/dist/synapse-queries/wiki/useWiki.js +10 -10
  489. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  490. package/dist/tsconfig.build.tsbuildinfo +1 -1
  491. package/dist/utils/ContentTypeUtils.js +4 -4
  492. package/dist/utils/ContentTypeUtils.js.map +1 -1
  493. package/dist/utils/PermissionLevelToAccessType.js +1 -1
  494. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  495. package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
  496. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  497. package/dist/utils/context/DocumentMetadataContext.js +1 -1
  498. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  499. package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
  500. package/dist/utils/functions/AccessControlListUtils.js +3 -3
  501. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  502. package/dist/utils/functions/ArrayUtils.js +2 -2
  503. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  504. package/dist/utils/functions/FileHandleUtils.js +1 -1
  505. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  506. package/dist/utils/functions/RegularExpressions.js +1 -1
  507. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  508. package/dist/utils/functions/StringUtils.d.ts.map +1 -1
  509. package/dist/utils/functions/StringUtils.js +1 -2
  510. package/dist/utils/functions/StringUtils.js.map +1 -1
  511. package/dist/utils/functions/deepLinkingUtils.js +2 -2
  512. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  513. package/dist/utils/functions/enumerationFacet.d.ts +26 -0
  514. package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
  515. package/dist/utils/functions/enumerationFacet.js +27 -0
  516. package/dist/utils/functions/enumerationFacet.js.map +1 -0
  517. package/dist/utils/functions/facetCountUtils.d.ts +12 -0
  518. package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
  519. package/dist/utils/functions/facetCountUtils.js +9 -0
  520. package/dist/utils/functions/facetCountUtils.js.map +1 -0
  521. package/dist/utils/functions/getEndpoint.js.map +1 -1
  522. package/dist/utils/functions/getUserData.js +1 -1
  523. package/dist/utils/functions/getUserData.js.map +1 -1
  524. package/dist/utils/functions/queryUtils.d.ts +1 -1
  525. package/dist/utils/functions/queryUtils.d.ts.map +1 -1
  526. package/dist/utils/functions/queryUtils.js +26 -22
  527. package/dist/utils/functions/queryUtils.js.map +1 -1
  528. package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
  529. package/dist/utils/functions/testDownloadSpeed.js +17 -26
  530. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  531. package/dist/utils/functions/unCamelCase.js +1 -1
  532. package/dist/utils/functions/unCamelCase.js.map +1 -1
  533. package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
  534. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  535. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
  536. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  537. package/dist/utils/hooks/useLogin.d.ts.map +1 -1
  538. package/dist/utils/hooks/useLogin.js +5 -5
  539. package/dist/utils/hooks/useLogin.js.map +1 -1
  540. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  541. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
  542. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
  543. package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
  544. package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
  545. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
  546. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
  547. package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
  548. package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
  549. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
  550. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
  551. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
  552. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  553. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
  554. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
  555. package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
  556. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  557. package/dist/utils/jsonschema/submissionContext.js +2 -2
  558. package/dist/utils/jsonschema/submissionContext.js.map +1 -1
  559. package/package.json +4 -4
@@ -1,11 +1,11 @@
1
- import { SynapseErrorBoundary as e } from "./error/ErrorBanner.js";
2
- import { SkeletonInlineBlock as t } from "./Skeleton/SkeletonInlineBlock.js";
1
+ import { useQueryVisualizationContext as e } from "./QueryVisualizationWrapper/QueryVisualizationContext.js";
2
+ import { SynapseErrorBoundary as t } from "./error/ErrorBanner.js";
3
+ import { SkeletonInlineBlock as n } from "./Skeleton/SkeletonInlineBlock.js";
3
4
  import "./Skeleton/index.js";
4
- import n from "./IconSvg/IconSvg.js";
5
- import { useQueryContext as r } from "./QueryContext/QueryContext.js";
5
+ import r from "./IconSvg/IconSvg.js";
6
+ import { useQueryContext as i } from "./QueryContext/QueryContext.js";
6
7
  import "./QueryContext/index.js";
7
- import { useSuspenseGetQueryMetadata as i } from "./QueryWrapper/useGetQueryMetadata.js";
8
- import { useQueryVisualizationContext as a } from "./QueryVisualizationWrapper/QueryVisualizationContext.js";
8
+ import { useSuspenseGetQueryMetadata as a } from "./QueryWrapper/useGetQueryMetadata.js";
9
9
  import "./QueryVisualizationWrapper/index.js";
10
10
  import "./error/index.js";
11
11
  import o from "./widgets/facet-nav/SelectionCriteriaPills.js";
@@ -13,11 +13,11 @@ import { Suspense as s } from "react";
13
13
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
14
14
  import u from "pluralize";
15
15
  //#region src/components/TotalQueryResults.tsx
16
- function d(e) {
17
- let { style: t, frontText: s, endText: d = "", hideIfUnfiltered: f = !1 } = e, { resetQuery: p, hasResettableFilters: m } = r(), { data: h } = i(), { unitDescription: g } = a(), _ = h?.queryCount, v = m;
16
+ function d(t) {
17
+ let { style: n, frontText: s, endText: d = "", hideIfUnfiltered: f = !1 } = t, { resetQuery: p, hasResettableFilters: m } = i(), { data: h } = a(), { unitDescription: g } = e(), _ = h?.queryCount, v = m;
18
18
  return /* @__PURE__ */ l("div", {
19
19
  className: `TotalQueryResults ${m ? "hasFilters" : ""}`,
20
- style: t,
20
+ style: n,
21
21
  children: [(m || !f) && /* @__PURE__ */ l("div", {
22
22
  className: "TotalQueryResults__topbar",
23
23
  children: [/* @__PURE__ */ l("span", {
@@ -34,7 +34,7 @@ function d(e) {
34
34
  }), v && /* @__PURE__ */ l("a", {
35
35
  onClick: p,
36
36
  className: "TotalQueryResults__topbar__clearall",
37
- children: [/* @__PURE__ */ c(n, { icon: "deleteSweep" }), "Clear all filters"]
37
+ children: [/* @__PURE__ */ c(r, { icon: "deleteSweep" }), "Clear all filters"]
38
38
  })]
39
39
  }), /* @__PURE__ */ c("div", {
40
40
  className: "TotalQueryResults__selections",
@@ -42,10 +42,10 @@ function d(e) {
42
42
  })]
43
43
  });
44
44
  }
45
- function f(n) {
46
- return /* @__PURE__ */ c(e, { children: /* @__PURE__ */ c(s, {
47
- fallback: /* @__PURE__ */ c(t, { width: 100 }),
48
- children: /* @__PURE__ */ c(d, { ...n })
45
+ function f(e) {
46
+ return /* @__PURE__ */ c(t, { children: /* @__PURE__ */ c(s, {
47
+ fallback: /* @__PURE__ */ c(n, { width: 100 }),
48
+ children: /* @__PURE__ */ c(d, { ...e })
49
49
  }) });
50
50
  }
51
51
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"names":[],"mappings":"AAgLA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAwJvC"}
1
+ {"version":3,"file":"WebhookDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"names":[],"mappings":"AA8KA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAwJvC"}
@@ -16,7 +16,7 @@ import D from "@mui/icons-material/AddCircleTwoTone";
16
16
  import O from "dayjs";
17
17
  import { createColumnHelper as k, getCoreRowModel as A, useReactTable as j } from "@tanstack/react-table";
18
18
  //#region src/components/Webhook/WebhookDashboard.tsx
19
- var M = [E.FAILED, E.REVOKED], N = k();
19
+ var M = new Set([E.FAILED, E.REVOKED]), N = k();
20
20
  function P(i, a, o) {
21
21
  return [
22
22
  N.accessor("id", {
@@ -85,7 +85,7 @@ function P(i, a, o) {
85
85
  },
86
86
  children: "Verify code"
87
87
  }),
88
- M.includes(e.row.original.verificationStatus) && /* @__PURE__ */ C(g, {
88
+ M.has(e.row.original.verificationStatus) && /* @__PURE__ */ C(g, {
89
89
  variant: "outlined",
90
90
  onClick: () => {
91
91
  a(e.row.original);
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookDashboard.js","names":[],"sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport {\n useGetWebhooksInfinite,\n useResendVerificationCode,\n} from '@/synapse-queries/webhook/useWebhook'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport AddCircleTwoTone from '@mui/icons-material/AddCircleTwoTone'\nimport {\n Box,\n Button,\n Link,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport {\n SynapseObjectType,\n Webhook,\n WebhookVerificationStatus,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { upperFirst } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport CreateWebhookModal from './CreateWebhookModal'\nimport { WebhookVerificationDialog } from './WebhookVerificationDialog'\n\nconst WEBHOOK_CAN_RESEND_CODE_STATES: WebhookVerificationStatus[] = [\n WebhookVerificationStatus.FAILED,\n WebhookVerificationStatus.REVOKED,\n]\n\nconst columnHelper = createColumnHelper<Webhook>()\n\nfunction getWebhookTableColumns(\n onClickVerifyWebhook: (webhook: Webhook) => void,\n onClickResendVerificationCode: (webhook: Webhook) => void,\n onClickEditWebhook: (webhook: Webhook) => void,\n) {\n return [\n columnHelper.accessor('id', {\n header: 'ID',\n size: 75,\n cell: ctx => ctx.cell.getValue(),\n }),\n columnHelper.display({\n header: 'Object',\n cell: ctx => {\n if (ctx.row.original.objectType === SynapseObjectType.ENTITY) {\n return (\n <>\n <EntityLink entity={ctx.row.original.objectId!} /> (syn\n {ctx.row.original.objectId})\n </>\n )\n }\n return `${ctx.row.original.objectType}: ${ctx.row.original.objectId}`\n },\n }),\n columnHelper.accessor('eventTypes', {\n header: 'Event Type(s)',\n cell: ctx => (\n <Stack>\n {Array.from<string>(ctx.cell.getValue()!)\n .map(s => s.toLowerCase())\n .map(upperFirst)\n .map(val => (\n <span key={val}>{val}</span>\n ))}\n </Stack>\n ),\n }),\n columnHelper.accessor('isEnabled', {\n header: 'Enabled',\n size: 10,\n cell: ctx => (ctx.cell.getValue() ? 'Yes' : 'No'),\n }),\n columnHelper.accessor('createdOn', {\n header: 'Created On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('modifiedOn', {\n header: 'Modified On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('verificationStatus', {\n header: 'Verification Status',\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: 1,\n }}\n >\n {ctx.row.original.verificationStatus === 'PENDING' && (\n // useEffect above will trigger a refetch until this resolves\n <SynapseSpinner size={20} />\n )}\n {ctx.row.original.verificationStatus !==\n WebhookVerificationStatus.PENDING &&\n upperFirst(\n (ctx.row.original.verificationStatus || '')\n .toLowerCase()\n .replaceAll('_', ' '),\n )}\n {ctx.row.original.verificationMsg && (\n <HelpPopover markdownText={ctx.row.original.verificationMsg} />\n )}\n </Stack>\n ),\n }),\n columnHelper.display({\n id: 'actions',\n header: 'Actions',\n size: 10,\n meta: {\n textAlign: 'right',\n },\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: 2,\n }}\n >\n {ctx.row.original.verificationStatus ===\n WebhookVerificationStatus.CODE_SENT && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickVerifyWebhook(ctx.row.original)\n }}\n >\n Verify code\n </Button>\n )}\n\n {WEBHOOK_CAN_RESEND_CODE_STATES.includes(\n ctx.row.original.verificationStatus as WebhookVerificationStatus,\n ) && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickResendVerificationCode(ctx.row.original)\n }}\n >\n Resend code\n </Button>\n )}\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={() => {\n onClickEditWebhook(ctx.row.original)\n }}\n >\n Edit\n </Button>\n </Stack>\n ),\n }),\n ]\n}\n\nexport default function WebhookDashboard() {\n const [showCreateModal, setShowCreateModal] = useState(false)\n const [showVerificationDialog, setShowVerificationDialog] = useState(false)\n const [webhookToUpdate, setWebhookToUpdate] = useState<Webhook | undefined>(\n undefined,\n )\n\n const theme = useTheme()\n const hideOptionalColumns = useMediaQuery(theme.breakpoints.down('md'))\n\n const {\n data: infiniteData,\n refetch,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n isLoading,\n } = useGetWebhooksInfinite()\n const webhooks = useMemo(\n () => infiniteData?.pages.flatMap(page => page.page!) ?? [],\n [infiniteData],\n )\n\n // If the Webhook verification status is PENDING, Synapse may not have sent the verification code, or may have not reported a response.\n // Refetch on an interval to check if the verification status has changed.\n useEffect(() => {\n let intervalId: NodeJS.Timeout\n if (webhooks.some(webhook => webhook.verificationStatus === 'PENDING')) {\n intervalId = setInterval(() => {\n void refetch()\n }, 2500)\n }\n return () => clearInterval(intervalId)\n }, [refetch, webhooks])\n\n const { mutate: resendVerificationCode } = useResendVerificationCode()\n\n const onClickVerifyWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowVerificationDialog(true)\n }, [])\n const onClickEditWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowCreateModal(true)\n }, [])\n const onClickResendVerificationCode = useCallback(\n (webhook: Webhook) => {\n resendVerificationCode(webhook.id!)\n },\n [resendVerificationCode],\n )\n\n const columns = useMemo(\n () =>\n getWebhookTableColumns(\n onClickVerifyWebhook,\n onClickResendVerificationCode,\n onClickEditWebhook,\n ),\n [onClickEditWebhook, onClickResendVerificationCode, onClickVerifyWebhook],\n )\n\n const webhookTable = useReactTable<Webhook>({\n data: webhooks,\n columns: columns,\n state: {\n columnVisibility: {\n createdOn: !hideOptionalColumns,\n modifiedOn: !hideOptionalColumns,\n },\n },\n getCoreRowModel: getCoreRowModel(),\n })\n\n const isEmpty = !isLoading && webhookTable.getRowModel().rows.length === 0\n\n return (\n <div>\n <WebhookVerificationDialog\n key={webhookToUpdate?.id}\n open={showVerificationDialog}\n onClose={() => setShowVerificationDialog(false)}\n webhookId={webhookToUpdate?.id!}\n />\n <Typography variant={'headline3'}>Webhook Dashboard</Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n my: 2,\n gap: 3,\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n }}\n >\n <div>\n <Typography variant={'body1'} gutterBottom>\n Webhooks can be used to programmatically receive alerts that are\n triggered by events in Synapse. A webhook can specify a Synapse\n entity to receive events related to that entity. For entities that\n represent a container (folder and project), matching events are\n published to the webhook endpoint for any entity in its hierarchy.\n </Typography>\n <Typography variant={'body1'} gutterBottom>\n For more information, see the{' '}\n <Link\n href={\n 'http://dev.release.rest.doc.sagebase.org.s3-website-us-east-1.amazonaws.com/index.html#org.sagebionetworks.repo.web.controller.WebhookController'\n }\n target={'blank'}\n >\n Synapse API REST Docs section on Webhooks\n </Link>\n .\n </Typography>\n </div>\n <Button\n size=\"large\"\n variant=\"contained\"\n startIcon={<AddCircleTwoTone />}\n onClick={() => {\n setWebhookToUpdate(undefined)\n setShowCreateModal(true)\n }}\n sx={{ flexShrink: 0 }}\n >\n Create Webhook\n </Button>\n <CreateWebhookModal\n initialData={webhookToUpdate}\n open={showCreateModal}\n onClose={() => setShowCreateModal(false)}\n />\n </Box>\n <InfiniteTableLayout\n table={<StyledTanStackTable table={webhookTable} />}\n isLoading={isLoading}\n noResults={\n <Typography variant=\"body1\">\n You have not created any webhooks. Click &quot;Create Webhook&quot;\n above to begin.\n </Typography>\n }\n isEmpty={isEmpty}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n void fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebhookDashboard.js","names":[],"sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport {\n useGetWebhooksInfinite,\n useResendVerificationCode,\n} from '@/synapse-queries/webhook/useWebhook'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport AddCircleTwoTone from '@mui/icons-material/AddCircleTwoTone'\nimport {\n Box,\n Button,\n Link,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport {\n SynapseObjectType,\n Webhook,\n WebhookVerificationStatus,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { upperFirst } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport CreateWebhookModal from './CreateWebhookModal'\nimport { WebhookVerificationDialog } from './WebhookVerificationDialog'\n\nconst WEBHOOK_CAN_RESEND_CODE_STATES: ReadonlySet<WebhookVerificationStatus> =\n new Set([WebhookVerificationStatus.FAILED, WebhookVerificationStatus.REVOKED])\n\nconst columnHelper = createColumnHelper<Webhook>()\n\nfunction getWebhookTableColumns(\n onClickVerifyWebhook: (webhook: Webhook) => void,\n onClickResendVerificationCode: (webhook: Webhook) => void,\n onClickEditWebhook: (webhook: Webhook) => void,\n) {\n return [\n columnHelper.accessor('id', {\n header: 'ID',\n size: 75,\n cell: ctx => ctx.cell.getValue(),\n }),\n columnHelper.display({\n header: 'Object',\n cell: ctx => {\n if (ctx.row.original.objectType === SynapseObjectType.ENTITY) {\n return (\n <>\n <EntityLink entity={ctx.row.original.objectId!} /> (syn\n {ctx.row.original.objectId})\n </>\n )\n }\n return `${ctx.row.original.objectType}: ${ctx.row.original.objectId}`\n },\n }),\n columnHelper.accessor('eventTypes', {\n header: 'Event Type(s)',\n cell: ctx => (\n <Stack>\n {Array.from<string>(ctx.cell.getValue()!)\n .map(s => s.toLowerCase())\n .map(upperFirst)\n .map(val => (\n <span key={val}>{val}</span>\n ))}\n </Stack>\n ),\n }),\n columnHelper.accessor('isEnabled', {\n header: 'Enabled',\n size: 10,\n cell: ctx => (ctx.cell.getValue() ? 'Yes' : 'No'),\n }),\n columnHelper.accessor('createdOn', {\n header: 'Created On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('modifiedOn', {\n header: 'Modified On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('verificationStatus', {\n header: 'Verification Status',\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: 1,\n }}\n >\n {ctx.row.original.verificationStatus === 'PENDING' && (\n // useEffect above will trigger a refetch until this resolves\n <SynapseSpinner size={20} />\n )}\n {ctx.row.original.verificationStatus !==\n WebhookVerificationStatus.PENDING &&\n upperFirst(\n (ctx.row.original.verificationStatus || '')\n .toLowerCase()\n .replaceAll('_', ' '),\n )}\n {ctx.row.original.verificationMsg && (\n <HelpPopover markdownText={ctx.row.original.verificationMsg} />\n )}\n </Stack>\n ),\n }),\n columnHelper.display({\n id: 'actions',\n header: 'Actions',\n size: 10,\n meta: {\n textAlign: 'right',\n },\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: 2,\n }}\n >\n {ctx.row.original.verificationStatus ===\n WebhookVerificationStatus.CODE_SENT && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickVerifyWebhook(ctx.row.original)\n }}\n >\n Verify code\n </Button>\n )}\n\n {WEBHOOK_CAN_RESEND_CODE_STATES.has(\n ctx.row.original.verificationStatus as WebhookVerificationStatus,\n ) && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickResendVerificationCode(ctx.row.original)\n }}\n >\n Resend code\n </Button>\n )}\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={() => {\n onClickEditWebhook(ctx.row.original)\n }}\n >\n Edit\n </Button>\n </Stack>\n ),\n }),\n ]\n}\n\nexport default function WebhookDashboard() {\n const [showCreateModal, setShowCreateModal] = useState(false)\n const [showVerificationDialog, setShowVerificationDialog] = useState(false)\n const [webhookToUpdate, setWebhookToUpdate] = useState<Webhook | undefined>(\n undefined,\n )\n\n const theme = useTheme()\n const hideOptionalColumns = useMediaQuery(theme.breakpoints.down('md'))\n\n const {\n data: infiniteData,\n refetch,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n isLoading,\n } = useGetWebhooksInfinite()\n const webhooks = useMemo(\n () => infiniteData?.pages.flatMap(page => page.page!) ?? [],\n [infiniteData],\n )\n\n // If the Webhook verification status is PENDING, Synapse may not have sent the verification code, or may have not reported a response.\n // Refetch on an interval to check if the verification status has changed.\n useEffect(() => {\n let intervalId: NodeJS.Timeout\n if (webhooks.some(webhook => webhook.verificationStatus === 'PENDING')) {\n intervalId = setInterval(() => {\n void refetch()\n }, 2500)\n }\n return () => clearInterval(intervalId)\n }, [refetch, webhooks])\n\n const { mutate: resendVerificationCode } = useResendVerificationCode()\n\n const onClickVerifyWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowVerificationDialog(true)\n }, [])\n const onClickEditWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowCreateModal(true)\n }, [])\n const onClickResendVerificationCode = useCallback(\n (webhook: Webhook) => {\n resendVerificationCode(webhook.id!)\n },\n [resendVerificationCode],\n )\n\n const columns = useMemo(\n () =>\n getWebhookTableColumns(\n onClickVerifyWebhook,\n onClickResendVerificationCode,\n onClickEditWebhook,\n ),\n [onClickEditWebhook, onClickResendVerificationCode, onClickVerifyWebhook],\n )\n\n const webhookTable = useReactTable<Webhook>({\n data: webhooks,\n columns: columns,\n state: {\n columnVisibility: {\n createdOn: !hideOptionalColumns,\n modifiedOn: !hideOptionalColumns,\n },\n },\n getCoreRowModel: getCoreRowModel(),\n })\n\n const isEmpty = !isLoading && webhookTable.getRowModel().rows.length === 0\n\n return (\n <div>\n <WebhookVerificationDialog\n key={webhookToUpdate?.id}\n open={showVerificationDialog}\n onClose={() => setShowVerificationDialog(false)}\n webhookId={webhookToUpdate?.id!}\n />\n <Typography variant={'headline3'}>Webhook Dashboard</Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n my: 2,\n gap: 3,\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n }}\n >\n <div>\n <Typography variant={'body1'} gutterBottom>\n Webhooks can be used to programmatically receive alerts that are\n triggered by events in Synapse. A webhook can specify a Synapse\n entity to receive events related to that entity. For entities that\n represent a container (folder and project), matching events are\n published to the webhook endpoint for any entity in its hierarchy.\n </Typography>\n <Typography variant={'body1'} gutterBottom>\n For more information, see the{' '}\n <Link\n href={\n 'http://dev.release.rest.doc.sagebase.org.s3-website-us-east-1.amazonaws.com/index.html#org.sagebionetworks.repo.web.controller.WebhookController'\n }\n target={'blank'}\n >\n Synapse API REST Docs section on Webhooks\n </Link>\n .\n </Typography>\n </div>\n <Button\n size=\"large\"\n variant=\"contained\"\n startIcon={<AddCircleTwoTone />}\n onClick={() => {\n setWebhookToUpdate(undefined)\n setShowCreateModal(true)\n }}\n sx={{ flexShrink: 0 }}\n >\n Create Webhook\n </Button>\n <CreateWebhookModal\n initialData={webhookToUpdate}\n open={showCreateModal}\n onClose={() => setShowCreateModal(false)}\n />\n </Box>\n <InfiniteTableLayout\n table={<StyledTanStackTable table={webhookTable} />}\n isLoading={isLoading}\n noResults={\n <Typography variant=\"body1\">\n You have not created any webhooks. Click &quot;Create Webhook&quot;\n above to begin.\n </Typography>\n }\n isEmpty={isEmpty}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n void fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n"],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- export declare function displayFilesWereAddedToDownloadListSuccess(downloadCartPageUrl: string): void;
1
+ /**
2
+ * Reports files added to the Download List, with a link to it.
3
+ * @param numberOfFilesAdded the server's count, when the caller has it
4
+ */
5
+ export declare function displayFilesWereAddedToDownloadListSuccess(downloadCartPageUrl: string, numberOfFilesAdded?: number): void;
2
6
  //# sourceMappingURL=DownloadConfirmationUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadConfirmationUtils.d.ts","sourceRoot":"","sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"names":[],"mappings":"AAEA,wBAAgB,0CAA0C,CACxD,mBAAmB,EAAE,MAAM,QAc5B"}
1
+ {"version":3,"file":"DownloadConfirmationUtils.d.ts","sourceRoot":"","sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,0CAA0C,CACxD,mBAAmB,EAAE,MAAM,EAC3B,kBAAkB,CAAC,EAAE,MAAM,QAgB5B"}
@@ -1,8 +1,8 @@
1
1
  import { displayToast as e } from "../ToastMessage/ToastMessage.js";
2
2
  import "../ToastMessage/index.js";
3
3
  //#region src/components/download_list/DownloadConfirmationUtils.ts
4
- function t(t) {
5
- e("File(s) were successfully added to your Download List.", "success", { primaryButtonConfig: {
4
+ function t(t, n) {
5
+ e(n === void 0 ? "File(s) were successfully added to your Download List." : `${n.toLocaleString()} ${n === 1 ? "file was" : "files were"} added to your Download List.`, "success", { primaryButtonConfig: {
6
6
  text: "View Download List",
7
7
  onClick: () => {
8
8
  window.location.href = t;
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadConfirmationUtils.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"sourcesContent":["import { displayToast } from '../ToastMessage'\n\nexport function displayFilesWereAddedToDownloadListSuccess(\n downloadCartPageUrl: string,\n) {\n displayToast(\n 'File(s) were successfully added to your Download List.',\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download List',\n onClick: () => {\n window.location.href = downloadCartPageUrl\n },\n },\n },\n )\n}\n"],"mappings":";;;AAEA,SAAgB,EACd,GACA;CACA,EACE,0DACA,WACA,EACE,qBAAqB;EACnB,MAAM;EACN,eAAe;GACb,OAAO,SAAS,OAAO;EACzB;CACF,EACF,CACF;AACF"}
1
+ {"version":3,"file":"DownloadConfirmationUtils.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"sourcesContent":["import { displayToast } from '../ToastMessage'\n\n/**\n * Reports files added to the Download List, with a link to it.\n * @param numberOfFilesAdded the server's count, when the caller has it\n */\nexport function displayFilesWereAddedToDownloadListSuccess(\n downloadCartPageUrl: string,\n numberOfFilesAdded?: number,\n) {\n displayToast(\n numberOfFilesAdded === undefined\n ? 'File(s) were successfully added to your Download List.'\n : `${numberOfFilesAdded.toLocaleString()} ${numberOfFilesAdded === 1 ? 'file was' : 'files were'} added to your Download List.`,\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download List',\n onClick: () => {\n window.location.href = downloadCartPageUrl\n },\n },\n },\n )\n}\n"],"mappings":";;;AAMA,SAAgB,EACd,GACA,GACA;CACA,EACE,MAAuB,KAAA,IACnB,2DACA,GAAG,EAAmB,eAAe,EAAE,GAAG,MAAuB,IAAI,aAAa,aAAa,gCACnG,WACA,EACE,qBAAqB;EACnB,MAAM;EACN,eAAe;GACb,OAAO,SAAS,OAAO;EACzB;CACF,EACF,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBanner.d.ts","sourceRoot":"","sources":["../../../src/components/error/ErrorBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,iBAAiB,EAAY,MAAM,OAAO,CAAA;AACnD,OAAO,EAEL,+BAA+B,EAC/B,aAAa,EACd,MAAM,sBAAsB,CAAA;AAK7B,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAA;IAClD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,8BAA8B,oDACQ,CAAA;AAEnD,eAAO,MAAM,YAAY,QAAO,KAAK,CAAC,SAMrC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO;IACjC,KAAK,EAAE,kBAAkB,CAAA;CAC1B,KAAG,KAAK,CAAC,SA2CT,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,KAAG,KAAK,CAAC,SAmD3D,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,kBAAkB,GACnB,EAAE,aAAa,2CASf;AAED,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,kBAAkB,GACnB,EAAE,aAAa,2CAQf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,kBAAkB,GACnB,EAAE,aAAa,2CAGf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,iBAAiB,CACtB,QAAQ,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAC/D,KACA,KAAK,CAAC,SAER,CAAA"}
1
+ {"version":3,"file":"ErrorBanner.d.ts","sourceRoot":"","sources":["../../../src/components/error/ErrorBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,iBAAiB,EAAY,MAAM,OAAO,CAAA;AACnD,OAAO,EAEL,+BAA+B,EAC/B,aAAa,EACd,MAAM,sBAAsB,CAAA;AAS7B,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAA;IAClD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,8BAA8B,oDACQ,CAAA;AAEnD,eAAO,MAAM,YAAY,QAAO,KAAK,CAAC,SAMrC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO;IACjC,KAAK,EAAE,kBAAkB,CAAA;CAC1B,KAAG,KAAK,CAAC,SA2CT,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,KAAG,KAAK,CAAC,SAwD3D,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,kBAAkB,GACnB,EAAE,aAAa,2CASf;AAED,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,kBAAkB,GACnB,EAAE,aAAa,2CAQf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,kBAAkB,GACnB,EAAE,aAAa,2CAGf;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,iBAAiB,CACtB,QAAQ,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAC/D,KACA,KAAK,CAAC,SAER,CAAA"}
@@ -1,91 +1,94 @@
1
1
  import e from "../FullWidthAlert/index.js";
2
2
  import t from "../SignInButton.js";
3
- import { useSynapseContext as n } from "../../utils/context/SynapseContext.js";
4
- import { useState as r } from "react";
5
- import { Box as i, Button as a, Collapse as o, Stack as s } from "@mui/material";
6
- import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
7
- import { SynapseClientError as d } from "@sage-bionetworks/synapse-client/util/SynapseClientError";
8
- import { ErrorBoundary as f } from "react-error-boundary";
3
+ import { AggregateQueryErrorNotice as n, getAggregateQueryError as r } from "../QueryWrapper/AggregateQueryErrorNotice.js";
4
+ import { useSynapseContext as i } from "../../utils/context/SynapseContext.js";
5
+ import { useState as a } from "react";
6
+ import { Box as o, Button as s, Collapse as c, Stack as l } from "@mui/material";
7
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
8
+ import { SynapseClientError as p } from "@sage-bionetworks/synapse-client/util/SynapseClientError";
9
+ import { ErrorBoundary as m } from "react-error-boundary";
9
10
  //#region src/components/error/ErrorBanner.tsx
10
- var p = "You are not authorized to access this resource.", m = () => /* @__PURE__ */ u(c, { children: [
11
+ var h = "You are not authorized to access this resource.", g = () => /* @__PURE__ */ f(u, { children: [
11
12
  "Please ",
12
- /* @__PURE__ */ l(t, {}),
13
+ /* @__PURE__ */ d(t, {}),
13
14
  " to view this resource."
14
- ] }), h = (e) => {
15
- let [t, d] = r(!1), { isAuthenticated: f } = n(), { error: h } = e, g = (h.status === 403 || h.status === 401) && !f, _ = h.status === 403 && f;
16
- return g ? /* @__PURE__ */ l(m, {}) : _ ? /* @__PURE__ */ u(c, { children: [/* @__PURE__ */ u(s, {
15
+ ] }), _ = (e) => {
16
+ let [t, n] = a(!1), { isAuthenticated: r } = i(), { error: p } = e, m = (p.status === 403 || p.status === 401) && !r, _ = p.status === 403 && r;
17
+ return m ? /* @__PURE__ */ d(g, {}) : _ ? /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ f(l, {
17
18
  direction: "row",
18
19
  spacing: 2,
19
- children: [/* @__PURE__ */ l(i, {
20
+ children: [/* @__PURE__ */ d(o, {
20
21
  sx: {
21
22
  display: "flex",
22
23
  alignItems: "center"
23
24
  },
24
- children: p
25
- }), /* @__PURE__ */ u(a, {
25
+ children: h
26
+ }), /* @__PURE__ */ f(s, {
26
27
  variant: "text",
27
- onClick: () => d((e) => !e),
28
+ onClick: () => n((e) => !e),
28
29
  children: [t ? "Hide" : "Show", " details"]
29
30
  })]
30
- }), /* @__PURE__ */ l(o, {
31
+ }), /* @__PURE__ */ d(c, {
31
32
  in: t,
32
- children: /* @__PURE__ */ l(i, {
33
+ children: /* @__PURE__ */ d(o, {
33
34
  sx: { paddingTop: 1 },
34
- children: /* @__PURE__ */ l("pre", { children: h.reason })
35
+ children: /* @__PURE__ */ d("pre", { children: p.reason })
35
36
  })
36
- })] }) : /* @__PURE__ */ l(c, { children: h.reason });
37
- }, g = (t) => {
38
- let { error: n, reloadButtonFn: r } = t;
39
- if (!n) return /* @__PURE__ */ l(c, {});
40
- let i, a, o;
41
- n instanceof d ? i = n : n instanceof Error ? a = n : typeof n == "string" && (o = n);
42
- let s = i && i.status >= 500, f;
43
- return s ? f = {
37
+ })] }) : /* @__PURE__ */ d(u, { children: p.reason });
38
+ }, v = (t) => {
39
+ let { error: i, reloadButtonFn: a } = t;
40
+ if (!i) return /* @__PURE__ */ d(u, {});
41
+ let o = r(i);
42
+ if (o) return /* @__PURE__ */ d(n, { error: o });
43
+ let s, c, l;
44
+ i instanceof p ? s = i : i instanceof Error ? c = i : typeof i == "string" && (l = i);
45
+ let m = s && s.status >= 500, h;
46
+ return m ? h = {
44
47
  text: "Report Issue",
45
48
  onClick: () => {
46
- let e = `https://sagebionetworks.jira.com/servicedesk/customer/portal/9/group/16/create/84?description=${encodeURI(`A server error occurred:\n\n${i?.reason}`)}`;
49
+ let e = `https://sagebionetworks.jira.com/servicedesk/customer/portal/9/group/16/create/84?description=${encodeURI(`A server error occurred:\n\n${s?.reason}`)}`;
47
50
  window.open(e, "_blank");
48
51
  }
49
- } : r && (f = {
52
+ } : a && (h = {
50
53
  text: "Reload",
51
- onClick: r
52
- }), /* @__PURE__ */ l(e, {
54
+ onClick: a
55
+ }), /* @__PURE__ */ d(e, {
53
56
  variant: "danger",
54
57
  isGlobal: !1,
55
- description: /* @__PURE__ */ u(c, { children: [
56
- i && /* @__PURE__ */ l(h, { error: i }),
57
- a && a.message,
58
- o && o
58
+ description: /* @__PURE__ */ f(u, { children: [
59
+ s && /* @__PURE__ */ d(_, { error: s }),
60
+ c && c.message,
61
+ l && l
59
62
  ] }),
60
- primaryButtonConfig: f
63
+ primaryButtonConfig: h
61
64
  });
62
65
  };
63
- function _({ error: e, resetErrorBoundary: t }) {
64
- return /* @__PURE__ */ l("div", {
66
+ function y({ error: e, resetErrorBoundary: t }) {
67
+ return /* @__PURE__ */ d("div", {
65
68
  className: "SRC-marginBottomTop",
66
- children: /* @__PURE__ */ l(g, {
69
+ children: /* @__PURE__ */ d(v, {
67
70
  error: e,
68
71
  reloadButtonFn: t
69
72
  })
70
73
  });
71
74
  }
72
- function v({ error: e, resetErrorBoundary: t }) {
73
- return /* @__PURE__ */ l("tr", { children: /* @__PURE__ */ l("td", {
75
+ function b({ error: e, resetErrorBoundary: t }) {
76
+ return /* @__PURE__ */ d("tr", { children: /* @__PURE__ */ d("td", {
74
77
  colSpan: 999,
75
- children: /* @__PURE__ */ l(g, {
78
+ children: /* @__PURE__ */ d(v, {
76
79
  error: e,
77
80
  reloadButtonFn: t
78
81
  })
79
82
  }) });
80
83
  }
81
- function y({ error: e, resetErrorBoundary: t }) {
82
- return console.error(e), /* @__PURE__ */ l(c, {});
84
+ function x({ error: e, resetErrorBoundary: t }) {
85
+ return console.error(e), /* @__PURE__ */ d(u, {});
83
86
  }
84
- var b = (e) => /* @__PURE__ */ l(f, {
85
- FallbackComponent: _,
87
+ var S = (e) => /* @__PURE__ */ d(m, {
88
+ FallbackComponent: y,
86
89
  ...e
87
90
  });
88
91
  //#endregion
89
- export { h as ClientError, y as EmptyFallbackComponent, g as ErrorBanner, _ as ErrorFallbackComponent, m as SignInPrompt, b as SynapseErrorBoundary, v as TableRowFallbackComponent, p as YOU_ARE_NOT_AUTHORIZED_MESSAGE };
92
+ export { _ as ClientError, x as EmptyFallbackComponent, v as ErrorBanner, y as ErrorFallbackComponent, g as SignInPrompt, S as SynapseErrorBoundary, b as TableRowFallbackComponent, h as YOU_ARE_NOT_AUTHORIZED_MESSAGE };
90
93
 
91
94
  //# sourceMappingURL=ErrorBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBanner.js","names":[],"sources":["../../../src/components/error/ErrorBanner.tsx"],"sourcesContent":["import React from 'react'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Optional } from '@/utils/types/Optional'\nimport { Box, Button, Collapse, Stack } from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { PropsWithChildren, useState } from 'react'\nimport {\n ErrorBoundary,\n ErrorBoundaryPropsWithComponent,\n FallbackProps,\n} from 'react-error-boundary'\nimport FullWidthAlert from '../FullWidthAlert'\nimport SignInButton from '../SignInButton'\nimport { AlertButtonConfig } from '../FullWidthAlert/FullWidthAlert'\n\ntype ErrorBannerProps = {\n error?: string | Error | SynapseClientError | null\n reloadButtonFn?: () => void\n}\n\nexport const YOU_ARE_NOT_AUTHORIZED_MESSAGE =\n 'You are not authorized to access this resource.'\n\nexport const SignInPrompt = (): React.ReactNode => {\n return (\n <>\n Please <SignInButton /> to view this resource.\n </>\n )\n}\n\nexport const ClientError = (props: {\n error: SynapseClientError\n}): React.ReactNode => {\n const [showDetailedError, setShowDetailedError] = useState(false)\n const { isAuthenticated } = useSynapseContext()\n const { error } = props\n const loginError =\n (error.status === 403 || error.status === 401) && !isAuthenticated\n const accessDenied = error.status === 403 && isAuthenticated\n\n if (loginError) {\n return <SignInPrompt />\n } else if (accessDenied) {\n return (\n <>\n <Stack direction=\"row\" spacing={2}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n {YOU_ARE_NOT_AUTHORIZED_MESSAGE}\n </Box>\n <Button\n variant=\"text\"\n onClick={() => setShowDetailedError(show => !show)}\n >\n {showDetailedError ? 'Hide' : 'Show'} details\n </Button>\n </Stack>\n <Collapse in={showDetailedError}>\n <Box\n sx={{\n paddingTop: 1,\n }}\n >\n <pre>{error.reason}</pre>\n </Box>\n </Collapse>\n </>\n )\n } else {\n return <>{error.reason}</>\n }\n}\n\nexport const ErrorBanner = (props: ErrorBannerProps): React.ReactNode => {\n const { error, reloadButtonFn } = props\n\n if (!error) {\n return <></>\n }\n\n let synapseClientError: SynapseClientError | undefined = undefined\n let jsError: Error | undefined = undefined\n let stringError: string | undefined = undefined\n if (error instanceof SynapseClientError) {\n synapseClientError = error\n } else if (error instanceof Error) {\n jsError = error\n } else if (typeof error === 'string') {\n stringError = error\n }\n const serverError = synapseClientError && synapseClientError.status >= 500\n let primaryButtonConfig: AlertButtonConfig | undefined = undefined\n\n if (serverError) {\n primaryButtonConfig = {\n text: 'Report Issue',\n onClick: () => {\n const issueUrl = `https://sagebionetworks.jira.com/servicedesk/customer/portal/9/group/16/create/84?description=${encodeURI(\n `A server error occurred:\\n\\n${synapseClientError?.reason}`,\n )}`\n window.open(issueUrl, '_blank')\n },\n }\n } else if (reloadButtonFn) {\n primaryButtonConfig = {\n text: 'Reload',\n onClick: reloadButtonFn,\n }\n }\n\n return (\n <FullWidthAlert\n variant={'danger'}\n isGlobal={false}\n description={\n <>\n {synapseClientError && <ClientError error={synapseClientError} />}\n {jsError && jsError.message}\n {stringError && stringError}\n </>\n }\n primaryButtonConfig={primaryButtonConfig}\n />\n )\n}\n\nexport function ErrorFallbackComponent({\n error,\n resetErrorBoundary,\n}: FallbackProps) {\n return (\n <div className=\"SRC-marginBottomTop\">\n <ErrorBanner\n error={error}\n reloadButtonFn={resetErrorBoundary}\n ></ErrorBanner>\n </div>\n )\n}\n\nexport function TableRowFallbackComponent({\n error,\n resetErrorBoundary,\n}: FallbackProps) {\n return (\n <tr>\n <td colSpan={999}>\n <ErrorBanner error={error} reloadButtonFn={resetErrorBoundary} />\n </td>\n </tr>\n )\n}\n\n/**\n * This error boundary fallback component does not have a UI, it only outputs the error to console.error\n */\nexport function EmptyFallbackComponent({\n error,\n resetErrorBoundary,\n}: FallbackProps) {\n console.error(error)\n return <></>\n}\n\n/**\n * ErrorBoundary component that uses the default error fallback component, unless overridden.\n * Internally uses `react-error-boundary`.\n *\n * Use with {@link react-error-boundary#handleError | handleError}\n * @param props\n * @returns\n */\nexport const SynapseErrorBoundary = (\n props: PropsWithChildren<\n Optional<ErrorBoundaryPropsWithComponent, 'FallbackComponent'>\n >,\n): React.ReactNode => (\n <ErrorBoundary FallbackComponent={ErrorFallbackComponent} {...props} />\n)\n"],"mappings":";;;;;;;;;AAoBA,IAAa,IACX,mDAEW,UAET,kBAAA,GAAA,EAAA,UAAA;CAAE;CACO,kBAAC,GAAD,CAAe,CAAA;CAAC;AACvB,EAAA,CAAA,GAIO,KAAe,MAEL;CACrB,IAAM,CAAC,GAAmB,KAAwB,EAAS,EAAK,GAC1D,EAAE,uBAAoB,EAAkB,GACxC,EAAE,aAAU,GACZ,KACH,EAAM,WAAW,OAAO,EAAM,WAAW,QAAQ,CAAC,GAC/C,IAAe,EAAM,WAAW,OAAO;CAmC3C,OAjCE,IACK,kBAAC,GAAD,CAAe,CAAA,IACb,IAEP,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAO,WAAU;EAAM,SAAS;YAAhC,CACE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;GACd;aAEC;EACE,CAAA,GACL,kBAAC,GAAD;GACE,SAAQ;GACR,eAAe,GAAqB,MAAQ,CAAC,CAAI;aAFnD,CAIG,IAAoB,SAAS,QAAO,UAC/B;IACH;KACP,kBAAC,GAAD;EAAU,IAAI;YACZ,kBAAC,GAAD;GACE,IAAI,EACF,YAAY,EACd;aAEA,kBAAC,OAAD,EAAA,UAAM,EAAM,OAAY,CAAA;EACrB,CAAA;CACG,CAAA,CACV,EAAA,CAAA,IAGG,kBAAA,GAAA,EAAA,UAAG,EAAM,OAAS,CAAA;AAE7B,GAEa,KAAe,MAA6C;CACvE,IAAM,EAAE,UAAO,sBAAmB;CAElC,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;CAGb,IAAI,GACA,GACA;CACJ,AAAI,aAAiB,IACnB,IAAqB,IACZ,aAAiB,QAC1B,IAAU,IACD,OAAO,KAAU,aAC1B,IAAc;CAEhB,IAAM,IAAc,KAAsB,EAAmB,UAAU,KACnE;CAmBJ,OAjBI,IACF,IAAsB;EACpB,MAAM;EACN,eAAe;GACb,IAAM,IAAW,iGAAiG,UAChH,+BAA+B,GAAoB,QACrD;GACA,OAAO,KAAK,GAAU,QAAQ;EAChC;CACF,IACS,MACT,IAAsB;EACpB,MAAM;EACN,SAAS;CACX,IAIA,kBAAC,GAAD;EACE,SAAS;EACT,UAAU;EACV,aACE,kBAAA,GAAA,EAAA,UAAA;GACG,KAAsB,kBAAC,GAAD,EAAa,OAAO,EAAqB,CAAA;GAC/D,KAAW,EAAQ;GACnB,KAAe;EAChB,EAAA,CAAA;EAEiB;CACtB,CAAA;AAEL;AAEA,SAAgB,EAAuB,EACrC,UACA,yBACgB;CAChB,OACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACS;GACP,gBAAgB;EACJ,CAAA;CACX,CAAA;AAET;AAEA,SAAgB,EAA0B,EACxC,UACA,yBACgB;CAChB,OACE,kBAAC,MAAD,EAAA,UACE,kBAAC,MAAD;EAAI,SAAS;YACX,kBAAC,GAAD;GAAoB;GAAO,gBAAgB;EAAqB,CAAA;CAC9D,CAAA,EACF,CAAA;AAER;AAKA,SAAgB,EAAuB,EACrC,UACA,yBACgB;CAEhB,OADA,QAAQ,MAAM,CAAK,GACZ,kBAAA,GAAA,CAAI,CAAA;AACb;AAUA,IAAa,KACX,MAIA,kBAAC,GAAD;CAAe,mBAAmB;CAAwB,GAAI;AAAQ,CAAA"}
1
+ {"version":3,"file":"ErrorBanner.js","names":[],"sources":["../../../src/components/error/ErrorBanner.tsx"],"sourcesContent":["import React from 'react'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Optional } from '@/utils/types/Optional'\nimport { Box, Button, Collapse, Stack } from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { PropsWithChildren, useState } from 'react'\nimport {\n ErrorBoundary,\n ErrorBoundaryPropsWithComponent,\n FallbackProps,\n} from 'react-error-boundary'\nimport FullWidthAlert from '../FullWidthAlert'\nimport SignInButton from '../SignInButton'\nimport { AlertButtonConfig } from '../FullWidthAlert/FullWidthAlert'\nimport {\n AggregateQueryErrorNotice,\n getAggregateQueryError,\n} from '../QueryWrapper/AggregateQueryErrorNotice'\n\ntype ErrorBannerProps = {\n error?: string | Error | SynapseClientError | null\n reloadButtonFn?: () => void\n}\n\nexport const YOU_ARE_NOT_AUTHORIZED_MESSAGE =\n 'You are not authorized to access this resource.'\n\nexport const SignInPrompt = (): React.ReactNode => {\n return (\n <>\n Please <SignInButton /> to view this resource.\n </>\n )\n}\n\nexport const ClientError = (props: {\n error: SynapseClientError\n}): React.ReactNode => {\n const [showDetailedError, setShowDetailedError] = useState(false)\n const { isAuthenticated } = useSynapseContext()\n const { error } = props\n const loginError =\n (error.status === 403 || error.status === 401) && !isAuthenticated\n const accessDenied = error.status === 403 && isAuthenticated\n\n if (loginError) {\n return <SignInPrompt />\n } else if (accessDenied) {\n return (\n <>\n <Stack direction=\"row\" spacing={2}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n {YOU_ARE_NOT_AUTHORIZED_MESSAGE}\n </Box>\n <Button\n variant=\"text\"\n onClick={() => setShowDetailedError(show => !show)}\n >\n {showDetailedError ? 'Hide' : 'Show'} details\n </Button>\n </Stack>\n <Collapse in={showDetailedError}>\n <Box\n sx={{\n paddingTop: 1,\n }}\n >\n <pre>{error.reason}</pre>\n </Box>\n </Collapse>\n </>\n )\n } else {\n return <>{error.reason}</>\n }\n}\n\nexport const ErrorBanner = (props: ErrorBannerProps): React.ReactNode => {\n const { error, reloadButtonFn } = props\n\n if (!error) {\n return <></>\n }\n\n // A result withheld from an aggregate-only caller is a normal state, not an error, so it is not shown as a banner.\n const aggregateQueryError = getAggregateQueryError(error)\n if (aggregateQueryError) {\n return <AggregateQueryErrorNotice error={aggregateQueryError} />\n }\n let synapseClientError: SynapseClientError | undefined = undefined\n let jsError: Error | undefined = undefined\n let stringError: string | undefined = undefined\n if (error instanceof SynapseClientError) {\n synapseClientError = error\n } else if (error instanceof Error) {\n jsError = error\n } else if (typeof error === 'string') {\n stringError = error\n }\n const serverError = synapseClientError && synapseClientError.status >= 500\n let primaryButtonConfig: AlertButtonConfig | undefined = undefined\n\n if (serverError) {\n primaryButtonConfig = {\n text: 'Report Issue',\n onClick: () => {\n const issueUrl = `https://sagebionetworks.jira.com/servicedesk/customer/portal/9/group/16/create/84?description=${encodeURI(\n `A server error occurred:\\n\\n${synapseClientError?.reason}`,\n )}`\n window.open(issueUrl, '_blank')\n },\n }\n } else if (reloadButtonFn) {\n primaryButtonConfig = {\n text: 'Reload',\n onClick: reloadButtonFn,\n }\n }\n\n return (\n <FullWidthAlert\n variant={'danger'}\n isGlobal={false}\n description={\n <>\n {synapseClientError && <ClientError error={synapseClientError} />}\n {jsError && jsError.message}\n {stringError && stringError}\n </>\n }\n primaryButtonConfig={primaryButtonConfig}\n />\n )\n}\n\nexport function ErrorFallbackComponent({\n error,\n resetErrorBoundary,\n}: FallbackProps) {\n return (\n <div className=\"SRC-marginBottomTop\">\n <ErrorBanner\n error={error}\n reloadButtonFn={resetErrorBoundary}\n ></ErrorBanner>\n </div>\n )\n}\n\nexport function TableRowFallbackComponent({\n error,\n resetErrorBoundary,\n}: FallbackProps) {\n return (\n <tr>\n <td colSpan={999}>\n <ErrorBanner error={error} reloadButtonFn={resetErrorBoundary} />\n </td>\n </tr>\n )\n}\n\n/**\n * This error boundary fallback component does not have a UI, it only outputs the error to console.error\n */\nexport function EmptyFallbackComponent({\n error,\n resetErrorBoundary,\n}: FallbackProps) {\n console.error(error)\n return <></>\n}\n\n/**\n * ErrorBoundary component that uses the default error fallback component, unless overridden.\n * Internally uses `react-error-boundary`.\n *\n * Use with {@link react-error-boundary#handleError | handleError}\n * @param props\n * @returns\n */\nexport const SynapseErrorBoundary = (\n props: PropsWithChildren<\n Optional<ErrorBoundaryPropsWithComponent, 'FallbackComponent'>\n >,\n): React.ReactNode => (\n <ErrorBoundary FallbackComponent={ErrorFallbackComponent} {...props} />\n)\n"],"mappings":";;;;;;;;;;AAwBA,IAAa,IACX,mDAEW,UAET,kBAAA,GAAA,EAAA,UAAA;CAAE;CACO,kBAAC,GAAD,CAAe,CAAA;CAAC;AACvB,EAAA,CAAA,GAIO,KAAe,MAEL;CACrB,IAAM,CAAC,GAAmB,KAAwB,EAAS,EAAK,GAC1D,EAAE,uBAAoB,EAAkB,GACxC,EAAE,aAAU,GACZ,KACH,EAAM,WAAW,OAAO,EAAM,WAAW,QAAQ,CAAC,GAC/C,IAAe,EAAM,WAAW,OAAO;CAmC3C,OAjCE,IACK,kBAAC,GAAD,CAAe,CAAA,IACb,IAEP,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAO,WAAU;EAAM,SAAS;YAAhC,CACE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;GACd;aAEC;EACE,CAAA,GACL,kBAAC,GAAD;GACE,SAAQ;GACR,eAAe,GAAqB,MAAQ,CAAC,CAAI;aAFnD,CAIG,IAAoB,SAAS,QAAO,UAC/B;IACH;KACP,kBAAC,GAAD;EAAU,IAAI;YACZ,kBAAC,GAAD;GACE,IAAI,EACF,YAAY,EACd;aAEA,kBAAC,OAAD,EAAA,UAAM,EAAM,OAAY,CAAA;EACrB,CAAA;CACG,CAAA,CACV,EAAA,CAAA,IAGG,kBAAA,GAAA,EAAA,UAAG,EAAM,OAAS,CAAA;AAE7B,GAEa,KAAe,MAA6C;CACvE,IAAM,EAAE,UAAO,sBAAmB;CAElC,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;CAIb,IAAM,IAAsB,EAAuB,CAAK;CACxD,IAAI,GACF,OAAO,kBAAC,GAAD,EAA2B,OAAO,EAAsB,CAAA;CAEjE,IAAI,GACA,GACA;CACJ,AAAI,aAAiB,IACnB,IAAqB,IACZ,aAAiB,QAC1B,IAAU,IACD,OAAO,KAAU,aAC1B,IAAc;CAEhB,IAAM,IAAc,KAAsB,EAAmB,UAAU,KACnE;CAmBJ,OAjBI,IACF,IAAsB;EACpB,MAAM;EACN,eAAe;GACb,IAAM,IAAW,iGAAiG,UAChH,+BAA+B,GAAoB,QACrD;GACA,OAAO,KAAK,GAAU,QAAQ;EAChC;CACF,IACS,MACT,IAAsB;EACpB,MAAM;EACN,SAAS;CACX,IAIA,kBAAC,GAAD;EACE,SAAS;EACT,UAAU;EACV,aACE,kBAAA,GAAA,EAAA,UAAA;GACG,KAAsB,kBAAC,GAAD,EAAa,OAAO,EAAqB,CAAA;GAC/D,KAAW,EAAQ;GACnB,KAAe;EAChB,EAAA,CAAA;EAEiB;CACtB,CAAA;AAEL;AAEA,SAAgB,EAAuB,EACrC,UACA,yBACgB;CAChB,OACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACS;GACP,gBAAgB;EACJ,CAAA;CACX,CAAA;AAET;AAEA,SAAgB,EAA0B,EACxC,UACA,yBACgB;CAChB,OACE,kBAAC,MAAD,EAAA,UACE,kBAAC,MAAD;EAAI,SAAS;YACX,kBAAC,GAAD;GAAoB;GAAO,gBAAgB;EAAqB,CAAA;CAC9D,CAAA,EACF,CAAA;AAER;AAKA,SAAgB,EAAuB,EACrC,UACA,yBACgB;CAEhB,OADA,QAAQ,MAAM,CAAK,GACZ,kBAAA,GAAA,CAAI,CAAA;AACb;AAUA,IAAa,KACX,MAIA,kBAAC,GAAD;CAAe,mBAAmB;CAAwB,GAAI;AAAQ,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { FileUploadProgress as e } from "../../EntityUpload/FileUploadProgress.js";
2
2
  import t from "../../../utils/hooks/useUploadFileEntity/getActiveUploadCount.js";
3
3
  import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
- import a from "@mui/material/Typography";
5
- import o from "pluralize";
4
+ import a from "pluralize";
5
+ import o from "@mui/material/Typography";
6
6
  import s from "@mui/material/Box";
7
7
  import c from "@mui/material/Paper";
8
8
  import { FixedSizeList as l } from "react-window";
@@ -21,7 +21,7 @@ function d(d) {
21
21
  height: "260px",
22
22
  background: "#FBFBFC"
23
23
  },
24
- children: [/* @__PURE__ */ i(a, {
24
+ children: [/* @__PURE__ */ i(o, {
25
25
  variant: "headline2",
26
26
  gutterBottom: !0,
27
27
  children: [
@@ -30,13 +30,13 @@ function d(d) {
30
30
  "Uploading ",
31
31
  m,
32
32
  " ",
33
- o("Item", m)
33
+ a("Item", m)
34
34
  ] }),
35
35
  f === "COMPLETE" && /* @__PURE__ */ i(n, { children: [
36
36
  "Uploaded ",
37
37
  h,
38
38
  " ",
39
- o("Item", h)
39
+ a("Item", h)
40
40
  ] })
41
41
  ]
42
42
  }), /* @__PURE__ */ r(s, {
@@ -1 +1 @@
1
- {"version":3,"file":"Dataset.d.ts","sourceRoot":"","sources":["../../../src/components/row_renderers/Dataset.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAA;AAG5E,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,yBAAyB,EAAE,6BAA6B,CAAA;CACzD,CAAA;AAED,cAAM,OAAQ,SAAQ,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC;gBACtC,KAAK,EAAE,YAAY;IAKxB,eAAe,GACnB,MAAM,MAAM,MAAM,OAAO,UAAU,CAAC,iBAAiB,CAAC,UAMtD;IAEI,MAAM;CAgGd;AACD,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"Dataset.d.ts","sourceRoot":"","sources":["../../../src/components/row_renderers/Dataset.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAA;AAG5E,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,yBAAyB,EAAE,6BAA6B,CAAA;CACzD,CAAA;AAED,cAAM,OAAQ,SAAQ,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC;gBACtC,KAAK,EAAE,YAAY;IAKxB,eAAe,GACnB,MAAM,MAAM,MAAM,OAAO,UAAU,CAAC,iBAAiB,CAAC,UAMtD;IAEI,MAAM;CA+Fd;AACD,eAAe,OAAO,CAAA"}
@@ -49,12 +49,12 @@ var d = class extends s {
49
49
  ];
50
50
  if (m?.secondaryLabels) {
51
51
  let { secondaryLabels: e } = m;
52
- for (let t = 0; t < e.length; t++) {
53
- let n = e[t], r = s[d[n]], i;
54
- r && (i = h(n), w.push({
55
- columnDisplayName: i,
56
- value: r,
57
- columnName: n
52
+ for (let t of e) {
53
+ let e = s[d[t]], n;
54
+ e && (n = h(t), w.push({
55
+ columnDisplayName: n,
56
+ value: e,
57
+ columnName: t
58
58
  }));
59
59
  }
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Dataset.js","names":[],"sources":["../../../src/components/row_renderers/Dataset.tsx"],"sourcesContent":["import { getValueOrMultiValue } from '@/components/GenericCard/CardUtils'\nimport { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport ChipContainer from '@/components/row_renderers/utils/ChipContainer'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { DATASET } from '@/utils/SynapseConstants'\nimport { Button } from '@mui/material'\nimport { ColumnModel, SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { Component, MouseEvent } from 'react'\nimport { TableToGenericCardMapping } from '../GenericCard/TableRowGenericCard'\nimport { QueryVisualizationContextType } from '../QueryVisualizationWrapper'\nimport { CardFooter, Icon } from './utils'\n\nexport type DatasetProps = {\n data?: any\n schema?: any\n secondaryLabelLimit?: number\n selectColumns?: SelectColumn[]\n columnModels?: ColumnModel[]\n genericCardSchema?: TableToGenericCardMapping\n queryVisualizationContext: QueryVisualizationContextType\n}\n\nclass Dataset extends Component<DatasetProps, never> {\n constructor(props: DatasetProps) {\n super(props)\n this.handleLinkClick = this.handleLinkClick.bind(this)\n }\n\n public handleLinkClick =\n (link: string) => (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n window.open(\n `${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${link}`,\n '_blank',\n )\n }\n\n public render() {\n const {\n data,\n schema,\n selectColumns,\n columnModels,\n genericCardSchema,\n queryVisualizationContext: { getColumnDisplayName },\n } = this.props\n const datasetName = data[schema.datasetName]\n const summary = data[schema.summary]\n const tumorType = getValueOrMultiValue({\n columnName: 'tumorType',\n value: data[schema.tumorType],\n selectColumns,\n columnModels,\n }).str\n const diseaseFocus = getValueOrMultiValue({\n columnName: 'diseaseFocus',\n value: data[schema.diseaseFocus],\n selectColumns,\n columnModels,\n }).str\n const id = data[schema.id]\n const fundingAgency = data[schema.fundingAgency]\n const fileCount = data[schema.fileCount]\n const fileSize = calculateFriendlyFileSize(data[schema.fileSize])\n const values: CardLabel[] = [\n {\n columnDisplayName: 'FUNDER',\n value: getValueOrMultiValue({\n columnName: 'fundingAgency',\n value: fundingAgency,\n selectColumns,\n columnModels,\n }).str,\n },\n { columnDisplayName: 'SIZE', value: fileSize },\n { columnDisplayName: 'FILES', value: fileCount },\n ]\n if (genericCardSchema?.secondaryLabels) {\n const { secondaryLabels } = genericCardSchema\n for (let i = 0; i < secondaryLabels.length; i++) {\n const columnName = secondaryLabels[i]\n const value: string | undefined = data[schema[columnName]]\n let columnDisplayName\n if (value) {\n columnDisplayName = getColumnDisplayName(columnName)\n values.push({ columnDisplayName, value, columnName })\n }\n }\n }\n\n return (\n <div className=\"SRC-portalCard SRC-typeDataset \">\n <div className=\"SRC-cardThumbnail\">\n <Icon type={DATASET} />\n <div>{fileSize}</div>\n </div>\n <div className=\"SRC-cardContent SRC-dataset\">\n <div className=\"SRC-type\">Dataset </div>\n <div>\n <h3>\n <a\n target=\"_self\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${id}`}\n >\n {datasetName}\n </a>\n </h3>\n </div>\n <div className=\"SRC-description-dataset\">\n <p className=\"SRC-description-text\">{summary}</p>\n <div className=\"SRC-cardAction\">\n <Button\n className=\"SRC-datasetButton\"\n onClick={this.handleLinkClick(id)}\n color=\"secondary\"\n variant=\"contained\"\n >\n Download Dataset\n </Button>\n </div>\n </div>\n <div className=\"SRC-cardAnnotations\">\n <ChipContainer chips={[tumorType, diseaseFocus]} />\n </div>\n </div>\n <CardFooter\n isHeader={false}\n secondaryLabelLimit={this.props.secondaryLabelLimit}\n values={values}\n />\n </div>\n )\n }\n}\nexport default Dataset\n"],"mappings":";;;;;;;;;;;;AAuBA,IAAM,IAAN,cAAsB,EAA+B;CACnD,YAAY,GAAqB;EAE/B,AADA,MAAM,CAAK,GACX,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;CACvD;CAEA,mBACG,OAAkB,MAAyC;EAE1D,AADA,EAAM,eAAe,GACrB,OAAO,KACL,GAAG,EAA2B,OAAO,UAAU,KAC/C,QACF;CACF;CAEF,SAAgB;EACd,IAAM,EACJ,SACA,WACA,kBACA,iBACA,sBACA,2BAA2B,EAAE,8BAC3B,KAAK,OACH,IAAc,EAAK,EAAO,cAC1B,IAAU,EAAK,EAAO,UACtB,IAAY,EAAqB;GACrC,YAAY;GACZ,OAAO,EAAK,EAAO;GACnB;GACA;EACF,CAAC,EAAE,KACG,IAAe,EAAqB;GACxC,YAAY;GACZ,OAAO,EAAK,EAAO;GACnB;GACA;EACF,CAAC,EAAE,KACG,IAAK,EAAK,EAAO,KACjB,IAAgB,EAAK,EAAO,gBAC5B,IAAY,EAAK,EAAO,YACxB,IAAW,EAA0B,EAAK,EAAO,SAAS,GAC1D,IAAsB;GAC1B;IACE,mBAAmB;IACnB,OAAO,EAAqB;KAC1B,YAAY;KACZ,OAAO;KACP;KACA;IACF,CAAC,EAAE;GACL;GACA;IAAE,mBAAmB;IAAQ,OAAO;GAAS;GAC7C;IAAE,mBAAmB;IAAS,OAAO;GAAU;EACjD;EACA,IAAI,GAAmB,iBAAiB;GACtC,IAAM,EAAE,uBAAoB;GAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,EAAgB,QAAQ,KAAK;IAC/C,IAAM,IAAa,EAAgB,IAC7B,IAA4B,EAAK,EAAO,KAC1C;IACJ,AAAI,MACF,IAAoB,EAAqB,CAAU,GACnD,EAAO,KAAK;KAAE;KAAmB;KAAO;IAAW,CAAC;GAExD;EACF;EAEA,OACE,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD,EAAM,MAAM,EAAU,CAAA,GACtB,kBAAC,OAAD,EAAA,UAAM,EAAc,CAAA,CACjB;;IACL,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OAAK,WAAU;iBAAW;MAAa,CAAA;MACvC,kBAAC,OAAD,EAAA,UACE,kBAAC,MAAD,EAAA,UACE,kBAAC,KAAD;OACE,QAAO;OACP,MAAM,GAAG,EAA2B,OAAO,UAAU;iBAEpD;MACA,CAAA,EACD,CAAA,EACD,CAAA;MACL,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAwB;OAAW,CAAA,GAChD,kBAAC,OAAD;QAAK,WAAU;kBACb,kBAAC,GAAD;SACE,WAAU;SACV,SAAS,KAAK,gBAAgB,CAAE;SAChC,OAAM;SACN,SAAQ;mBACT;QAEO,CAAA;OACL,CAAA,CACF;;MACL,kBAAC,OAAD;OAAK,WAAU;iBACb,kBAAC,GAAD,EAAe,OAAO,CAAC,GAAW,CAAY,EAAI,CAAA;MAC/C,CAAA;KACF;;IACL,kBAAC,GAAD;KACE,UAAU;KACV,qBAAqB,KAAK,MAAM;KACxB;IACT,CAAA;GACE;;CAET;AACF"}
1
+ {"version":3,"file":"Dataset.js","names":[],"sources":["../../../src/components/row_renderers/Dataset.tsx"],"sourcesContent":["import { getValueOrMultiValue } from '@/components/GenericCard/CardUtils'\nimport { CardLabel } from '@/components/row_renderers/utils/CardFooter'\nimport ChipContainer from '@/components/row_renderers/utils/ChipContainer'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { DATASET } from '@/utils/SynapseConstants'\nimport { Button } from '@mui/material'\nimport { ColumnModel, SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { Component, MouseEvent } from 'react'\nimport { TableToGenericCardMapping } from '../GenericCard/TableRowGenericCard'\nimport { QueryVisualizationContextType } from '../QueryVisualizationWrapper'\nimport { CardFooter, Icon } from './utils'\n\nexport type DatasetProps = {\n data?: any\n schema?: any\n secondaryLabelLimit?: number\n selectColumns?: SelectColumn[]\n columnModels?: ColumnModel[]\n genericCardSchema?: TableToGenericCardMapping\n queryVisualizationContext: QueryVisualizationContextType\n}\n\nclass Dataset extends Component<DatasetProps, never> {\n constructor(props: DatasetProps) {\n super(props)\n this.handleLinkClick = this.handleLinkClick.bind(this)\n }\n\n public handleLinkClick =\n (link: string) => (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n window.open(\n `${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${link}`,\n '_blank',\n )\n }\n\n public render() {\n const {\n data,\n schema,\n selectColumns,\n columnModels,\n genericCardSchema,\n queryVisualizationContext: { getColumnDisplayName },\n } = this.props\n const datasetName = data[schema.datasetName]\n const summary = data[schema.summary]\n const tumorType = getValueOrMultiValue({\n columnName: 'tumorType',\n value: data[schema.tumorType],\n selectColumns,\n columnModels,\n }).str\n const diseaseFocus = getValueOrMultiValue({\n columnName: 'diseaseFocus',\n value: data[schema.diseaseFocus],\n selectColumns,\n columnModels,\n }).str\n const id = data[schema.id]\n const fundingAgency = data[schema.fundingAgency]\n const fileCount = data[schema.fileCount]\n const fileSize = calculateFriendlyFileSize(data[schema.fileSize])\n const values: CardLabel[] = [\n {\n columnDisplayName: 'FUNDER',\n value: getValueOrMultiValue({\n columnName: 'fundingAgency',\n value: fundingAgency,\n selectColumns,\n columnModels,\n }).str,\n },\n { columnDisplayName: 'SIZE', value: fileSize },\n { columnDisplayName: 'FILES', value: fileCount },\n ]\n if (genericCardSchema?.secondaryLabels) {\n const { secondaryLabels } = genericCardSchema\n for (const columnName of secondaryLabels) {\n const value: string | undefined = data[schema[columnName]]\n let columnDisplayName\n if (value) {\n columnDisplayName = getColumnDisplayName(columnName)\n values.push({ columnDisplayName, value, columnName })\n }\n }\n }\n\n return (\n <div className=\"SRC-portalCard SRC-typeDataset \">\n <div className=\"SRC-cardThumbnail\">\n <Icon type={DATASET} />\n <div>{fileSize}</div>\n </div>\n <div className=\"SRC-cardContent SRC-dataset\">\n <div className=\"SRC-type\">Dataset </div>\n <div>\n <h3>\n <a\n target=\"_self\"\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${id}`}\n >\n {datasetName}\n </a>\n </h3>\n </div>\n <div className=\"SRC-description-dataset\">\n <p className=\"SRC-description-text\">{summary}</p>\n <div className=\"SRC-cardAction\">\n <Button\n className=\"SRC-datasetButton\"\n onClick={this.handleLinkClick(id)}\n color=\"secondary\"\n variant=\"contained\"\n >\n Download Dataset\n </Button>\n </div>\n </div>\n <div className=\"SRC-cardAnnotations\">\n <ChipContainer chips={[tumorType, diseaseFocus]} />\n </div>\n </div>\n <CardFooter\n isHeader={false}\n secondaryLabelLimit={this.props.secondaryLabelLimit}\n values={values}\n />\n </div>\n )\n }\n}\nexport default Dataset\n"],"mappings":";;;;;;;;;;;;AAuBA,IAAM,IAAN,cAAsB,EAA+B;CACnD,YAAY,GAAqB;EAE/B,AADA,MAAM,CAAK,GACX,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;CACvD;CAEA,mBACG,OAAkB,MAAyC;EAE1D,AADA,EAAM,eAAe,GACrB,OAAO,KACL,GAAG,EAA2B,OAAO,UAAU,KAC/C,QACF;CACF;CAEF,SAAgB;EACd,IAAM,EACJ,SACA,WACA,kBACA,iBACA,sBACA,2BAA2B,EAAE,8BAC3B,KAAK,OACH,IAAc,EAAK,EAAO,cAC1B,IAAU,EAAK,EAAO,UACtB,IAAY,EAAqB;GACrC,YAAY;GACZ,OAAO,EAAK,EAAO;GACnB;GACA;EACF,CAAC,EAAE,KACG,IAAe,EAAqB;GACxC,YAAY;GACZ,OAAO,EAAK,EAAO;GACnB;GACA;EACF,CAAC,EAAE,KACG,IAAK,EAAK,EAAO,KACjB,IAAgB,EAAK,EAAO,gBAC5B,IAAY,EAAK,EAAO,YACxB,IAAW,EAA0B,EAAK,EAAO,SAAS,GAC1D,IAAsB;GAC1B;IACE,mBAAmB;IACnB,OAAO,EAAqB;KAC1B,YAAY;KACZ,OAAO;KACP;KACA;IACF,CAAC,EAAE;GACL;GACA;IAAE,mBAAmB;IAAQ,OAAO;GAAS;GAC7C;IAAE,mBAAmB;IAAS,OAAO;GAAU;EACjD;EACA,IAAI,GAAmB,iBAAiB;GACtC,IAAM,EAAE,uBAAoB;GAC5B,KAAK,IAAM,KAAc,GAAiB;IACxC,IAAM,IAA4B,EAAK,EAAO,KAC1C;IACJ,AAAI,MACF,IAAoB,EAAqB,CAAU,GACnD,EAAO,KAAK;KAAE;KAAmB;KAAO;IAAW,CAAC;GAExD;EACF;EAEA,OACE,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD,EAAM,MAAM,EAAU,CAAA,GACtB,kBAAC,OAAD,EAAA,UAAM,EAAc,CAAA,CACjB;;IACL,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OAAK,WAAU;iBAAW;MAAa,CAAA;MACvC,kBAAC,OAAD,EAAA,UACE,kBAAC,MAAD,EAAA,UACE,kBAAC,KAAD;OACE,QAAO;OACP,MAAM,GAAG,EAA2B,OAAO,UAAU;iBAEpD;MACA,CAAA,EACD,CAAA,EACD,CAAA;MACL,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,KAAD;QAAG,WAAU;kBAAwB;OAAW,CAAA,GAChD,kBAAC,OAAD;QAAK,WAAU;kBACb,kBAAC,GAAD;SACE,WAAU;SACV,SAAS,KAAK,gBAAgB,CAAE;SAChC,OAAM;SACN,SAAQ;mBACT;QAEO,CAAA;OACL,CAAA,CACF;;MACL,kBAAC,OAAD;OAAK,WAAU;iBACb,kBAAC,GAAD,EAAe,OAAO,CAAC,GAAW,CAAY,EAAI,CAAA;MAC/C,CAAA;KACF;;IACL,kBAAC,GAAD;KACE,UAAU;KACV,qBAAqB,KAAK,MAAM;KACxB;IACT,CAAA;GACE;;CAET;AACF"}
@@ -11,7 +11,7 @@ var i = class extends t {
11
11
  };
12
12
  render() {
13
13
  let { data: t, schema: i } = this.props, a = t[i.organizationName], o = t[i.organizationPath], s = t[i.summary], c = t[i.website], l = t[i.logo], u = c.replace("https://", "");
14
- u = u.replace("http://", ""), u.charAt(u.length - 1) === "/" && (u = u.substring(0, u.length - 1));
14
+ u = u.replace("http://", ""), u.at(-1) === "/" && (u = u.substring(0, u.length - 1));
15
15
  let d = typeof window < "u" && window.location.hash.substring(1) === o, f = {}, p;
16
16
  return d ? f.paddingBottom = "42px" : p = /* @__PURE__ */ n("div", {
17
17
  className: "SRC-marginAuto SRC-cardAction",
@@ -1 +1 @@
1
- {"version":3,"file":"Funder.js","names":[],"sources":["../../../src/components/row_renderers/Funder.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { Component, MouseEvent } from 'react'\n\nexport type FunderProps = {\n data?: any\n schema?: any\n}\n\nexport default class Funder extends Component<FunderProps, never> {\n constructor(props: FunderProps) {\n super(props)\n this.handleLinkClick = this.handleLinkClick.bind(this)\n }\n public handleLinkClick =\n (link: string) => (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n window.open(link, '_blank')\n }\n public render() {\n const { data, schema } = this.props\n const organizationName = data[schema.organizationName]\n const organizationPath = data[schema.organizationPath]\n const summary = data[schema.summary]\n const website = data[schema.website]\n const logoHref: string = data[schema.logo]\n // remove leading http(s):// and trailing /\n let websiteDisplayName = website.replace('https://', '')\n websiteDisplayName = websiteDisplayName.replace('http://', '')\n if (websiteDisplayName.charAt(websiteDisplayName.length - 1) === '/') {\n websiteDisplayName = websiteDisplayName.substring(\n 0,\n websiteDisplayName.length - 1,\n )\n }\n const isOnOrgPath =\n typeof window !== 'undefined' &&\n window.location.hash.substring(1) === organizationPath\n const style: any = {}\n let showOrgLink\n if (!isOnOrgPath) {\n showOrgLink = (\n <div className=\"SRC-marginAuto SRC-cardAction\">\n <WideButton\n href={organizationPath}\n variant=\"contained\"\n color=\"secondary\"\n >\n View Funded Research\n </WideButton>\n </div>\n )\n } else {\n style.paddingBottom = '42px'\n }\n return (\n <div className=\"SRC-portalCard SRC-typeFunder \" style={style}>\n <div className=\"SRC-cardContent\">\n <div className=\"SRC-type\">Organization</div>\n {logoHref && (\n <div className=\"SRC-cardThumbnail\">\n <img alt=\"funder logo\" className=\"SRC-logo\" src={logoHref} />\n </div>\n )}\n <div>\n <h3>\n {isOnOrgPath && organizationName}\n {!isOnOrgPath && (\n <a href={organizationPath}>{organizationName}</a>\n )}\n </h3>\n </div>\n <div className=\"SRC-website\">\n <a rel=\"noopener noreferrer\" target=\"_blank\" href={website}>\n {websiteDisplayName}\n </a>\n </div>\n <div className=\"SRC-description\">{summary}</div>\n </div>\n {showOrgLink}\n </div>\n )\n }\n}\n"],"mappings":";;;;AAQA,IAAqB,IAArB,cAAoC,EAA8B;CAChE,YAAY,GAAoB;EAE9B,AADA,MAAM,CAAK,GACX,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;CACvD;CACA,mBACG,OAAkB,MAAyC;EAE1D,AADA,EAAM,eAAe,GACrB,OAAO,KAAK,GAAM,QAAQ;CAC5B;CACF,SAAgB;EACd,IAAM,EAAE,SAAM,cAAW,KAAK,OACxB,IAAmB,EAAK,EAAO,mBAC/B,IAAmB,EAAK,EAAO,mBAC/B,IAAU,EAAK,EAAO,UACtB,IAAU,EAAK,EAAO,UACtB,IAAmB,EAAK,EAAO,OAEjC,IAAqB,EAAQ,QAAQ,YAAY,EAAE;EAEvD,AADA,IAAqB,EAAmB,QAAQ,WAAW,EAAE,GACzD,EAAmB,OAAO,EAAmB,SAAS,CAAC,MAAM,QAC/D,IAAqB,EAAmB,UACtC,GACA,EAAmB,SAAS,CAC9B;EAEF,IAAM,IACJ,OAAO,SAAW,OAClB,OAAO,SAAS,KAAK,UAAU,CAAC,MAAM,GAClC,IAAa,CAAC,GAChB;EAgBJ,OAfK,IAaH,EAAM,gBAAgB,SAZtB,IACE,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,GAAD;IACE,MAAM;IACN,SAAQ;IACR,OAAM;cACP;GAEW,CAAA;EACT,CAAA,GAMP,kBAAC,OAAD;GAAK,WAAU;GAAwC;aAAvD,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,OAAD;MAAK,WAAU;gBAAW;KAAiB,CAAA;KAC1C,KACC,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,OAAD;OAAK,KAAI;OAAc,WAAU;OAAW,KAAK;MAAW,CAAA;KACzD,CAAA;KAEP,kBAAC,OAAD,EAAA,UACE,kBAAC,MAAD,EAAA,UAAA,CACG,KAAe,GACf,CAAC,KACA,kBAAC,KAAD;MAAG,MAAM;gBAAmB;KAAoB,CAAA,CAEhD,EAAA,CAAA,EACD,CAAA;KACL,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,KAAD;OAAG,KAAI;OAAsB,QAAO;OAAS,MAAM;iBAChD;MACA,CAAA;KACA,CAAA;KACL,kBAAC,OAAD;MAAK,WAAU;gBAAmB;KAAa,CAAA;IAC5C;OACJ,CACE;;CAET;AACF"}
1
+ {"version":3,"file":"Funder.js","names":[],"sources":["../../../src/components/row_renderers/Funder.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { Component, MouseEvent } from 'react'\n\nexport type FunderProps = {\n data?: any\n schema?: any\n}\n\nexport default class Funder extends Component<FunderProps, never> {\n constructor(props: FunderProps) {\n super(props)\n this.handleLinkClick = this.handleLinkClick.bind(this)\n }\n public handleLinkClick =\n (link: string) => (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n window.open(link, '_blank')\n }\n public render() {\n const { data, schema } = this.props\n const organizationName = data[schema.organizationName]\n const organizationPath = data[schema.organizationPath]\n const summary = data[schema.summary]\n const website = data[schema.website]\n const logoHref: string = data[schema.logo]\n // remove leading http(s):// and trailing /\n let websiteDisplayName = website.replace('https://', '')\n websiteDisplayName = websiteDisplayName.replace('http://', '')\n if (websiteDisplayName.at(-1) === '/') {\n websiteDisplayName = websiteDisplayName.substring(\n 0,\n websiteDisplayName.length - 1,\n )\n }\n const isOnOrgPath =\n typeof window !== 'undefined' &&\n window.location.hash.substring(1) === organizationPath\n const style: any = {}\n let showOrgLink\n if (!isOnOrgPath) {\n showOrgLink = (\n <div className=\"SRC-marginAuto SRC-cardAction\">\n <WideButton\n href={organizationPath}\n variant=\"contained\"\n color=\"secondary\"\n >\n View Funded Research\n </WideButton>\n </div>\n )\n } else {\n style.paddingBottom = '42px'\n }\n return (\n <div className=\"SRC-portalCard SRC-typeFunder \" style={style}>\n <div className=\"SRC-cardContent\">\n <div className=\"SRC-type\">Organization</div>\n {logoHref && (\n <div className=\"SRC-cardThumbnail\">\n <img alt=\"funder logo\" className=\"SRC-logo\" src={logoHref} />\n </div>\n )}\n <div>\n <h3>\n {isOnOrgPath && organizationName}\n {!isOnOrgPath && (\n <a href={organizationPath}>{organizationName}</a>\n )}\n </h3>\n </div>\n <div className=\"SRC-website\">\n <a rel=\"noopener noreferrer\" target=\"_blank\" href={website}>\n {websiteDisplayName}\n </a>\n </div>\n <div className=\"SRC-description\">{summary}</div>\n </div>\n {showOrgLink}\n </div>\n )\n }\n}\n"],"mappings":";;;;AAQA,IAAqB,IAArB,cAAoC,EAA8B;CAChE,YAAY,GAAoB;EAE9B,AADA,MAAM,CAAK,GACX,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;CACvD;CACA,mBACG,OAAkB,MAAyC;EAE1D,AADA,EAAM,eAAe,GACrB,OAAO,KAAK,GAAM,QAAQ;CAC5B;CACF,SAAgB;EACd,IAAM,EAAE,SAAM,cAAW,KAAK,OACxB,IAAmB,EAAK,EAAO,mBAC/B,IAAmB,EAAK,EAAO,mBAC/B,IAAU,EAAK,EAAO,UACtB,IAAU,EAAK,EAAO,UACtB,IAAmB,EAAK,EAAO,OAEjC,IAAqB,EAAQ,QAAQ,YAAY,EAAE;EAEvD,AADA,IAAqB,EAAmB,QAAQ,WAAW,EAAE,GACzD,EAAmB,GAAG,EAAE,MAAM,QAChC,IAAqB,EAAmB,UACtC,GACA,EAAmB,SAAS,CAC9B;EAEF,IAAM,IACJ,OAAO,SAAW,OAClB,OAAO,SAAS,KAAK,UAAU,CAAC,MAAM,GAClC,IAAa,CAAC,GAChB;EAgBJ,OAfK,IAaH,EAAM,gBAAgB,SAZtB,IACE,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,GAAD;IACE,MAAM;IACN,SAAQ;IACR,OAAM;cACP;GAEW,CAAA;EACT,CAAA,GAMP,kBAAC,OAAD;GAAK,WAAU;GAAwC;aAAvD,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,OAAD;MAAK,WAAU;gBAAW;KAAiB,CAAA;KAC1C,KACC,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,OAAD;OAAK,KAAI;OAAc,WAAU;OAAW,KAAK;MAAW,CAAA;KACzD,CAAA;KAEP,kBAAC,OAAD,EAAA,UACE,kBAAC,MAAD,EAAA,UAAA,CACG,KAAe,GACf,CAAC,KACA,kBAAC,KAAD;MAAG,MAAM;gBAAmB;KAAoB,CAAA,CAEhD,EAAA,CAAA,EACD,CAAA;KACL,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,KAAD;OAAG,KAAI;OAAsB,QAAO;OAAS,MAAM;iBAChD;MACA,CAAA;KACA,CAAA;KACL,kBAAC,OAAD;MAAK,WAAU;gBAAmB;KAAa,CAAA;IAC5C;OACJ,CACE;;CAET;AACF"}
@@ -32,7 +32,12 @@ type ElementWithTooltipProps = PropsWithChildren<{
32
32
  * @see https://stackoverflow.com/questions/75083605/mui-the-menu-component-doesnt-accept-a-fragment-as-a-child-consider-providing
33
33
  */
34
34
  menuItems?: React.ReactNode;
35
+ /**
36
+ * When true, choosing a menu item closes the menu. Leave unset for menus whose items toggle state in place, so
37
+ * several can be toggled in a row.
38
+ */
39
+ closeMenuOnClick?: boolean;
35
40
  }>;
36
- export declare const ElementWithTooltip: ({ image, callbackFn, tooltipText, className, imageColor, tooltipVisualProps, children, darkTheme, size, icon, menuItems, }: ElementWithTooltipProps) => React.ReactNode;
41
+ export declare const ElementWithTooltip: ({ image, callbackFn, tooltipText, className, imageColor, tooltipVisualProps, children, darkTheme, size, icon, menuItems, closeMenuOnClick, }: ElementWithTooltipProps) => React.ReactNode;
37
42
  export {};
38
43
  //# sourceMappingURL=ElementWithTooltip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElementWithTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/widgets/ElementWithTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EACL,gBAAgB,EAGhB,iBAAiB,EACjB,SAAS,EAEV,MAAM,OAAO,CAAA;AACd,OAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAI1D,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC1C,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IACjE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAMD;;;;;GAKG;AAEH,KAAK,uBAAuB,GAAG,iBAAiB,CAAC;IAC/C,KAAK,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAA;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B,CAAC,CAAA;AAcF,eAAO,MAAM,kBAAkB,GAAI,4HAYhC,uBAAuB,KAAG,KAAK,CAAC,SAmElC,CAAA"}
1
+ {"version":3,"file":"ElementWithTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/widgets/ElementWithTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EACL,gBAAgB,EAIhB,iBAAiB,EACjB,SAAS,EAEV,MAAM,OAAO,CAAA;AACd,OAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAI1D,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC1C,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IACjE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAMD;;;;;GAKG;AAEH,KAAK,uBAAuB,GAAG,iBAAiB,CAAC;IAC/C,KAAK,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAA;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAC,CAAA;AAcF,eAAO,MAAM,kBAAkB,GAAI,8IAahC,uBAAuB,KAAG,KAAK,CAAC,SA+FlC,CAAA"}
@@ -16,33 +16,41 @@ function l(t, n, r) {
16
16
  }
17
17
  });
18
18
  }
19
- var u = ({ image: e, callbackFn: u, tooltipText: d, className: f = "", imageColor: p, tooltipVisualProps: m = c, children: h, darkTheme: g, size: _, icon: v, menuItems: y }) => {
20
- let { place: b } = m, x = (v ? typeof v == "string" ? /* @__PURE__ */ o(t, { type: v }) : v : void 0) || (e ? l(e, p, _) : h || /* @__PURE__ */ o(a, {})), [S, C] = n(null), w = !!S, T = (e) => {
21
- C(e.currentTarget);
22
- }, E = () => {
23
- C(null);
24
- }, D;
25
- return D = h ? /* @__PURE__ */ o("div", {
19
+ var u = ({ image: e, callbackFn: u, tooltipText: d, className: f = "", imageColor: p, tooltipVisualProps: m = c, children: h, darkTheme: g, size: _, icon: v, menuItems: y, closeMenuOnClick: b = !1 }) => {
20
+ let { place: x } = m, S = (v ? typeof v == "string" ? /* @__PURE__ */ o(t, { type: v }) : v : void 0) || (e ? l(e, p, _) : h || /* @__PURE__ */ o(a, {})), [C, w] = n(null), T = !!C, E = (e) => {
21
+ w(e.currentTarget);
22
+ }, D = () => {
23
+ w(null);
24
+ }, O = (e, t) => {
25
+ let n = e.target;
26
+ e.key === t && n.closest("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") && D();
27
+ }, k;
28
+ return k = h ? /* @__PURE__ */ o("div", {
26
29
  className: "SRC-hand-cursor",
27
30
  children: h
28
31
  }) : /* @__PURE__ */ o("button", {
29
32
  tabIndex: 0,
30
33
  className: `ElementWithTooltip SRC-hand-cursor SRC-grey-background-hover ${f} ${g ? "dark-theme" : ""} `,
31
34
  onClick: (e) => {
32
- u ? u() : T(e);
35
+ u ? u() : E(e);
33
36
  },
34
37
  "aria-label": d,
35
- children: x
38
+ children: S
36
39
  }), /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(i, {
37
40
  title: d,
38
41
  enterNextDelay: 500,
39
- placement: b,
42
+ placement: x,
40
43
  "data-testid": "ElementTooltip",
41
- children: D
44
+ children: k
42
45
  }), y && /* @__PURE__ */ o(r, {
43
- anchorEl: S,
44
- open: w,
45
- onClose: E,
46
+ anchorEl: C,
47
+ open: T,
48
+ onClose: D,
49
+ slotProps: { list: b ? {
50
+ onClick: D,
51
+ onKeyDown: (e) => O(e, "Enter"),
52
+ onKeyUp: (e) => O(e, " ")
53
+ } : void 0 },
46
54
  children: y
47
55
  })] });
48
56
  };