synapse-react-client 4.0.45 → 4.0.47

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 (842) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +1 -0
  3. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
  4. package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
  6. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  7. package/dist/aridhia-queries/index.d.ts +1 -0
  8. package/dist/aridhia-queries/index.d.ts.map +1 -1
  9. package/dist/aridhia-queries/index.js +11 -10
  10. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
  11. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
  12. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
  13. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
  14. package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
  15. package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
  16. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.d.ts.map +1 -1
  17. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +6 -4
  18. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  19. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  20. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
  21. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
  22. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
  23. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  24. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
  25. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  29. package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
  30. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  31. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
  32. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  33. package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
  34. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  35. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
  36. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  37. package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
  38. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  39. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  40. package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
  41. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  42. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
  43. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
  44. package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
  45. package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
  46. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -1
  47. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
  48. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
  49. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
  50. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
  51. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
  52. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  53. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
  54. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
  55. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
  56. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  57. package/dist/components/Aridhia/fairFormToRjsf.js +1 -1
  58. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
  59. package/dist/components/Authentication/LastLoginInfo.js +3 -3
  60. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  61. package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
  62. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  63. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  64. package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
  65. package/dist/components/Authentication/TOTPForm.js +3 -3
  66. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  67. package/dist/components/Authentication/index.d.ts +6 -6
  68. package/dist/components/Authentication/index.d.ts.map +1 -1
  69. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
  70. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  71. package/dist/components/CardContainer/CardContainer.js +7 -7
  72. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  73. package/dist/components/CertificationQuiz/CertificationQuiz.js +1 -1
  74. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  75. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
  76. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  77. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +1 -1
  78. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  79. package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
  80. package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
  81. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  82. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
  83. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  84. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
  85. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  86. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
  87. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
  88. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  89. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
  90. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  91. package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
  92. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  93. package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
  94. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  95. package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
  96. package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
  97. package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
  98. package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
  99. package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
  100. package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
  101. package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
  102. package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
  103. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
  104. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
  105. package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
  106. package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
  107. package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
  108. package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
  109. package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
  110. package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
  111. package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
  112. package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
  113. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  114. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  115. package/dist/components/ComponentCollapse.js +2 -1
  116. package/dist/components/ComponentCollapse.js.map +1 -1
  117. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  118. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  119. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  120. package/dist/components/DataGrid/SynapseGrid.js +231 -219
  121. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  122. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  123. package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
  124. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  125. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
  126. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  127. package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
  128. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  129. package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
  130. package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
  131. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
  132. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
  133. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
  134. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
  135. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  136. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
  137. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  138. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
  139. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  140. package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
  141. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  142. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  143. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
  144. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  145. package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
  146. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  147. package/dist/components/DataGrid/components/contextMenu.js +3 -3
  148. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  149. package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
  150. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +14 -12
  151. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  152. package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
  153. package/dist/components/DataGrid/hooks/useStack.js +2 -2
  154. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  155. package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
  156. package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
  157. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  158. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  159. package/dist/components/DataGrid/utils/columnFactory.js +47 -42
  160. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  161. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
  162. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  163. package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
  164. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  165. package/dist/components/DataGrid/utils/splitPatch.d.ts.map +1 -1
  166. package/dist/components/DataGrid/utils/splitPatch.js +22 -13
  167. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  168. package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
  169. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  170. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
  171. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +3 -2
  172. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  173. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
  174. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
  175. package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
  176. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  177. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  178. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
  179. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  180. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  181. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  182. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
  183. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  184. package/dist/components/EntityFinder/EntityFinder.js +4 -4
  185. package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
  186. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  187. package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
  188. package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
  189. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  190. package/dist/components/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
  191. package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
  192. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  193. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
  194. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  195. package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
  196. package/dist/components/EntityHeaderTable/Filter.js +1 -1
  197. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  198. package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
  199. package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
  200. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  201. package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
  202. package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
  203. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  204. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  205. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
  206. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
  207. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  208. package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
  209. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  210. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
  211. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  212. package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
  213. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
  214. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  215. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -1
  216. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
  217. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
  218. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  219. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
  220. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  221. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
  222. package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
  223. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
  224. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
  225. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
  226. package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
  227. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
  228. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
  229. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
  230. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
  231. package/dist/components/FormTemplateEditor/StepCard.js +15 -10
  232. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
  233. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
  234. package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
  235. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
  236. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
  237. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
  238. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
  239. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
  240. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
  241. package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
  242. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  243. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +46 -46
  244. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
  245. package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
  246. package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
  247. package/dist/components/GenericCard/PortalDOI/PortalDOI.js +5 -5
  248. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  249. package/dist/components/GenericCard/TableRowGenericCard.js +38 -38
  250. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  251. package/dist/components/GoalsV3/GoalsV3.js +1 -1
  252. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  253. package/dist/components/HelpPopover/HelpPopover.js +1 -1
  254. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  255. package/dist/components/HexGrid/HexGrid.d.ts +3 -1
  256. package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
  257. package/dist/components/HexGrid/HexGrid.js +14 -13
  258. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  259. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  260. package/dist/components/IconSvg/IconSvg.js +154 -47
  261. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  262. package/dist/components/IconSvg/index.d.ts +1 -1
  263. package/dist/components/IconSvg/index.d.ts.map +1 -1
  264. package/dist/components/IconSvg/index.js.map +1 -1
  265. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
  266. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
  267. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  268. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
  269. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
  270. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  271. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
  272. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
  273. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  274. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
  275. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
  276. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
  277. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
  278. package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
  279. package/dist/components/Markdown/MarkdownCollapse.js +3 -1
  280. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  281. package/dist/components/Markdown/MarkdownEditor.js +1 -1
  282. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  283. package/dist/components/Markdown/widget/index.d.ts +1 -1
  284. package/dist/components/Markdown/widget/index.d.ts.map +1 -1
  285. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
  286. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  287. package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
  288. package/dist/components/ModalDownload/ModalDownload.js +2 -1
  289. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  290. package/dist/components/OAuthClientManagement/OAuthManagement.js +14 -13
  291. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  292. package/dist/components/Plot/BarPlot.js +1 -1
  293. package/dist/components/Plot/BarPlot.js.map +1 -1
  294. package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
  295. package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
  296. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  297. package/dist/components/PortalList/PortalCard.d.ts.map +1 -1
  298. package/dist/components/PortalList/PortalCard.js +6 -5
  299. package/dist/components/PortalList/PortalCard.js.map +1 -1
  300. package/dist/components/PortalList/PortalList.js +4 -4
  301. package/dist/components/PortalList/PortalList.js.map +1 -1
  302. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
  303. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  304. package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
  305. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
  306. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  307. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  308. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
  309. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  310. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
  311. package/dist/components/QueryBuilder/FilterConditionRow.js +31 -30
  312. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
  313. package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
  314. package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
  315. package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
  316. package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
  317. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
  318. package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
  319. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
  320. package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
  321. package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
  322. package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
  323. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
  324. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
  325. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
  326. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
  327. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
  328. package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
  329. package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
  330. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
  331. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
  332. package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
  333. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
  334. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
  335. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
  336. package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
  337. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
  338. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
  339. package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
  340. package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
  341. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
  342. package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
  343. package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
  344. package/dist/components/QueryCountButton/QueryCountButton.js +5 -5
  345. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  346. package/dist/components/QuerySortSelector.js +5 -5
  347. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
  348. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  349. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
  350. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
  351. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
  352. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
  353. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
  354. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
  355. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
  356. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  357. package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
  358. package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
  359. package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
  360. package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
  361. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
  362. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
  363. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
  364. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
  365. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
  366. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
  367. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
  368. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  369. package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
  370. package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
  371. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  372. package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
  373. package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
  374. package/dist/components/QueryWrapperErrorBoundary.js +26 -21
  375. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  376. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
  377. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
  378. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  379. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
  380. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  381. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
  382. package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
  383. package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
  384. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  385. package/dist/components/ReleaseCard/ReleaseCardLarge.js +5 -5
  386. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  387. package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
  388. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
  389. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
  390. package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
  391. package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
  392. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
  393. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
  394. package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
  395. package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
  396. package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
  397. package/dist/components/RowDataTable/RowDataTable.js +25 -8
  398. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  399. package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
  400. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  401. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
  402. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
  403. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  404. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
  405. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  406. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
  407. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  408. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
  409. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  410. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
  411. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  412. package/dist/components/ShareThisPage/ShareThisPage.js +4 -4
  413. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  414. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
  415. package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
  416. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  417. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
  418. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  419. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  420. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  421. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  422. package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
  423. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  424. package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
  425. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  426. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
  427. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
  428. package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
  429. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  430. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  431. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  432. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
  433. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  434. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
  435. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
  436. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  437. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
  438. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  439. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
  440. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  441. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  442. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
  443. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  444. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  445. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  446. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
  447. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  448. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
  449. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
  450. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  451. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
  452. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  453. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
  454. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
  455. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  456. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
  457. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
  458. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  459. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
  460. package/dist/components/SynapseTable/SqlEditor.js +7 -7
  461. package/dist/components/SynapseTable/SynapseTable.js +8 -8
  462. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  463. package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
  464. package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
  465. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  466. package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
  467. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  468. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  469. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
  470. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  471. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
  472. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  473. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
  474. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +6 -6
  475. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  476. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
  477. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
  478. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  479. package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
  480. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
  481. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
  482. package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
  483. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  484. package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
  485. package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
  486. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  487. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +2 -2
  488. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  489. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  490. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  491. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
  492. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  493. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  494. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
  495. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  496. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +59 -59
  497. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  498. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
  499. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
  500. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  501. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
  502. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  503. package/dist/components/TanStackTable/ColumnHeader.js +1 -1
  504. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  505. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
  506. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  507. package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
  508. package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
  509. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  510. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
  511. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  512. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
  513. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
  514. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  515. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  516. package/dist/components/TotalQueryResults.js +14 -14
  517. package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
  518. package/dist/components/Webhook/WebhookDashboard.js +3 -3
  519. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  520. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  521. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  522. package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
  523. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  524. package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
  525. package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
  526. package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
  527. package/dist/components/dataaccess/FormTemplateTable.js +6 -6
  528. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
  529. package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
  530. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  531. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
  532. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  533. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  534. package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
  535. package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
  536. package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
  537. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  538. package/dist/components/download_list/DownloadDetails.d.ts.map +1 -1
  539. package/dist/components/download_list/DownloadDetails.js +12 -10
  540. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  541. package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
  542. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  543. package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
  544. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  545. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  546. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  547. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  548. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  549. package/dist/components/error/ErrorBanner.d.ts.map +1 -1
  550. package/dist/components/error/ErrorBanner.js +49 -46
  551. package/dist/components/error/ErrorBanner.js.map +1 -1
  552. package/dist/components/error/ErrorChip.d.ts.map +1 -1
  553. package/dist/components/error/ErrorChip.js +2 -1
  554. package/dist/components/error/ErrorChip.js.map +1 -1
  555. package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
  556. package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
  557. package/dist/components/row_renderers/Dataset.js +6 -6
  558. package/dist/components/row_renderers/Dataset.js.map +1 -1
  559. package/dist/components/row_renderers/Funder.js +1 -1
  560. package/dist/components/row_renderers/Funder.js.map +1 -1
  561. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
  562. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
  563. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  564. package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
  565. package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
  566. package/dist/components/widgets/ElementWithTooltip.js +22 -14
  567. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  568. package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
  569. package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
  570. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  571. package/dist/components/widgets/SynapseImage.js +1 -1
  572. package/dist/components/widgets/SynapseImage.js.map +1 -1
  573. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
  574. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  575. package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
  576. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  577. package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
  578. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
  579. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  580. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
  581. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  582. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
  583. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
  584. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  585. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
  586. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  587. package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
  588. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  589. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
  590. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
  591. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  592. package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
  593. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  594. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
  595. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
  596. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  597. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
  598. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  599. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
  600. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
  601. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
  602. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  603. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
  604. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
  605. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
  606. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  607. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
  608. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
  609. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  610. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
  611. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
  612. package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
  613. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  614. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
  615. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
  616. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  617. package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
  618. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  619. package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
  620. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  621. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
  622. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  623. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
  624. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  625. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
  626. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  627. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
  628. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  629. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
  630. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
  631. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
  632. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
  633. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
  634. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
  635. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
  636. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
  637. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
  638. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  639. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
  640. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
  641. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
  642. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
  643. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
  644. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
  645. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
  646. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
  647. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
  648. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
  649. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
  650. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
  651. package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
  652. package/dist/mocks/mockAnnotationColumns.js +1 -1
  653. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  654. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +17 -0
  655. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  656. package/dist/mocks/msw/handlers/aridhiaHandlers.js +62 -42
  657. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  658. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
  659. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
  660. package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
  661. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  662. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
  663. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
  664. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
  665. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
  666. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  667. package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
  668. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  669. package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
  670. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  671. package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
  672. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  673. package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
  674. package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
  675. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  676. package/dist/mocks/msw/server.d.ts.map +1 -1
  677. package/dist/mocks/msw/server.js +4 -2
  678. package/dist/mocks/msw/server.js.map +1 -1
  679. package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
  680. package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
  681. package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
  682. package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
  683. package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
  684. package/dist/stories/ColorPaletteInspector.js +2 -2
  685. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  686. package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
  687. package/dist/style/main.css +1 -1
  688. package/dist/synapse-queries/auth/useOIDC.js +2 -2
  689. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  690. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
  691. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
  692. package/dist/synapse-queries/challenge/useChallenge.js +2 -2
  693. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  694. package/dist/synapse-queries/chat/useChat.js +8 -8
  695. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  696. package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
  697. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  698. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
  699. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  700. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
  701. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  702. package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
  703. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  704. package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
  705. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  706. package/dist/synapse-queries/download/index.js +2 -2
  707. package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
  708. package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
  709. package/dist/synapse-queries/download/useDownloadList.js +14 -13
  710. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  711. package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
  712. package/dist/synapse-queries/entity/useEntity.js +20 -20
  713. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  714. package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
  715. package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
  716. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  717. package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
  718. package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
  719. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  720. package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
  721. package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
  722. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  723. package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
  724. package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
  725. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  726. package/dist/synapse-queries/forum/useReply.js +6 -6
  727. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  728. package/dist/synapse-queries/forum/useThread.js +14 -14
  729. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  730. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  731. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  732. package/dist/synapse-queries/grid/useGridSession.js +4 -4
  733. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  734. package/dist/synapse-queries/index.js +177 -176
  735. package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
  736. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  737. package/dist/synapse-queries/portal/usePortal.js +7 -7
  738. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  739. package/dist/synapse-queries/subscription/useSubscription.js +4 -4
  740. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  741. package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
  742. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  743. package/dist/synapse-queries/team/useTeam.js +2 -2
  744. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  745. package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
  746. package/dist/synapse-queries/team/useTeamList.js +3 -3
  747. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  748. package/dist/synapse-queries/team/useTeamMembers.js +8 -8
  749. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  750. package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
  751. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  752. package/dist/synapse-queries/trash/useTrashCan.js +4 -4
  753. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  754. package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
  755. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  756. package/dist/synapse-queries/user/useFavorites.js +4 -4
  757. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  758. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  759. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  760. package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
  761. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  762. package/dist/synapse-queries/wiki/useWiki.js +10 -10
  763. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  764. package/dist/theme/DefaultTheme.d.ts.map +1 -1
  765. package/dist/theme/DefaultTheme.js +4 -1
  766. package/dist/theme/DefaultTheme.js.map +1 -1
  767. package/dist/tsconfig.build.tsbuildinfo +1 -1
  768. package/dist/utils/APIConstants.d.ts.map +1 -1
  769. package/dist/utils/APIConstants.js.map +1 -1
  770. package/dist/utils/AppUtils/AppUtils.js +1 -1
  771. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  772. package/dist/utils/ContentTypeUtils.js +4 -4
  773. package/dist/utils/ContentTypeUtils.js.map +1 -1
  774. package/dist/utils/PermissionLevelToAccessType.js +1 -1
  775. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  776. package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
  777. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  778. package/dist/utils/context/DocumentMetadataContext.js +1 -1
  779. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  780. package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
  781. package/dist/utils/functions/AccessControlListUtils.js +3 -3
  782. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  783. package/dist/utils/functions/ArrayUtils.js +2 -2
  784. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  785. package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
  786. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  787. package/dist/utils/functions/FileHandleUtils.js +1 -1
  788. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  789. package/dist/utils/functions/RegularExpressions.js +1 -1
  790. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  791. package/dist/utils/functions/StringUtils.d.ts.map +1 -1
  792. package/dist/utils/functions/StringUtils.js +1 -2
  793. package/dist/utils/functions/StringUtils.js.map +1 -1
  794. package/dist/utils/functions/deepLinkingUtils.js +2 -2
  795. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  796. package/dist/utils/functions/enumerationFacet.d.ts +26 -0
  797. package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
  798. package/dist/utils/functions/enumerationFacet.js +27 -0
  799. package/dist/utils/functions/enumerationFacet.js.map +1 -0
  800. package/dist/utils/functions/facetCountUtils.d.ts +12 -0
  801. package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
  802. package/dist/utils/functions/facetCountUtils.js +9 -0
  803. package/dist/utils/functions/facetCountUtils.js.map +1 -0
  804. package/dist/utils/functions/getEndpoint.js.map +1 -1
  805. package/dist/utils/functions/getUserData.js +1 -1
  806. package/dist/utils/functions/getUserData.js.map +1 -1
  807. package/dist/utils/functions/queryUtils.d.ts +1 -1
  808. package/dist/utils/functions/queryUtils.d.ts.map +1 -1
  809. package/dist/utils/functions/queryUtils.js +26 -22
  810. package/dist/utils/functions/queryUtils.js.map +1 -1
  811. package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
  812. package/dist/utils/functions/testDownloadSpeed.js +17 -26
  813. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  814. package/dist/utils/functions/unCamelCase.js +1 -1
  815. package/dist/utils/functions/unCamelCase.js.map +1 -1
  816. package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
  817. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  818. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
  819. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  820. package/dist/utils/hooks/useLogin.d.ts.map +1 -1
  821. package/dist/utils/hooks/useLogin.js +5 -5
  822. package/dist/utils/hooks/useLogin.js.map +1 -1
  823. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  824. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
  825. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
  826. package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
  827. package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
  828. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
  829. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
  830. package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
  831. package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
  832. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
  833. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
  834. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
  835. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  836. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
  837. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
  838. package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
  839. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  840. package/dist/utils/jsonschema/submissionContext.js +2 -2
  841. package/dist/utils/jsonschema/submissionContext.js.map +1 -1
  842. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFacetPanelUtils.js","names":[],"sources":["../../../../src/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.ts"],"sourcesContent":["import { Facet } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\n\n// Constants\nexport const MAX_FACET_VALUES_SHOWN = 10\n\nconst MINUTE_IN_SEC = 60\nconst HOUR_IN_SEC = MINUTE_IN_SEC * 60\nconst DAY_IN_SEC = HOUR_IN_SEC * 24\nconst WEEK_IN_SEC = DAY_IN_SEC * 7\nconst MONTH_IN_SEC = DAY_IN_SEC * 30\nconst YEAR_IN_SEC = DAY_IN_SEC * 365\n\n// 'range' is the approximate duration in seconds used to match a stored URL timestamp back to a preset.\n// null (ANY_TIME) means no date filter is applied.\nexport const timeRanges = [\n { id: 'ANY_TIME', label: 'Any Time', range: null },\n { id: 'PAST_HOUR', label: 'Past Hour', range: HOUR_IN_SEC },\n { id: 'PAST_DAY', label: 'Past 24 Hours', range: DAY_IN_SEC },\n { id: 'PAST_WEEK', label: 'Past Week', range: WEEK_IN_SEC },\n { id: 'PAST_MONTH', label: 'Past Month', range: MONTH_IN_SEC },\n { id: 'PAST_YEAR', label: 'Past Year', range: YEAR_IN_SEC },\n]\n\n// User-friendly display names\nexport const FACET_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Type',\n modified_by: 'Last Modified By',\n}\n\n// Facet display order\nexport const FACET_DISPLAY_ORDER = [\n 'node_type',\n 'consortium',\n 'disease',\n 'modified_on',\n 'modified_by',\n 'created_on',\n 'tissue',\n 'num_samples',\n 'created_by',\n]\n\nexport const USER_FACET_NAMES = [\n 'modified_by',\n 'created_by',\n 'ModifiedBy',\n 'CreatedBy',\n]\n\nexport const FACET_PLURAL_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Types',\n consortium: 'Consortiums',\n disease: 'Diseases',\n tissue: 'Tissues',\n num_samples: 'Num Samples',\n modified_by: 'Last Modified By',\n created_by: 'Created By',\n}\n\n// Helper functions\n/**\n * Get the label for the \"All\" option in a facet, e.g. \"All Entity Types\" for the 'node_type' facet\n */\nexport function getAllFacetLabel(facetName: string): string {\n const pluralName =\n FACET_PLURAL_DISPLAY_NAMES[facetName] || formatFacetName(facetName)\n return `All ${pluralName}`\n}\n\n/**\n * Determines if a facet value should be displayed in the UI.\n * Hides 'link' entity types and colon-prefixed values\n */\nexport function shouldShowFacetValue(\n facetName: string,\n value: string,\n): boolean {\n if (!value || value.trim() === '') {\n return false\n }\n\n const isHiddenEntityType =\n (facetName === 'node_type' || facetName === 'EntityType') &&\n value === 'link'\n\n const isInternalPrefixedValue = value.includes(':')\n\n return !isHiddenEntityType && !isInternalPrefixedValue\n}\n\n/**\n * Check if a facet is a user facet (e.g., 'modified_by' or 'created_by')\n * Accepts either snake_case or PascalCase facet names.\n */\nexport const isUserFacet = (name: string): boolean => {\n // Normalize by removing underscores and converting to lowercase\n const normalizedFacetName = name.toLowerCase().replace(/_/g, '')\n\n return USER_FACET_NAMES.some(\n facet => facet.toLowerCase().replace(/_/g, '') === normalizedFacetName,\n )\n}\n\n/**\n * Format facet name: capitalize first letter, replace underscores with spaces\n */\nexport function formatFacetName(name: string): string {\n return name.replace(/_/g, ' ').replace(/\\b\\w/g, char => char.toUpperCase())\n}\n\n/**\n * Get user-friendly display name for a facet\n */\nexport function getFacetDisplayName(facetName: string): string {\n return FACET_DISPLAY_NAMES[facetName] || formatFacetName(facetName)\n}\n\n/**\n * Check if a facet should be rendered (some facets like 'link' are hidden)\n */\nexport function shouldRenderFacet(facet: Facet): boolean {\n // Don't render facets with no constraints (values to click on)\n if (!facet.constraints || facet.constraints.length === 0) {\n return false\n }\n return true\n}\n\n/**\n * Get timestamp from URL/query and determine which time range preset it matches\n *\n * @param timestamp - The stored timestamp (in seconds) from the URL/query\n * @returns The ID of the matching time range preset ('PAST_HOUR', 'PAST_DAY', etc.)\n */\nexport function getSelectedTimeRangeId(timestamp: string): string {\n const storedTimestamp = parseInt(timestamp)\n\n if (!storedTimestamp) {\n return 'ANY_TIME'\n }\n\n const diffInSeconds = dayjs().unix() - storedTimestamp\n\n if (diffInSeconds <= 0) {\n return 'ANY_TIME'\n }\n\n // Filter out 'ANY_TIME' since it doesn't have a numeric range\n const presets = timeRanges.filter(\n (range): range is { id: string; label: string; range: number } =>\n range.id !== 'ANY_TIME',\n )\n\n // Find the closest preset by comparing the absolute difference.\n // Ex: If diffInSeconds is 3605, it is 5 seconds away from PAST_HOUR (3600)\n // but 82,795 seconds away from PAST_DAY (86400) so we would match to PAST_HOUR.\n const closest = presets.reduce((best, preset) =>\n Math.abs(diffInSeconds - preset.range) <\n Math.abs(diffInSeconds - best.range)\n ? preset\n : best,\n )\n\n return closest.id\n}\n\n/**\n * Formats a timestamp for display in the applied facets chip.\n *\n * @param timestamp - The stored timestamp (in seconds)\n * @returns A friendly display string\n */\nexport function formatTimeRangeDisplayValue(timestamp: string): string {\n const storedTimestamp = parseInt(timestamp)\n\n if (isNaN(storedTimestamp)) {\n return timestamp\n }\n\n if (storedTimestamp === 0) {\n return 'any time'\n }\n\n // Try to match to a preset\n const rangeId = getSelectedTimeRangeId(timestamp)\n const matchedRange = timeRanges.find(r => r.id === rangeId)\n\n if (matchedRange && matchedRange.id !== 'ANY_TIME') {\n return matchedRange.label\n }\n\n // Fallback to formatted date if no preset matches\n try {\n const valueInMilliseconds = storedTimestamp * 1000\n return new Date(valueInMilliseconds).toLocaleDateString()\n } catch {\n return timestamp\n }\n}\n"],"mappings":";;AAIA,IAAa,IAAyB,IAGhC,IAAc,MACd,IAAa,IAAc,IAC3B,IAAc,IAAa,GAC3B,IAAe,IAAa,IAC5B,IAAc,IAAa,KAIpB,IAAa;CACxB;EAAE,IAAI;EAAY,OAAO;EAAY,OAAO;CAAK;CACjD;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;CAC1D;EAAE,IAAI;EAAY,OAAO;EAAiB,OAAO;CAAW;CAC5D;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;CAC1D;EAAE,IAAI;EAAc,OAAO;EAAc,OAAO;CAAa;CAC7D;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;AAC5D,GAGa,IAA8C;CACzD,WAAW;CACX,aAAa;AACf,GAGa,IAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,IAAmB;CAC9B;CACA;CACA;CACA;AACF,GAEa,IAAqD;CAChE,WAAW;CACX,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,aAAa;CACb,aAAa;CACb,YAAY;AACd;AAMA,SAAgB,EAAiB,GAA2B;CAG1D,OAAO,OADL,EAA2B,MAAc,EAAgB,CAAS;AAEtE;AAMA,SAAgB,EACd,GACA,GACS;CACT,IAAI,CAAC,KAAS,EAAM,KAAK,MAAM,IAC7B,OAAO;CAGT,IAAM,KACH,MAAc,eAAe,MAAc,iBAC5C,MAAU,QAEN,IAA0B,EAAM,SAAS,GAAG;CAElD,OAAO,CAAC,KAAsB,CAAC;AACjC;AAMA,IAAa,KAAe,MAA0B;CAEpD,IAAM,IAAsB,EAAK,YAAY,EAAE,QAAQ,MAAM,EAAE;CAE/D,OAAO,EAAiB,MACtB,MAAS,EAAM,YAAY,EAAE,QAAQ,MAAM,EAAE,MAAM,CACrD;AACF;AAKA,SAAgB,EAAgB,GAAsB;CACpD,OAAO,EAAK,QAAQ,MAAM,GAAG,EAAE,QAAQ,UAAS,MAAQ,EAAK,YAAY,CAAC;AAC5E;AAKA,SAAgB,EAAoB,GAA2B;CAC7D,OAAO,EAAoB,MAAc,EAAgB,CAAS;AACpE;AAKA,SAAgB,EAAkB,GAAuB;CAKvD,OAHA,EAAI,CAAC,EAAM,eAAe,EAAM,YAAY,WAAW;AAIzD;AAQA,SAAgB,EAAuB,GAA2B;CAChE,IAAM,IAAkB,SAAS,CAAS;CAE1C,IAAI,CAAC,GACH,OAAO;CAGT,IAAM,IAAgB,EAAM,EAAE,KAAK,IAAI;CAsBvC,OApBI,KAAiB,IACZ,aAIO,EAAW,QACxB,MACC,EAAM,OAAO,UAMD,EAAQ,QAAQ,GAAM,MACpC,KAAK,IAAI,IAAgB,EAAO,KAAK,IACrC,KAAK,IAAI,IAAgB,EAAK,KAAK,IAC/B,IACA,CAGC,EAAQ;AACjB;AAQA,SAAgB,EAA4B,GAA2B;CACrE,IAAM,IAAkB,SAAS,CAAS;CAE1C,IAAI,MAAM,CAAe,GACvB,OAAO;CAGT,IAAI,MAAoB,GACtB,OAAO;CAIT,IAAM,IAAU,EAAuB,CAAS,GAC1C,IAAe,EAAW,MAAK,MAAK,EAAE,OAAO,CAAO;CAE1D,IAAI,KAAgB,EAAa,OAAO,YACtC,OAAO,EAAa;CAItB,IAAI;EACF,IAAM,IAAsB,IAAkB;EAC9C,OAAO,IAAI,KAAK,CAAmB,EAAE,mBAAmB;CAC1D,QAAQ;EACN,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"SearchFacetPanelUtils.js","names":[],"sources":["../../../../src/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.ts"],"sourcesContent":["import { Facet } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\n\n// Constants\nexport const MAX_FACET_VALUES_SHOWN = 10\n\nconst MINUTE_IN_SEC = 60\nconst HOUR_IN_SEC = MINUTE_IN_SEC * 60\nconst DAY_IN_SEC = HOUR_IN_SEC * 24\nconst WEEK_IN_SEC = DAY_IN_SEC * 7\nconst MONTH_IN_SEC = DAY_IN_SEC * 30\nconst YEAR_IN_SEC = DAY_IN_SEC * 365\n\n// 'range' is the approximate duration in seconds used to match a stored URL timestamp back to a preset.\n// null (ANY_TIME) means no date filter is applied.\nexport const timeRanges = [\n { id: 'ANY_TIME', label: 'Any Time', range: null },\n { id: 'PAST_HOUR', label: 'Past Hour', range: HOUR_IN_SEC },\n { id: 'PAST_DAY', label: 'Past 24 Hours', range: DAY_IN_SEC },\n { id: 'PAST_WEEK', label: 'Past Week', range: WEEK_IN_SEC },\n { id: 'PAST_MONTH', label: 'Past Month', range: MONTH_IN_SEC },\n { id: 'PAST_YEAR', label: 'Past Year', range: YEAR_IN_SEC },\n]\n\n// User-friendly display names\nexport const FACET_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Type',\n modified_by: 'Last Modified By',\n}\n\n// Facet display order\nexport const FACET_DISPLAY_ORDER = [\n 'node_type',\n 'consortium',\n 'disease',\n 'modified_on',\n 'modified_by',\n 'created_on',\n 'tissue',\n 'num_samples',\n 'created_by',\n]\n\nexport const USER_FACET_NAMES = [\n 'modified_by',\n 'created_by',\n 'ModifiedBy',\n 'CreatedBy',\n]\n\nexport const FACET_PLURAL_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Types',\n consortium: 'Consortiums',\n disease: 'Diseases',\n tissue: 'Tissues',\n num_samples: 'Num Samples',\n modified_by: 'Last Modified By',\n created_by: 'Created By',\n}\n\n// Helper functions\n/**\n * Get the label for the \"All\" option in a facet, e.g. \"All Entity Types\" for the 'node_type' facet\n */\nexport function getAllFacetLabel(facetName: string): string {\n const pluralName =\n FACET_PLURAL_DISPLAY_NAMES[facetName] || formatFacetName(facetName)\n return `All ${pluralName}`\n}\n\n/**\n * Determines if a facet value should be displayed in the UI.\n * Hides 'link' entity types and colon-prefixed values\n */\nexport function shouldShowFacetValue(\n facetName: string,\n value: string,\n): boolean {\n if (!value || value.trim() === '') {\n return false\n }\n\n const isHiddenEntityType =\n (facetName === 'node_type' || facetName === 'EntityType') &&\n value === 'link'\n\n const isInternalPrefixedValue = value.includes(':')\n\n return !isHiddenEntityType && !isInternalPrefixedValue\n}\n\n/**\n * Check if a facet is a user facet (e.g., 'modified_by' or 'created_by')\n * Accepts either snake_case or PascalCase facet names.\n */\nexport const isUserFacet = (name: string): boolean => {\n // Normalize by removing underscores and converting to lowercase\n const normalizedFacetName = name.toLowerCase().replaceAll('_', '')\n\n return USER_FACET_NAMES.some(\n facet => facet.toLowerCase().replaceAll('_', '') === normalizedFacetName,\n )\n}\n\n/**\n * Format facet name: capitalize first letter, replace underscores with spaces\n */\nexport function formatFacetName(name: string): string {\n return name\n .replaceAll('_', ' ')\n .replaceAll(/\\b\\w/g, char => char.toUpperCase())\n}\n\n/**\n * Get user-friendly display name for a facet\n */\nexport function getFacetDisplayName(facetName: string): string {\n return FACET_DISPLAY_NAMES[facetName] || formatFacetName(facetName)\n}\n\n/**\n * Check if a facet should be rendered (some facets like 'link' are hidden)\n */\nexport function shouldRenderFacet(facet: Facet): boolean {\n // Don't render facets with no constraints (values to click on)\n if (!facet.constraints || facet.constraints.length === 0) {\n return false\n }\n return true\n}\n\n/**\n * Get timestamp from URL/query and determine which time range preset it matches\n *\n * @param timestamp - The stored timestamp (in seconds) from the URL/query\n * @returns The ID of the matching time range preset ('PAST_HOUR', 'PAST_DAY', etc.)\n */\nexport function getSelectedTimeRangeId(timestamp: string): string {\n const storedTimestamp = parseInt(timestamp)\n\n if (!storedTimestamp) {\n return 'ANY_TIME'\n }\n\n const diffInSeconds = dayjs().unix() - storedTimestamp\n\n if (diffInSeconds <= 0) {\n return 'ANY_TIME'\n }\n\n // Filter out 'ANY_TIME' since it doesn't have a numeric range\n const presets = timeRanges.filter(\n (range): range is { id: string; label: string; range: number } =>\n range.id !== 'ANY_TIME',\n )\n\n // Find the closest preset by comparing the absolute difference.\n // Ex: If diffInSeconds is 3605, it is 5 seconds away from PAST_HOUR (3600)\n // but 82,795 seconds away from PAST_DAY (86400) so we would match to PAST_HOUR.\n const closest = presets.reduce((best, preset) =>\n Math.abs(diffInSeconds - preset.range) <\n Math.abs(diffInSeconds - best.range)\n ? preset\n : best,\n )\n\n return closest.id\n}\n\n/**\n * Formats a timestamp for display in the applied facets chip.\n *\n * @param timestamp - The stored timestamp (in seconds)\n * @returns A friendly display string\n */\nexport function formatTimeRangeDisplayValue(timestamp: string): string {\n const storedTimestamp = parseInt(timestamp)\n\n if (isNaN(storedTimestamp)) {\n return timestamp\n }\n\n if (storedTimestamp === 0) {\n return 'any time'\n }\n\n // Try to match to a preset\n const rangeId = getSelectedTimeRangeId(timestamp)\n const matchedRange = timeRanges.find(r => r.id === rangeId)\n\n if (matchedRange && matchedRange.id !== 'ANY_TIME') {\n return matchedRange.label\n }\n\n // Fallback to formatted date if no preset matches\n try {\n const valueInMilliseconds = storedTimestamp * 1000\n return new Date(valueInMilliseconds).toLocaleDateString()\n } catch {\n return timestamp\n }\n}\n"],"mappings":";;AAIA,IAAa,IAAyB,IAGhC,IAAc,MACd,IAAa,IAAc,IAC3B,IAAc,IAAa,GAC3B,IAAe,IAAa,IAC5B,IAAc,IAAa,KAIpB,IAAa;CACxB;EAAE,IAAI;EAAY,OAAO;EAAY,OAAO;CAAK;CACjD;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;CAC1D;EAAE,IAAI;EAAY,OAAO;EAAiB,OAAO;CAAW;CAC5D;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;CAC1D;EAAE,IAAI;EAAc,OAAO;EAAc,OAAO;CAAa;CAC7D;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;AAC5D,GAGa,IAA8C;CACzD,WAAW;CACX,aAAa;AACf,GAGa,IAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,IAAmB;CAC9B;CACA;CACA;CACA;AACF,GAEa,IAAqD;CAChE,WAAW;CACX,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,aAAa;CACb,aAAa;CACb,YAAY;AACd;AAMA,SAAgB,EAAiB,GAA2B;CAG1D,OAAO,OADL,EAA2B,MAAc,EAAgB,CAAS;AAEtE;AAMA,SAAgB,EACd,GACA,GACS;CACT,IAAI,CAAC,KAAS,EAAM,KAAK,MAAM,IAC7B,OAAO;CAGT,IAAM,KACH,MAAc,eAAe,MAAc,iBAC5C,MAAU,QAEN,IAA0B,EAAM,SAAS,GAAG;CAElD,OAAO,CAAC,KAAsB,CAAC;AACjC;AAMA,IAAa,KAAe,MAA0B;CAEpD,IAAM,IAAsB,EAAK,YAAY,EAAE,WAAW,KAAK,EAAE;CAEjE,OAAO,EAAiB,MACtB,MAAS,EAAM,YAAY,EAAE,WAAW,KAAK,EAAE,MAAM,CACvD;AACF;AAKA,SAAgB,EAAgB,GAAsB;CACpD,OAAO,EACJ,WAAW,KAAK,GAAG,EACnB,WAAW,UAAS,MAAQ,EAAK,YAAY,CAAC;AACnD;AAKA,SAAgB,EAAoB,GAA2B;CAC7D,OAAO,EAAoB,MAAc,EAAgB,CAAS;AACpE;AAKA,SAAgB,EAAkB,GAAuB;CAKvD,OAHA,EAAI,CAAC,EAAM,eAAe,EAAM,YAAY,WAAW;AAIzD;AAQA,SAAgB,EAAuB,GAA2B;CAChE,IAAM,IAAkB,SAAS,CAAS;CAE1C,IAAI,CAAC,GACH,OAAO;CAGT,IAAM,IAAgB,EAAM,EAAE,KAAK,IAAI;CAsBvC,OApBI,KAAiB,IACZ,aAIO,EAAW,QACxB,MACC,EAAM,OAAO,UAMD,EAAQ,QAAQ,GAAM,MACpC,KAAK,IAAI,IAAgB,EAAO,KAAK,IACrC,KAAK,IAAI,IAAgB,EAAK,KAAK,IAC/B,IACA,CAGC,EAAQ;AACjB;AAQA,SAAgB,EAA4B,GAA2B;CACrE,IAAM,IAAkB,SAAS,CAAS;CAE1C,IAAI,MAAM,CAAe,GACvB,OAAO;CAGT,IAAI,MAAoB,GACtB,OAAO;CAIT,IAAM,IAAU,EAAuB,CAAS,GAC1C,IAAe,EAAW,MAAK,MAAK,EAAE,OAAO,CAAO;CAE1D,IAAI,KAAgB,EAAa,OAAO,YACtC,OAAO,EAAa;CAItB,IAAI;EACF,IAAM,IAAsB,IAAkB;EAC9C,OAAO,IAAI,KAAK,CAAmB,EAAE,mBAAmB;CAC1D,QAAQ;EACN,OAAO;CACT;AACF"}
@@ -15,7 +15,7 @@ import { AppliedFacetsChips as u, SearchFacetPanel as d } from "./SearchFacetPan
15
15
  import { Suspense as f, useCallback as p, useEffect as m, useMemo as h, useState as g } from "react";
16
16
  import { Badge as _, Box as v, Button as y, Collapse as te, IconButton as b, InputAdornment as x, Link as S, Skeleton as C, TextField as w, Typography as T } from "@mui/material";
17
17
  import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
18
- import { ArrowForward as k } from "@mui/icons-material";
18
+ import k from "@mui/icons-material/ArrowForward";
19
19
  import A from "@mui/icons-material/Search";
20
20
  import ne from "@mui/icons-material/FilterAltOutlined";
21
21
  //#region src/components/SynapseSearchPageResults/SynapseSearchPageResults.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseSearchPageResults.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchPageResults.tsx"],"sourcesContent":["import {\n Box,\n TextField,\n InputAdornment,\n Button,\n Typography,\n IconButton,\n Collapse,\n Badge,\n Skeleton,\n Link,\n} from '@mui/material'\nimport SynapseSearchResultsCard from './SynapseSearchResultsCard'\nimport SearchIcon from '@mui/icons-material/Search'\nimport FilterAltOutlinedIcon from '@mui/icons-material/FilterAltOutlined'\nimport React, {\n useState,\n useEffect,\n useMemo,\n useCallback,\n Suspense,\n} from 'react'\nimport { useSearchInfinite } from '@/synapse-queries/search/useSearch'\nimport {\n SearchQuery,\n KeyRange,\n Hit,\n Facet,\n} from '@sage-bionetworks/synapse-types'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport { ArrowForward } from '@mui/icons-material'\nimport styles from './SynapseSearchPageResults.module.scss'\nimport { useSuggestion } from '@/synapse-queries/search/useSuggestion'\nimport { Suggestion } from '@sage-bionetworks/synapse-client'\nimport SearchPagePortalBanners from './SearchPagePortalBanners'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\nimport {\n SearchFacetPanel,\n AppliedFacetsChips,\n} from './SearchFacetPanel/SearchFacetPanel'\nimport { shouldShowFacetValue } from './SearchFacetPanel/SearchFacetPanelUtils'\nimport { SkeletonInlineBlock } from '../Skeleton'\nimport { useSynapseContext } from '@/utils'\n\n/**\n * Add a literal facet filter to the query\n */\nfunction addFacetToQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n const isFilterAlreadyApplied = booleanQuery.some(\n kv => kv.key === facetName && kv.value === facetValue,\n )\n\n if (isFilterAlreadyApplied) {\n return query\n }\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: [\n ...booleanQuery,\n { key: facetName, value: facetValue, not: false },\n ],\n start: 0, // Reset to first page\n }\n}\n\n/**\n * Remove a literal facet filter from the query\n */\nfunction removeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: booleanQuery.filter(\n kv => !(kv.key === facetName && kv.value === facetValue),\n ),\n start: 0,\n }\n}\n\n/**\n * Set a range facet (ex, for modified on, created on)\n */\nfunction setRangeFacetInQuery(\n query: SearchQuery,\n facetName: string,\n minValue: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n // Remove any existing range for this facet\n const filteredRangeQuery = rangeQuery.filter(kr => kr.key !== facetName)\n\n const maxValue = String(Math.floor(Date.now() / 1000)) // Now in seconds\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: [\n ...filteredRangeQuery,\n { key: facetName, min: minValue, max: maxValue },\n ],\n start: 0,\n }\n}\n\n/**\n * Remove a range facet from the query\n */\nfunction removeRangeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: rangeQuery.filter(kr => kr.key !== facetName),\n start: 0,\n }\n}\n\n/**\n * Check if a range facet is currently applied\n */\nfunction isRangeFacetApplied(query: SearchQuery, facetName: string): boolean {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.some(kr => kr.key === facetName)\n}\n\n/**\n * Get the applied range facet value for a given facet name\n */\nfunction getAppliedRangeFacet(\n query: SearchQuery,\n facetName: string,\n): KeyRange | undefined {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.find(kr => kr.key === facetName)\n}\n\nexport type SynapseSearchPageResultsProps = {\n query?: SearchQuery\n setQuery?: (newQuery: SearchQuery) => void\n}\n\nexport function SynapseSearchPageResults(props: SynapseSearchPageResultsProps) {\n const MIN_SUGGESTION_SCORE = 0.75\n const { query, setQuery } = props\n const { peopleSearchPageUrl } = useSynapseContext()\n const [expanded, setExpanded] = useState(false)\n\n // Set page title (replaces jsniUtils.setPageTitle(DisplayConstants.LABEL_SEARCH) from Java)\n useDocumentMetadata({ title: `Search: ${query?.queryTerm?.join(' ')}` })\n\n // Capture local state to prevent search from executing on every keystroke\n // Join query terms so that textfield input looks correct\n const [searchInputValue, setSearchInputValue] = useState(\n query?.queryTerm?.join(' ') || '',\n )\n\n // Sync input value when query prop changes\n // Join query terms so that textfield input looks correct\n useEffect(() => {\n setSearchInputValue(query?.queryTerm?.join(' ') || '')\n }, [query])\n\n // Execute search\n const {\n data,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage,\n } = useSearchInfinite(\n query\n ? {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n size: 50,\n returnFields: ['path'],\n }\n : { queryTerm: [], size: 50, returnFields: ['path'] },\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n // Update local input state\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchInputValue(event.target.value)\n }\n\n // Update query only when user explicitly searches\n // Split query terms to form array\n const handleSearch = () => {\n if (setQuery) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: searchInputValue\n ? searchInputValue\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean)\n : [],\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n // Fetch spelling suggestions for the search terms\n const { data: suggestionData } = useSuggestion(\n { searchTerm: query?.queryTerm },\n\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n const suggestion = useMemo(() => {\n const suggestionValues = suggestionData?.suggestions\n const terms = query?.queryTerm || []\n\n if (!suggestionValues) return null\n\n // Map original terms to their best suggestions if available\n const suggestionMap = new Map<string, string>()\n let hasSuggestion = false\n\n for (const suggestionList of suggestionValues) {\n const originalTerm = suggestionList.key\n const suggestions = Array.from(suggestionList.values ?? [])\n\n // Among suggestions above the score threshold, pick the highest-frequency term.\n const bestSuggestion = suggestions.reduce<Suggestion | null>(\n (best, current) => {\n if (\n current.score === undefined ||\n current.score < MIN_SUGGESTION_SCORE\n ) {\n return best\n }\n if (!best || (current.frequency ?? 0) > (best.frequency ?? 0)) {\n return current\n }\n return best\n },\n null,\n )\n\n // If a valid suggestion is found and it's different from the original term, add it to the map\n if (bestSuggestion?.term && bestSuggestion.term !== originalTerm) {\n suggestionMap.set(originalTerm!, bestSuggestion.term)\n hasSuggestion = true\n }\n }\n\n if (!hasSuggestion) return null\n\n // Build the corrected search string by replacing misspelled terms\n // Use toLowerCase() because the suggestion API returns keys in lowercase\n const correctedTerms = terms.map(\n term => suggestionMap.get(term.toLowerCase()) || term,\n )\n\n return correctedTerms.join(' ')\n }, [suggestionData, query?.queryTerm])\n\n // Extract entity IDs from search results for relevant portal banner display\n const entityIdsForPortalBanners = useMemo(() => {\n if (!data?.pages || data.pages.length === 0) {\n return []\n }\n\n const entityIds = new Set<string>()\n\n const firstPage = data.pages[0]\n\n if (firstPage?.hits) {\n for (const hit of firstPage.hits) {\n // search result is the top-level Project itself\n if (hit.id) {\n entityIds.add(hit.id)\n }\n\n if (hit.path?.path) {\n for (const pathEntity of hit.path.path.slice(1)) {\n if (pathEntity.id) {\n entityIds.add(pathEntity.id)\n }\n }\n }\n }\n }\n\n const finalIds = Array.from(entityIds)\n\n return finalIds\n }, [data])\n\n const handleUseSuggestion = () => {\n if (setQuery && suggestion) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: suggestion\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean),\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n const noResults = data?.pages?.[0]?.hits?.length === 0\n const isSynId = SYNAPSE_ENTITY_ID_REGEX.test(query?.queryTerm?.[0] || '')\n\n // cached facets in local state to prevent them from being cleared when the query changes and new search results are loading\n const [facets, setFacets] = useState<Facet[]>([])\n\n useEffect(() => {\n const newFacets = data?.pages?.[0]?.facets\n if (newFacets) {\n setFacets(newFacets)\n }\n }, [data])\n\n const handleAddFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(addFacetToQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(removeFacetFromQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleSetRangeFacet = useCallback(\n (facetName: string, minValue: string) => {\n if (setQuery && query) {\n setQuery(setRangeFacetInQuery(query, facetName, minValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveRangeFacet = useCallback(\n (facetName: string) => {\n if (setQuery && query) {\n setQuery(removeRangeFacetFromQuery(query, facetName))\n }\n },\n [query, setQuery],\n )\n\n const isRangeFacetAppliedCallback = useCallback(\n (name: string) => (query ? isRangeFacetApplied(query, name) : false),\n [query],\n )\n\n const getAppliedRangeFacetCallback = useCallback(\n (name: string) => (query ? getAppliedRangeFacet(query, name) : undefined),\n [query],\n )\n\n const appliedFacetsCount =\n (query?.booleanQuery?.filter(kv => shouldShowFacetValue(kv.key, kv.value))\n .length || 0) + (query?.rangeQuery?.length || 0)\n\n return (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n p: '30px',\n gap: '20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n height: 'auto',\n gap: '16px',\n }}\n >\n {peopleSearchPageUrl && (\n <Typography variant=\"smallText1\">\n Searching for a user profile? Try our{' '}\n <Link href={peopleSearchPageUrl}>People Search.</Link>\n </Typography>\n )}\n <Box className={styles.searchContainer}>\n <TextField\n placeholder=\"Search…\"\n sx={{ flex: 1 }}\n value={searchInputValue}\n onChange={handleInputChange}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleSearch()\n }\n }}\n slotProps={{\n input: {\n sx: {\n borderRadius: '96px',\n boxShadow: '0px 1px 4px var(--synapse-gray-500)',\n backgroundColor: 'var(--synapse-white)',\n },\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ color: 'secondary.600' }} />\n </InputAdornment>\n ),\n },\n }}\n />\n <Button\n onClick={() => setExpanded(true)}\n variant=\"outlined\"\n startIcon={<FilterAltOutlinedIcon />}\n aria-expanded={expanded}\n aria-controls=\"filter-search-results-panel\"\n sx={{\n color: theme => theme.palette.primary.dark,\n }}\n className={styles.filterButton}\n >\n <Typography\n sx={{\n fontWeight: 700,\n lineHeight: '16px',\n display: 'flex',\n gap: '8px',\n }}\n >\n <span id=\"filter-results-button-label\">\n Filter Search Results\n </span>\n {appliedFacetsCount > 0 && (\n <Badge\n badgeContent={appliedFacetsCount}\n color=\"primary\"\n sx={{\n '& .MuiBadge-badge': {\n position: 'static',\n transform: 'none',\n height: '18px',\n minWidth: '18px',\n },\n }}\n />\n )}\n </Typography>\n </Button>\n </Box>\n <Box>\n {facets.length > 0 && (\n <Collapse\n in={expanded}\n id=\"filter-search-results-panel\"\n aria-labelledby=\"filter-results-button-label\"\n >\n <Box\n sx={{\n border: '1px solid',\n borderColor: 'var(--synapse-gray-100)',\n backgroundColor: 'var(--synapse-white)',\n padding: '25px',\n boxShadow: '0 4px 16px 0 rgba(0, 0, 0, 0.04)',\n pointerEvents: isLoading ? 'none' : 'auto',\n opacity: isLoading ? 0.5 : 1,\n }}\n >\n {query && setQuery && (\n <SearchFacetPanel\n expanded={expanded}\n onCollapse={() => setExpanded(false)}\n disabled={isLoading}\n query={query}\n setQuery={setQuery}\n facets={facets}\n onAddFacet={handleAddFacet}\n onRemoveFacet={handleRemoveFacet}\n onSetRangeFacet={handleSetRangeFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n isRangeFacetApplied={isRangeFacetAppliedCallback}\n getAppliedRangeFacet={getAppliedRangeFacetCallback}\n />\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n </Box>\n <>\n {data && !isSynId && suggestion && (\n <div className={styles.didYouMeanContainer}>\n <div className={styles.didYouMeanCurrentlyShowing}>\n {!noResults && (\n <>\n Currently showing results for{' '}\n <b>{query?.queryTerm?.join(' ')}</b>.\n </>\n )}\n </div>\n <div className={styles.didYouMeanSuggestion}>\n <SearchIcon\n sx={{ color: 'grey.600' }}\n className={styles.searchIcon}\n />\n <Typography variant=\"body1\" className={styles.didYouMeanText}>\n Search for <b className={styles.suggestionText}>{suggestion}</b>{' '}\n instead?\n </Typography>\n <IconButton\n className={styles.didYouMeanArrowContainer}\n onClick={handleUseSuggestion}\n aria-label={`Search for ${suggestion} instead`}\n sx={{\n borderColor: 'primary.main',\n svg: { color: 'primary.main' },\n }}\n >\n <ArrowForward />\n </IconButton>\n </div>\n </div>\n )}\n {noResults && (\n <div className={styles.didYouMeanCurrentlyShowing}>\n No results found for <b>{query?.queryTerm?.join(' ')}</b>.\n </div>\n )}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n gap: '20px',\n }}\n >\n {isLoading &&\n Array.from({ length: 3 }, () => (\n <Skeleton variant=\"rectangular\" width={'100%'} height={'250px'} />\n ))}\n {error && <div>Error: {error.message}</div>}\n <Suspense\n fallback={<SkeletonInlineBlock width={'100%'} height={'150px'} />}\n >\n <SearchPagePortalBanners entityIds={entityIdsForPortalBanners} />\n </Suspense>\n {query && (\n <Box sx={{ alignSelf: 'flex-start' }}>\n <AppliedFacetsChips\n query={query}\n onRemoveFacet={handleRemoveFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n />\n </Box>\n )}\n {data &&\n data.pages &&\n data.pages.map((page, pageIndex) =>\n page.hits.map((hit: Hit) => {\n const projectPath = hit.path?.path?.[1]\n return (\n <SynapseSearchResultsCard\n searchTerms={query?.queryTerm ?? []}\n key={hit.id + '-' + pageIndex}\n entityId={hit.id}\n name={hit.name}\n entityType={hit.node_type}\n modifiedOn={hit.modified_on}\n description={hit.description}\n locatedIn={projectPath}\n />\n )\n }),\n )}\n {hasNextPage && (\n <Button\n onClick={() => {\n void fetchNextPage()\n }}\n loading={isFetchingNextPage}\n variant=\"contained\"\n sx={{ mt: 2 }}\n >\n {isFetchingNextPage ? 'Loading more...' : 'Load More'}\n </Button>\n )}\n </Box>\n </>\n </Box>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseSearchPageResults.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchPageResults.tsx"],"sourcesContent":["import {\n Box,\n TextField,\n InputAdornment,\n Button,\n Typography,\n IconButton,\n Collapse,\n Badge,\n Skeleton,\n Link,\n} from '@mui/material'\nimport SynapseSearchResultsCard from './SynapseSearchResultsCard'\nimport SearchIcon from '@mui/icons-material/Search'\nimport FilterAltOutlinedIcon from '@mui/icons-material/FilterAltOutlined'\nimport React, {\n useState,\n useEffect,\n useMemo,\n useCallback,\n Suspense,\n} from 'react'\nimport { useSearchInfinite } from '@/synapse-queries/search/useSearch'\nimport {\n SearchQuery,\n KeyRange,\n Hit,\n Facet,\n} from '@sage-bionetworks/synapse-types'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport ArrowForward from '@mui/icons-material/ArrowForward'\nimport styles from './SynapseSearchPageResults.module.scss'\nimport { useSuggestion } from '@/synapse-queries/search/useSuggestion'\nimport { Suggestion } from '@sage-bionetworks/synapse-client'\nimport SearchPagePortalBanners from './SearchPagePortalBanners'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\nimport {\n SearchFacetPanel,\n AppliedFacetsChips,\n} from './SearchFacetPanel/SearchFacetPanel'\nimport { shouldShowFacetValue } from './SearchFacetPanel/SearchFacetPanelUtils'\nimport { SkeletonInlineBlock } from '../Skeleton'\nimport { useSynapseContext } from '@/utils'\n\n/**\n * Add a literal facet filter to the query\n */\nfunction addFacetToQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n const isFilterAlreadyApplied = booleanQuery.some(\n kv => kv.key === facetName && kv.value === facetValue,\n )\n\n if (isFilterAlreadyApplied) {\n return query\n }\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: [\n ...booleanQuery,\n { key: facetName, value: facetValue, not: false },\n ],\n start: 0, // Reset to first page\n }\n}\n\n/**\n * Remove a literal facet filter from the query\n */\nfunction removeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: booleanQuery.filter(\n kv => !(kv.key === facetName && kv.value === facetValue),\n ),\n start: 0,\n }\n}\n\n/**\n * Set a range facet (ex, for modified on, created on)\n */\nfunction setRangeFacetInQuery(\n query: SearchQuery,\n facetName: string,\n minValue: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n // Remove any existing range for this facet\n const filteredRangeQuery = rangeQuery.filter(kr => kr.key !== facetName)\n\n const maxValue = String(Math.floor(Date.now() / 1000)) // Now in seconds\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: [\n ...filteredRangeQuery,\n { key: facetName, min: minValue, max: maxValue },\n ],\n start: 0,\n }\n}\n\n/**\n * Remove a range facet from the query\n */\nfunction removeRangeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: rangeQuery.filter(kr => kr.key !== facetName),\n start: 0,\n }\n}\n\n/**\n * Check if a range facet is currently applied\n */\nfunction isRangeFacetApplied(query: SearchQuery, facetName: string): boolean {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.some(kr => kr.key === facetName)\n}\n\n/**\n * Get the applied range facet value for a given facet name\n */\nfunction getAppliedRangeFacet(\n query: SearchQuery,\n facetName: string,\n): KeyRange | undefined {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.find(kr => kr.key === facetName)\n}\n\nexport type SynapseSearchPageResultsProps = {\n query?: SearchQuery\n setQuery?: (newQuery: SearchQuery) => void\n}\n\nexport function SynapseSearchPageResults(props: SynapseSearchPageResultsProps) {\n const MIN_SUGGESTION_SCORE = 0.75\n const { query, setQuery } = props\n const { peopleSearchPageUrl } = useSynapseContext()\n const [expanded, setExpanded] = useState(false)\n\n // Set page title (replaces jsniUtils.setPageTitle(DisplayConstants.LABEL_SEARCH) from Java)\n useDocumentMetadata({ title: `Search: ${query?.queryTerm?.join(' ')}` })\n\n // Capture local state to prevent search from executing on every keystroke\n // Join query terms so that textfield input looks correct\n const [searchInputValue, setSearchInputValue] = useState(\n query?.queryTerm?.join(' ') || '',\n )\n\n // Sync input value when query prop changes\n // Join query terms so that textfield input looks correct\n useEffect(() => {\n setSearchInputValue(query?.queryTerm?.join(' ') || '')\n }, [query])\n\n // Execute search\n const {\n data,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage,\n } = useSearchInfinite(\n query\n ? {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n size: 50,\n returnFields: ['path'],\n }\n : { queryTerm: [], size: 50, returnFields: ['path'] },\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n // Update local input state\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchInputValue(event.target.value)\n }\n\n // Update query only when user explicitly searches\n // Split query terms to form array\n const handleSearch = () => {\n if (setQuery) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: searchInputValue\n ? searchInputValue\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean)\n : [],\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n // Fetch spelling suggestions for the search terms\n const { data: suggestionData } = useSuggestion(\n { searchTerm: query?.queryTerm },\n\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n const suggestion = useMemo(() => {\n const suggestionValues = suggestionData?.suggestions\n const terms = query?.queryTerm || []\n\n if (!suggestionValues) return null\n\n // Map original terms to their best suggestions if available\n const suggestionMap = new Map<string, string>()\n let hasSuggestion = false\n\n for (const suggestionList of suggestionValues) {\n const originalTerm = suggestionList.key\n const suggestions = Array.from(suggestionList.values ?? [])\n\n // Among suggestions above the score threshold, pick the highest-frequency term.\n const bestSuggestion = suggestions.reduce<Suggestion | null>(\n (best, current) => {\n if (\n current.score === undefined ||\n current.score < MIN_SUGGESTION_SCORE\n ) {\n return best\n }\n if (!best || (current.frequency ?? 0) > (best.frequency ?? 0)) {\n return current\n }\n return best\n },\n null,\n )\n\n // If a valid suggestion is found and it's different from the original term, add it to the map\n if (bestSuggestion?.term && bestSuggestion.term !== originalTerm) {\n suggestionMap.set(originalTerm!, bestSuggestion.term)\n hasSuggestion = true\n }\n }\n\n if (!hasSuggestion) return null\n\n // Build the corrected search string by replacing misspelled terms\n // Use toLowerCase() because the suggestion API returns keys in lowercase\n const correctedTerms = terms.map(\n term => suggestionMap.get(term.toLowerCase()) || term,\n )\n\n return correctedTerms.join(' ')\n }, [suggestionData, query?.queryTerm])\n\n // Extract entity IDs from search results for relevant portal banner display\n const entityIdsForPortalBanners = useMemo(() => {\n if (!data?.pages || data.pages.length === 0) {\n return []\n }\n\n const entityIds = new Set<string>()\n\n const firstPage = data.pages[0]\n\n if (firstPage?.hits) {\n for (const hit of firstPage.hits) {\n // search result is the top-level Project itself\n if (hit.id) {\n entityIds.add(hit.id)\n }\n\n if (hit.path?.path) {\n for (const pathEntity of hit.path.path.slice(1)) {\n if (pathEntity.id) {\n entityIds.add(pathEntity.id)\n }\n }\n }\n }\n }\n\n const finalIds = Array.from(entityIds)\n\n return finalIds\n }, [data])\n\n const handleUseSuggestion = () => {\n if (setQuery && suggestion) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: suggestion\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean),\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n const noResults = data?.pages?.[0]?.hits?.length === 0\n const isSynId = SYNAPSE_ENTITY_ID_REGEX.test(query?.queryTerm?.[0] || '')\n\n // cached facets in local state to prevent them from being cleared when the query changes and new search results are loading\n const [facets, setFacets] = useState<Facet[]>([])\n\n useEffect(() => {\n const newFacets = data?.pages?.[0]?.facets\n if (newFacets) {\n setFacets(newFacets)\n }\n }, [data])\n\n const handleAddFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(addFacetToQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(removeFacetFromQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleSetRangeFacet = useCallback(\n (facetName: string, minValue: string) => {\n if (setQuery && query) {\n setQuery(setRangeFacetInQuery(query, facetName, minValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveRangeFacet = useCallback(\n (facetName: string) => {\n if (setQuery && query) {\n setQuery(removeRangeFacetFromQuery(query, facetName))\n }\n },\n [query, setQuery],\n )\n\n const isRangeFacetAppliedCallback = useCallback(\n (name: string) => (query ? isRangeFacetApplied(query, name) : false),\n [query],\n )\n\n const getAppliedRangeFacetCallback = useCallback(\n (name: string) => (query ? getAppliedRangeFacet(query, name) : undefined),\n [query],\n )\n\n const appliedFacetsCount =\n (query?.booleanQuery?.filter(kv => shouldShowFacetValue(kv.key, kv.value))\n .length || 0) + (query?.rangeQuery?.length || 0)\n\n return (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n p: '30px',\n gap: '20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n height: 'auto',\n gap: '16px',\n }}\n >\n {peopleSearchPageUrl && (\n <Typography variant=\"smallText1\">\n Searching for a user profile? Try our{' '}\n <Link href={peopleSearchPageUrl}>People Search.</Link>\n </Typography>\n )}\n <Box className={styles.searchContainer}>\n <TextField\n placeholder=\"Search…\"\n sx={{ flex: 1 }}\n value={searchInputValue}\n onChange={handleInputChange}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleSearch()\n }\n }}\n slotProps={{\n input: {\n sx: {\n borderRadius: '96px',\n boxShadow: '0px 1px 4px var(--synapse-gray-500)',\n backgroundColor: 'var(--synapse-white)',\n },\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ color: 'secondary.600' }} />\n </InputAdornment>\n ),\n },\n }}\n />\n <Button\n onClick={() => setExpanded(true)}\n variant=\"outlined\"\n startIcon={<FilterAltOutlinedIcon />}\n aria-expanded={expanded}\n aria-controls=\"filter-search-results-panel\"\n sx={{\n color: theme => theme.palette.primary.dark,\n }}\n className={styles.filterButton}\n >\n <Typography\n sx={{\n fontWeight: 700,\n lineHeight: '16px',\n display: 'flex',\n gap: '8px',\n }}\n >\n <span id=\"filter-results-button-label\">\n Filter Search Results\n </span>\n {appliedFacetsCount > 0 && (\n <Badge\n badgeContent={appliedFacetsCount}\n color=\"primary\"\n sx={{\n '& .MuiBadge-badge': {\n position: 'static',\n transform: 'none',\n height: '18px',\n minWidth: '18px',\n },\n }}\n />\n )}\n </Typography>\n </Button>\n </Box>\n <Box>\n {facets.length > 0 && (\n <Collapse\n in={expanded}\n id=\"filter-search-results-panel\"\n aria-labelledby=\"filter-results-button-label\"\n >\n <Box\n sx={{\n border: '1px solid',\n borderColor: 'var(--synapse-gray-100)',\n backgroundColor: 'var(--synapse-white)',\n padding: '25px',\n boxShadow: '0 4px 16px 0 rgba(0, 0, 0, 0.04)',\n pointerEvents: isLoading ? 'none' : 'auto',\n opacity: isLoading ? 0.5 : 1,\n }}\n >\n {query && setQuery && (\n <SearchFacetPanel\n expanded={expanded}\n onCollapse={() => setExpanded(false)}\n disabled={isLoading}\n query={query}\n setQuery={setQuery}\n facets={facets}\n onAddFacet={handleAddFacet}\n onRemoveFacet={handleRemoveFacet}\n onSetRangeFacet={handleSetRangeFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n isRangeFacetApplied={isRangeFacetAppliedCallback}\n getAppliedRangeFacet={getAppliedRangeFacetCallback}\n />\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n </Box>\n <>\n {data && !isSynId && suggestion && (\n <div className={styles.didYouMeanContainer}>\n <div className={styles.didYouMeanCurrentlyShowing}>\n {!noResults && (\n <>\n Currently showing results for{' '}\n <b>{query?.queryTerm?.join(' ')}</b>.\n </>\n )}\n </div>\n <div className={styles.didYouMeanSuggestion}>\n <SearchIcon\n sx={{ color: 'grey.600' }}\n className={styles.searchIcon}\n />\n <Typography variant=\"body1\" className={styles.didYouMeanText}>\n Search for <b className={styles.suggestionText}>{suggestion}</b>{' '}\n instead?\n </Typography>\n <IconButton\n className={styles.didYouMeanArrowContainer}\n onClick={handleUseSuggestion}\n aria-label={`Search for ${suggestion} instead`}\n sx={{\n borderColor: 'primary.main',\n svg: { color: 'primary.main' },\n }}\n >\n <ArrowForward />\n </IconButton>\n </div>\n </div>\n )}\n {noResults && (\n <div className={styles.didYouMeanCurrentlyShowing}>\n No results found for <b>{query?.queryTerm?.join(' ')}</b>.\n </div>\n )}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n gap: '20px',\n }}\n >\n {isLoading &&\n Array.from({ length: 3 }, () => (\n <Skeleton variant=\"rectangular\" width={'100%'} height={'250px'} />\n ))}\n {error && <div>Error: {error.message}</div>}\n <Suspense\n fallback={<SkeletonInlineBlock width={'100%'} height={'150px'} />}\n >\n <SearchPagePortalBanners entityIds={entityIdsForPortalBanners} />\n </Suspense>\n {query && (\n <Box sx={{ alignSelf: 'flex-start' }}>\n <AppliedFacetsChips\n query={query}\n onRemoveFacet={handleRemoveFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n />\n </Box>\n )}\n {data &&\n data.pages &&\n data.pages.map((page, pageIndex) =>\n page.hits.map((hit: Hit) => {\n const projectPath = hit.path?.path?.[1]\n return (\n <SynapseSearchResultsCard\n searchTerms={query?.queryTerm ?? []}\n key={hit.id + '-' + pageIndex}\n entityId={hit.id}\n name={hit.name}\n entityType={hit.node_type}\n modifiedOn={hit.modified_on}\n description={hit.description}\n locatedIn={projectPath}\n />\n )\n }),\n )}\n {hasNextPage && (\n <Button\n onClick={() => {\n void fetchNextPage()\n }}\n loading={isFetchingNextPage}\n variant=\"contained\"\n sx={{ mt: 2 }}\n >\n {isFetchingNextPage ? 'Loading more...' : 'Load More'}\n </Button>\n )}\n </Box>\n </>\n </Box>\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseSearchResultsCard.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAc7D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAiBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CAwJ5E;AAED,eAAe,wBAAwB,CAAA"}
1
+ {"version":3,"file":"SynapseSearchResultsCard.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAc7D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAiBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CAwJ5E;AAED,eAAe,wBAAwB,CAAA"}
@@ -15,9 +15,12 @@ import { useRef as p } from "react";
15
15
  import { Box as m, Chip as h, Link as g, Paper as _, Stack as v, Typography as y, styled as b } from "@mui/material";
16
16
  import { jsx as x, jsxs as S } from "react/jsx-runtime";
17
17
  import { EntityType as C } from "@sage-bionetworks/synapse-client";
18
- import { ArticleOutlined as w, DashboardTwoTone as T, InfoOutline as E, Update as D } from "@mui/icons-material";
19
- import O from "dayjs";
20
- import { useInView as k } from "react-intersection-observer";
18
+ import w from "dayjs";
19
+ import T from "@mui/icons-material/ArticleOutlined";
20
+ import E from "@mui/icons-material/DashboardTwoTone";
21
+ import { useInView as D } from "react-intersection-observer";
22
+ import O from "@mui/icons-material/InfoOutline";
23
+ import k from "@mui/icons-material/Update";
21
24
  //#region src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx
22
25
  var A = b(_, { label: "SynapseSearchResultsCardContainer" })({
23
26
  display: "flex",
@@ -29,7 +32,7 @@ var A = b(_, { label: "SynapseSearchResultsCardContainer" })({
29
32
  gap: "15px"
30
33
  });
31
34
  function j(_) {
32
- let b = p(null), { ref: j, inView: M } = k({
35
+ let b = p(null), { ref: j, inView: M } = D({
33
36
  triggerOnce: !0,
34
37
  rootMargin: "250px 0px"
35
38
  }), { data: N } = r(_.entityId, void 0, { includeFileHandles: !0 }, { enabled: _.entityType === C.file && M }), P = N?.fileHandles.find((e) => e.isPreview !== !0), F = P?.contentSize ? n(P?.contentSize) : "", I = _.description ? i(_.description) : "";
@@ -103,18 +106,18 @@ function j(_) {
103
106
  children: [
104
107
  /* @__PURE__ */ S(m, {
105
108
  sx: { display: "flex" },
106
- children: [/* @__PURE__ */ x(D, { className: f.cardMetadataIcon }), /* @__PURE__ */ S(y, {
109
+ children: [/* @__PURE__ */ x(k, { className: f.cardMetadataIcon }), /* @__PURE__ */ S(y, {
107
110
  className: f.cardMetadataTypographyWithIcon,
108
111
  children: [
109
112
  "Last updated:",
110
113
  " ",
111
- a(O.unix(_.modifiedOn), "M/D/YYYY")
114
+ a(w.unix(_.modifiedOn), "M/D/YYYY")
112
115
  ]
113
116
  })]
114
117
  }),
115
118
  I && /* @__PURE__ */ S(m, {
116
119
  sx: { display: "flex" },
117
- children: [/* @__PURE__ */ x(w, { className: f.cardMetadataIcon }), /* @__PURE__ */ x(u, {
120
+ children: [/* @__PURE__ */ x(T, { className: f.cardMetadataIcon }), /* @__PURE__ */ x(u, {
118
121
  className: `${f.cardMetadataTypographyWithIcon} ${f.cardDescription}`,
119
122
  text: I,
120
123
  searchTerms: _.searchTerms ?? []
@@ -122,7 +125,7 @@ function j(_) {
122
125
  }),
123
126
  F && /* @__PURE__ */ S(m, {
124
127
  sx: { display: "flex" },
125
- children: [/* @__PURE__ */ x(E, { className: f.cardMetadataIcon }), /* @__PURE__ */ S(y, {
128
+ children: [/* @__PURE__ */ x(O, { className: f.cardMetadataIcon }), /* @__PURE__ */ S(y, {
126
129
  className: f.cardMetadataTypographyWithIcon,
127
130
  children: ["File size: ", /* @__PURE__ */ x("b", { children: F })]
128
131
  })]
@@ -138,7 +141,7 @@ function j(_) {
138
141
  className: f.cardMetadataTypographyWithIcon,
139
142
  children: ["Located in:", " "]
140
143
  }),
141
- /* @__PURE__ */ x(T, {
144
+ /* @__PURE__ */ x(E, {
142
145
  className: f.cardMetadataIcon,
143
146
  sx: { marginRight: "4px" }
144
147
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseSearchResultsCard.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { StyledComponent } from '@emotion/styled'\nimport {\n ArticleOutlined,\n DashboardTwoTone,\n InfoOutline,\n Update as UpdateIcon,\n} from '@mui/icons-material'\nimport {\n Box,\n Chip,\n Link,\n Paper,\n PaperProps,\n Stack,\n styled,\n Typography,\n} from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { useRef } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport { EntityDownloadButton } from '../EntityDownloadButton/EntityDownloadButton'\nimport { FileHandleWithPreview } from '../EntityFinder/details/view/table/TableCellTypes'\nimport { EntityTypeIcon } from '../EntityIcon'\nimport FavoriteButton from '../favorites/FavoriteButton'\nimport { markdownToPlainText } from '../Markdown/MarkdownUtils'\nimport { searchResultsCardChipStyles } from './chipStyles'\nimport HasAccessChip from './HasAccessChip'\nimport { HighlightedTypography } from './HighlightedTypography'\nimport styles from './SynapseSearchResultsCard.module.scss'\n\nexport type SynapseSearchResultsCardProps = {\n entityId: string\n name: string\n description?: string\n entityType: EntityType\n modifiedOn: number\n locatedIn?: { name: string; id: string }\n searchTerms?: string[]\n}\n\nconst SynapseSearchResultsCardContainer: StyledComponent<PaperProps> = styled(\n Paper,\n {\n label: 'SynapseSearchResultsCardContainer',\n },\n)({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '250px',\n width: '100%',\n borderRadius: '10px',\n padding: '32px',\n gap: '15px',\n})\n\nexport function SynapseSearchResultsCard(props: SynapseSearchResultsCardProps) {\n const downloadConfirmationRef = useRef<HTMLDivElement>(null)\n\n const { ref, inView } = useInView({\n triggerOnce: true,\n rootMargin: '250px 0px',\n })\n\n const { data: entityBundle } = useGetEntityBundle(\n props.entityId,\n undefined,\n { includeFileHandles: true },\n { enabled: props.entityType === EntityType.file && inView },\n )\n\n const file = entityBundle?.fileHandles.find(\n (file: FileHandleWithPreview) => file.isPreview !== true,\n )\n\n const friendlySize = file?.contentSize\n ? calculateFriendlyFileSize(file?.contentSize)\n : ''\n\n const plainDescription = props.description\n ? markdownToPlainText(props.description)\n : ''\n\n return (\n <SynapseSearchResultsCardContainer ref={ref}>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <Link\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.entityId}`}\n sx={{\n textDecoration: 'underline 2px',\n textUnderlineOffset: '9px',\n }}\n >\n <HighlightedTypography\n className={styles.cardTitle}\n variant=\"headline3\"\n text={props.name}\n searchTerms={props.searchTerms ?? []}\n />\n </Link>\n\n <Box\n sx={{\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }}\n >\n <FavoriteButton entityId={props.entityId} />\n <EntityDownloadButton\n entityId={props.entityId}\n name={props.name}\n entityType={props.entityType}\n downloadConfirmationContainer={downloadConfirmationRef}\n />\n </Box>\n </Box>\n {/* Portal target for EntityDownloadButton's download confirmation dialog */}\n <div ref={downloadConfirmationRef} />\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Chip\n icon={\n <EntityTypeIcon\n type={props.entityType}\n wrap={false}\n sx={{ color: '#265149', width: '18px' }}\n />\n }\n label={props.entityType}\n sx={{ ...searchResultsCardChipStyles }}\n />\n <HasAccessChip entityId={props.entityId} />\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n }}\n >\n <Stack sx={{ gap: '20px', minWidth: 0, width: '100%' }}>\n <Box sx={{ display: 'flex' }}>\n <UpdateIcon className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Last updated:{' '}\n {formatDate(dayjs.unix(props.modifiedOn), 'M/D/YYYY')}\n </Typography>\n </Box>\n {plainDescription && (\n <Box sx={{ display: 'flex' }}>\n <ArticleOutlined className={styles.cardMetadataIcon} />\n <HighlightedTypography\n className={`${styles.cardMetadataTypographyWithIcon} ${styles.cardDescription}`}\n text={plainDescription}\n searchTerms={props.searchTerms ?? []}\n />\n </Box>\n )}\n\n {friendlySize && (\n <Box sx={{ display: 'flex' }}>\n <InfoOutline className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n File size: <b>{friendlySize}</b>\n </Typography>\n </Box>\n )}\n {props.locatedIn && (\n <Box\n sx={{ display: 'flex', marginLeft: '24px', alignItems: 'center' }}\n >\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Located in:{' '}\n </Typography>\n <DashboardTwoTone\n className={styles.cardMetadataIcon}\n sx={{\n marginRight: '4px',\n }}\n />\n <Link\n className={styles.locatedInLink}\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.locatedIn?.id}`}\n >\n {props.locatedIn?.name}\n </Link>\n </Box>\n )}\n </Stack>\n </Box>\n </SynapseSearchResultsCardContainer>\n )\n}\n\nexport default SynapseSearchResultsCard\n"],"mappings":"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"}
1
+ {"version":3,"file":"SynapseSearchResultsCard.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { StyledComponent } from '@emotion/styled'\nimport ArticleOutlined from '@mui/icons-material/ArticleOutlined'\nimport DashboardTwoTone from '@mui/icons-material/DashboardTwoTone'\nimport InfoOutline from '@mui/icons-material/InfoOutline'\nimport UpdateIcon from '@mui/icons-material/Update'\nimport {\n Box,\n Chip,\n Link,\n Paper,\n PaperProps,\n Stack,\n styled,\n Typography,\n} from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { useRef } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport { EntityDownloadButton } from '../EntityDownloadButton/EntityDownloadButton'\nimport { FileHandleWithPreview } from '../EntityFinder/details/view/table/TableCellTypes'\nimport { EntityTypeIcon } from '../EntityIcon'\nimport FavoriteButton from '../favorites/FavoriteButton'\nimport { markdownToPlainText } from '../Markdown/MarkdownUtils'\nimport { searchResultsCardChipStyles } from './chipStyles'\nimport HasAccessChip from './HasAccessChip'\nimport { HighlightedTypography } from './HighlightedTypography'\nimport styles from './SynapseSearchResultsCard.module.scss'\n\nexport type SynapseSearchResultsCardProps = {\n entityId: string\n name: string\n description?: string\n entityType: EntityType\n modifiedOn: number\n locatedIn?: { name: string; id: string }\n searchTerms?: string[]\n}\n\nconst SynapseSearchResultsCardContainer: StyledComponent<PaperProps> = styled(\n Paper,\n {\n label: 'SynapseSearchResultsCardContainer',\n },\n)({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '250px',\n width: '100%',\n borderRadius: '10px',\n padding: '32px',\n gap: '15px',\n})\n\nexport function SynapseSearchResultsCard(props: SynapseSearchResultsCardProps) {\n const downloadConfirmationRef = useRef<HTMLDivElement>(null)\n\n const { ref, inView } = useInView({\n triggerOnce: true,\n rootMargin: '250px 0px',\n })\n\n const { data: entityBundle } = useGetEntityBundle(\n props.entityId,\n undefined,\n { includeFileHandles: true },\n { enabled: props.entityType === EntityType.file && inView },\n )\n\n const file = entityBundle?.fileHandles.find(\n (file: FileHandleWithPreview) => file.isPreview !== true,\n )\n\n const friendlySize = file?.contentSize\n ? calculateFriendlyFileSize(file?.contentSize)\n : ''\n\n const plainDescription = props.description\n ? markdownToPlainText(props.description)\n : ''\n\n return (\n <SynapseSearchResultsCardContainer ref={ref}>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <Link\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.entityId}`}\n sx={{\n textDecoration: 'underline 2px',\n textUnderlineOffset: '9px',\n }}\n >\n <HighlightedTypography\n className={styles.cardTitle}\n variant=\"headline3\"\n text={props.name}\n searchTerms={props.searchTerms ?? []}\n />\n </Link>\n\n <Box\n sx={{\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }}\n >\n <FavoriteButton entityId={props.entityId} />\n <EntityDownloadButton\n entityId={props.entityId}\n name={props.name}\n entityType={props.entityType}\n downloadConfirmationContainer={downloadConfirmationRef}\n />\n </Box>\n </Box>\n {/* Portal target for EntityDownloadButton's download confirmation dialog */}\n <div ref={downloadConfirmationRef} />\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Chip\n icon={\n <EntityTypeIcon\n type={props.entityType}\n wrap={false}\n sx={{ color: '#265149', width: '18px' }}\n />\n }\n label={props.entityType}\n sx={{ ...searchResultsCardChipStyles }}\n />\n <HasAccessChip entityId={props.entityId} />\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n }}\n >\n <Stack sx={{ gap: '20px', minWidth: 0, width: '100%' }}>\n <Box sx={{ display: 'flex' }}>\n <UpdateIcon className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Last updated:{' '}\n {formatDate(dayjs.unix(props.modifiedOn), 'M/D/YYYY')}\n </Typography>\n </Box>\n {plainDescription && (\n <Box sx={{ display: 'flex' }}>\n <ArticleOutlined className={styles.cardMetadataIcon} />\n <HighlightedTypography\n className={`${styles.cardMetadataTypographyWithIcon} ${styles.cardDescription}`}\n text={plainDescription}\n searchTerms={props.searchTerms ?? []}\n />\n </Box>\n )}\n\n {friendlySize && (\n <Box sx={{ display: 'flex' }}>\n <InfoOutline className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n File size: <b>{friendlySize}</b>\n </Typography>\n </Box>\n )}\n {props.locatedIn && (\n <Box\n sx={{ display: 'flex', marginLeft: '24px', alignItems: 'center' }}\n >\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Located in:{' '}\n </Typography>\n <DashboardTwoTone\n className={styles.cardMetadataIcon}\n sx={{\n marginRight: '4px',\n }}\n />\n <Link\n className={styles.locatedInLink}\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.locatedIn?.id}`}\n >\n {props.locatedIn?.name}\n </Link>\n </Box>\n )}\n </Stack>\n </Box>\n </SynapseSearchResultsCardContainer>\n )\n}\n\nexport default SynapseSearchResultsCard\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA8CA,IAAM,IAAiE,EACrE,GACA,EACE,OAAO,oCACT,CACF,EAAE;CACA,SAAS;CACT,eAAe;CACf,WAAW;CACX,OAAO;CACP,cAAc;CACd,SAAS;CACT,KAAK;AACP,CAAC;AAED,SAAgB,EAAyB,GAAsC;CAC7E,IAAM,IAA0B,EAAuB,IAAI,GAErD,EAAE,QAAK,cAAW,EAAU;EAChC,aAAa;EACb,YAAY;CACd,CAAC,GAEK,EAAE,MAAM,MAAiB,EAC7B,EAAM,UACN,KAAA,GACA,EAAE,oBAAoB,GAAK,GAC3B,EAAE,SAAS,EAAM,eAAe,EAAW,QAAQ,EAAO,CAC5D,GAEM,IAAO,GAAc,YAAY,MACpC,MAAgC,EAAK,cAAc,EACtD,GAEM,IAAe,GAAM,cACvB,EAA0B,GAAM,WAAW,IAC3C,IAEE,IAAmB,EAAM,cAC3B,EAAoB,EAAM,WAAW,IACrC;CAEJ,OACE,kBAAC,GAAD;EAAwC;YAAxC;GACE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,gBAAgB;KAChB,OAAO;IACT;cANF,CAQE,kBAAC,GAAD;KACE,MAAM,GAAG,EACP,EAAuB,eACzB,EAAE,UAAU,EAAM;KAClB,IAAI;MACF,gBAAgB;MAChB,qBAAqB;KACvB;eAEA,kBAAC,GAAD;MACE,WAAW,EAAO;MAClB,SAAQ;MACR,MAAM,EAAM;MACZ,aAAa,EAAM,eAAe,CAAC;KACpC,CAAA;IACG,CAAA,GAEN,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,KAAK;MACL,YAAY;KACd;eALF,CAOE,kBAAC,GAAD,EAAgB,UAAU,EAAM,SAAW,CAAA,GAC3C,kBAAC,GAAD;MACE,UAAU,EAAM;MAChB,MAAM,EAAM;MACZ,YAAY,EAAM;MAClB,+BAA+B;KAChC,CAAA,CACE;MACF;;GAEL,kBAAC,OAAD,EAAK,KAAK,EAA0B,CAAA;GACpC,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;IACjB;cAJF,CAME,kBAAC,GAAD;KACE,MACE,kBAAC,GAAD;MACE,MAAM,EAAM;MACZ,MAAM;MACN,IAAI;OAAE,OAAO;OAAW,OAAO;MAAO;KACvC,CAAA;KAEH,OAAO,EAAM;KACb,IAAI,EAAE,GAAG,EAA4B;IACtC,CAAA,GACD,kBAAC,GAAD,EAAe,UAAU,EAAM,SAAW,CAAA,CACvC;;GACL,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,KAAK;IACP;cAEA,kBAAC,GAAD;KAAO,IAAI;MAAE,KAAK;MAAQ,UAAU;MAAG,OAAO;KAAO;eAArD;MACE,kBAAC,GAAD;OAAK,IAAI,EAAE,SAAS,OAAO;iBAA3B,CACE,kBAAC,GAAD,EAAY,WAAW,EAAO,iBAAmB,CAAA,GACjD,kBAAC,GAAD;QAAY,WAAW,EAAO;kBAA9B;SAA8D;SAC9C;SACb,EAAW,EAAM,KAAK,EAAM,UAAU,GAAG,UAAU;QAC1C;SACT;;MACJ,KACC,kBAAC,GAAD;OAAK,IAAI,EAAE,SAAS,OAAO;iBAA3B,CACE,kBAAC,GAAD,EAAiB,WAAW,EAAO,iBAAmB,CAAA,GACtD,kBAAC,GAAD;QACE,WAAW,GAAG,EAAO,+BAA+B,GAAG,EAAO;QAC9D,MAAM;QACN,aAAa,EAAM,eAAe,CAAC;OACpC,CAAA,CACE;;MAGN,KACC,kBAAC,GAAD;OAAK,IAAI,EAAE,SAAS,OAAO;iBAA3B,CACE,kBAAC,GAAD,EAAa,WAAW,EAAO,iBAAmB,CAAA,GAClD,kBAAC,GAAD;QAAY,WAAW,EAAO;kBAA9B,CAA8D,eACjD,kBAAC,KAAD,EAAA,UAAI,EAAgB,CAAA,CACrB;SACT;;MAEN,EAAM,aACL,kBAAC,GAAD;OACE,IAAI;QAAE,SAAS;QAAQ,YAAY;QAAQ,YAAY;OAAS;iBADlE;QAGE,kBAAC,GAAD;SAAY,WAAW,EAAO;mBAA9B,CAA8D,eAChD,GACF;;QACZ,kBAAC,GAAD;SACE,WAAW,EAAO;SAClB,IAAI,EACF,aAAa,MACf;QACD,CAAA;QACD,kBAAC,GAAD;SACE,WAAW,EAAO;SAClB,MAAM,GAAG,EACP,EAAuB,eACzB,EAAE,UAAU,EAAM,WAAW;mBAE5B,EAAM,WAAW;QACd,CAAA;OACH;;KAEF;;GACJ,CAAA;EAC4B;;AAEvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionControls.d.ts","sourceRoot":"","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAOpE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CA8GpE"}
1
+ {"version":3,"file":"RowSelectionControls.d.ts","sourceRoot":"","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAQpE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAwGpE"}
@@ -1,81 +1,75 @@
1
- import { useSynapseContext as e } from "../../../utils/context/SynapseContext.js";
1
+ import { useQueryVisualizationContext as e } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
2
+ import { useSynapseContext as t } from "../../../utils/context/SynapseContext.js";
2
3
  import "../../../utils/index.js";
3
- import { useGetEntity as t } from "../../../synapse-queries/entity/useEntity.js";
4
- import { canTableQueryBeAddedToDownloadList as n } from "../../../utils/functions/queryUtils.js";
4
+ import { useGetEntity as n } from "../../../synapse-queries/entity/useEntity.js";
5
+ import { canTableQueryBeAddedToDownloadList as r } from "../../../utils/functions/queryUtils.js";
5
6
  import "../../../synapse-queries/index.js";
6
- import { getFileColumnModelId as r } from "../SynapseTableUtils.js";
7
- import i from "../../download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js";
7
+ import { getFileColumnModelId as i } from "../SynapseTableUtils.js";
8
8
  import { useQueryContext as a } from "../../QueryContext/QueryContext.js";
9
9
  import "../../QueryContext/index.js";
10
10
  import { useGetQueryMetadata as o } from "../../QueryWrapper/useGetQueryMetadata.js";
11
- import { useQueryVisualizationContext as s } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
12
11
  import "../../QueryVisualizationWrapper/index.js";
13
- import { selectedRowsAtom as c } from "../../QueryWrapper/TableRowSelectionState.js";
14
- import { SignInRequiredModal as l } from "../../SignInRequiredModal/SignInRequiredModal.js";
15
- import { useGetAddToDownloadListRequestForCurrentQuery as u } from "../../QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js";
16
- import { CustomControlButton as d } from "../CustomControls/CustomControlButton.js";
17
- import { RowSelectionUI as f } from "./RowSelectionUI.js";
12
+ import { selectedRowsAtom as s } from "../../QueryWrapper/TableRowSelectionState.js";
13
+ import { SignInRequiredModal as c } from "../../SignInRequiredModal/SignInRequiredModal.js";
14
+ import { useAddSelectedRowsToDownloadList as l } from "../../QueryWrapper/useAddSelectedRowsToDownloadList.js";
15
+ import { CustomControlButton as u } from "../CustomControls/CustomControlButton.js";
16
+ import { RowSelectionUI as d } from "./RowSelectionUI.js";
17
+ import { DownloadLoginModal as f } from "../table-top/DownloadLoginModal.js";
18
18
  import { useState as p } from "react";
19
- import { Box as m, Button as h } from "@mui/material";
20
- import { toast as g } from "react-hot-toast";
21
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
22
- import { GetAppTwoTone as b } from "@mui/icons-material";
23
- import { useAtom as x } from "jotai";
19
+ import { Button as m } from "@mui/material";
20
+ import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
21
+ import { useAtom as v } from "jotai";
22
+ import y from "@mui/icons-material/GetAppTwoTone";
24
23
  //#region src/components/SynapseTable/RowSelection/RowSelectionControls.tsx
25
- var S = "SendToAnalysisPlatformRowSelectionControlButton";
26
- function C(C) {
27
- let { customControls: w = [], remount: T } = C, { isAuthenticated: E } = e(), [D, O] = p(!1), { entityId: k, versionNumber: A, getCurrentQueryRequest: j } = a(), { data: M } = t(k, A), { data: N } = o(), [P, F] = x(c), I = u(), { setIsShowingExportToAnalysisPlatformModal: L, enabledExternalAnalysisPlatforms: R } = s(), z = R.length > 0, B = () => {
28
- F([]), T && T();
29
- }, V = n(M, r(N?.columnModels));
30
- return /* @__PURE__ */ v(f, {
24
+ var b = "SendToAnalysisPlatformRowSelectionControlButton";
25
+ function x(x) {
26
+ let { customControls: S = [], remount: C } = x, { isAuthenticated: w } = t(), [T, E] = p(!1), [D, O] = p(!1), { entityId: k, versionNumber: A, getCurrentQueryRequest: j } = a(), { data: M } = n(k, A), { data: N } = o(), [P, F] = v(s), { addSelectedRowsToDownloadList: I, isPending: L } = l(), { setIsShowingExportToAnalysisPlatformModal: R, enabledExternalAnalysisPlatforms: z } = e(), B = z.length > 0, V = () => {
27
+ F([]), C && C();
28
+ }, H = r(M, i(N?.columnModels));
29
+ return /* @__PURE__ */ g(d, {
31
30
  show: P.length > 0,
32
31
  selectedRowCount: P.length,
33
32
  onClearSelection: () => F([]),
34
- customControls: /* @__PURE__ */ y(_, { children: [
35
- w.map((e) => /* @__PURE__ */ v(d, {
33
+ customControls: /* @__PURE__ */ _(h, { children: [
34
+ S.map((e) => /* @__PURE__ */ g(u, {
36
35
  variant: "contained",
37
36
  callbackData: {
38
37
  tableId: k,
39
38
  queryMetadata: N,
40
39
  selectedRows: P,
41
- refresh: B,
40
+ refresh: V,
42
41
  request: j()
43
42
  },
44
43
  control: e,
45
44
  startIcon: e.icon
46
45
  }, e.buttonText)),
47
- z && /* @__PURE__ */ v(h, {
46
+ B && /* @__PURE__ */ g(m, {
48
47
  variant: "outlined",
49
48
  onClick: () => {
50
- E ? L(!0) : O(!0);
49
+ w ? R(!0) : E(!0);
51
50
  },
52
- id: S,
51
+ id: b,
53
52
  children: "Send to Analysis Platform"
54
53
  }),
55
- D && /* @__PURE__ */ v(l, {
56
- onHide: () => O(!1),
54
+ T && /* @__PURE__ */ g(c, {
55
+ onHide: () => E(!1),
57
56
  content: "You must be signed in to send results to an analysis platform."
58
57
  }),
59
- V && /* @__PURE__ */ v(h, {
58
+ H && /* @__PURE__ */ g(m, {
60
59
  variant: "contained",
61
- onClick: () => {
62
- let e = g.custom(/* @__PURE__ */ v(m, {
63
- sx: { width: "100%" },
64
- children: /* @__PURE__ */ v(i, {
65
- addToDownloadListRequest: I,
66
- onClose: () => {
67
- g.dismiss(e);
68
- }
69
- })
70
- }), { duration: Infinity });
71
- },
72
- startIcon: /* @__PURE__ */ v(b, {}),
60
+ loading: L,
61
+ onClick: () => w ? void I() : O(!0),
62
+ startIcon: /* @__PURE__ */ g(y, {}),
73
63
  children: "Add to Download List"
64
+ }),
65
+ D && /* @__PURE__ */ g(f, {
66
+ showModal: D,
67
+ onHide: () => O(!1)
74
68
  })
75
69
  ] })
76
70
  });
77
71
  }
78
72
  //#endregion
79
- export { C as RowSelectionControls };
73
+ export { x as RowSelectionControls };
80
74
 
81
75
  //# sourceMappingURL=RowSelectionControls.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionControls.js","names":[],"sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import AddToDownloadListConfirmationAlert from '@/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\nimport { useGetAddToDownloadListRequestForCurrentQuery } from '@/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery'\nimport { useGetEntity } from '@/synapse-queries'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { GetAppTwoTone } from '@mui/icons-material'\nimport { Box, Button } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useAtom } from 'jotai'\nimport { useState } from 'react'\nimport { toast } from 'react-hot-toast'\nimport { useSynapseContext } from '@/utils'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { selectedRowsAtom } from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport {\n getFileColumnModelId,\n SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE,\n} from '../SynapseTableUtils'\nimport { CustomControlButton } from '../CustomControls/CustomControlButton'\nimport { CustomControl } from '../TopLevelControls/TopLevelControls'\nimport { RowSelectionUI } from './RowSelectionUI'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\n\nconst SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID =\n 'SendToAnalysisPlatformRowSelectionControlButton'\n\nexport type RowSelectionControlsProps = {\n customControls?: CustomControl[]\n remount?: () => void\n}\n\n/**\n * This component is responsible for rendering the RowSelectionUI and the custom controls. Must be wrapped in a\n * QueryContext and a QueryVisualizationContext.\n * @param props\n * @constructor\n */\nexport function RowSelectionControls(props: RowSelectionControlsProps) {\n const { customControls = [], remount } = props\n const { isAuthenticated } = useSynapseContext()\n const [showLoginModal, setShowLoginModal] = useState(false)\n const { entityId, versionNumber, getCurrentQueryRequest } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n const [selectedRows, setSelectedRows] = useAtom(selectedRowsAtom)\n\n const addToDownloadListRequest =\n useGetAddToDownloadListRequestForCurrentQuery()\n\n const {\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n const showExportToAnalysisPlatformButton =\n enabledExternalAnalysisPlatforms.length > 0\n\n const refresh = () => {\n // clear selection\n setSelectedRows([])\n if (remount) {\n remount()\n }\n }\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n return (\n <RowSelectionUI\n show={selectedRows.length > 0}\n selectedRowCount={selectedRows.length}\n onClearSelection={() => setSelectedRows([])}\n customControls={\n <>\n {customControls.map(customControl => {\n return (\n <CustomControlButton\n key={customControl.buttonText}\n variant=\"contained\"\n callbackData={{\n tableId: entityId!,\n queryMetadata: queryMetadata,\n selectedRows,\n refresh,\n request: getCurrentQueryRequest(),\n }}\n control={customControl}\n startIcon={customControl.icon}\n />\n )\n })}\n {/* TODO: Generic button */}\n {showExportToAnalysisPlatformButton && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (isAuthenticated) {\n setIsShowingExportToAnalysisPlatformModal(true)\n } else {\n setShowLoginModal(true)\n }\n }}\n id={SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID}\n >\n Send to Analysis Platform\n </Button>\n )}\n {showLoginModal && (\n <SignInRequiredModal\n onHide={() => setShowLoginModal(false)}\n content={SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE}\n />\n )}\n {showAddToDownloadCart && (\n <Button\n variant=\"contained\"\n onClick={() => {\n const toastId = toast.custom(\n <Box\n sx={{\n width: '100%',\n }}\n >\n <AddToDownloadListConfirmationAlert\n addToDownloadListRequest={addToDownloadListRequest}\n onClose={() => {\n toast.dismiss(toastId)\n }}\n />\n </Box>,\n {\n duration: Infinity,\n },\n )\n }}\n startIcon={<GetAppTwoTone />}\n >\n Add to Download List\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM,IACJ;AAaF,SAAgB,EAAqB,GAAkC;CACrE,IAAM,EAAE,oBAAiB,CAAC,GAAG,eAAY,GACnC,EAAE,uBAAoB,EAAkB,GACxC,CAAC,GAAgB,KAAqB,EAAS,EAAK,GACpD,EAAE,aAAU,kBAAe,8BAA2B,EAAgB,GACtE,EAAE,MAAM,MAAW,EAAoB,GAAU,CAAa,GAC9D,EAAE,MAAM,MAAkB,EAAoB,GAC9C,CAAC,GAAc,KAAmB,EAAQ,CAAgB,GAE1D,IACJ,EAA8C,GAE1C,EACJ,8CACA,wCACE,EAA6B,GAE3B,IACJ,EAAiC,SAAS,GAEtC,UAAgB;EAGpB,AADA,EAAgB,CAAC,CAAC,GACd,KACF,EAAQ;CAEZ,GAEM,IAAwB,EAC5B,GAFmB,EAAqB,GAAe,YAGvD,CACF;CAEA,OACE,kBAAC,GAAD;EACE,MAAM,EAAa,SAAS;EAC5B,kBAAkB,EAAa;EAC/B,wBAAwB,EAAgB,CAAC,CAAC;EAC1C,gBACE,kBAAA,GAAA,EAAA,UAAA;GACG,EAAe,KAAI,MAEhB,kBAAC,GAAD;IAEE,SAAQ;IACR,cAAc;KACZ,SAAS;KACM;KACf;KACA;KACA,SAAS,EAAuB;IAClC;IACA,SAAS;IACT,WAAW,EAAc;GAC1B,GAXM,EAAc,UAWpB,CAEJ;GAEA,KACC,kBAAC,GAAD;IACE,SAAQ;IACR,eAAe;KACb,AAAI,IACF,EAA0C,EAAI,IAE9C,EAAkB,EAAI;IAE1B;IACA,IAAI;cACL;GAEO,CAAA;GAET,KACC,kBAAC,GAAD;IACE,cAAc,EAAkB,EAAK;IACrC,SAAA;GACD,CAAA;GAEF,KACC,kBAAC,GAAD;IACE,SAAQ;IACR,eAAe;KACb,IAAM,IAAU,EAAM,OACpB,kBAAC,GAAD;MACE,IAAI,EACF,OAAO,OACT;gBAEA,kBAAC,GAAD;OAC4B;OAC1B,eAAe;QACb,EAAM,QAAQ,CAAO;OACvB;MACD,CAAA;KACE,CAAA,GACL,EACE,UAAU,SACZ,CACF;IACF;IACA,WAAW,kBAAC,GAAD,CAAgB,CAAA;cAC5B;GAEO,CAAA;EAEV,EAAA,CAAA;CAEL,CAAA;AAEL"}
1
+ {"version":3,"file":"RowSelectionControls.js","names":[],"sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import { useAddSelectedRowsToDownloadList } from '@/components/QueryWrapper/useAddSelectedRowsToDownloadList'\nimport { useGetEntity } from '@/synapse-queries'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport GetAppTwoTone from '@mui/icons-material/GetAppTwoTone'\nimport { Button } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useAtom } from 'jotai'\nimport { useState } from 'react'\nimport { useSynapseContext } from '@/utils'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { selectedRowsAtom } from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport {\n getFileColumnModelId,\n SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE,\n} from '../SynapseTableUtils'\nimport { CustomControlButton } from '../CustomControls/CustomControlButton'\nimport { CustomControl } from '../TopLevelControls/TopLevelControls'\nimport { RowSelectionUI } from './RowSelectionUI'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\nimport { DownloadLoginModal } from '../table-top/DownloadLoginModal'\n\nconst SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID =\n 'SendToAnalysisPlatformRowSelectionControlButton'\n\nexport type RowSelectionControlsProps = {\n customControls?: CustomControl[]\n remount?: () => void\n}\n\n/**\n * This component is responsible for rendering the RowSelectionUI and the custom controls. Must be wrapped in a\n * QueryContext and a QueryVisualizationContext.\n * @param props\n * @constructor\n */\nexport function RowSelectionControls(props: RowSelectionControlsProps) {\n const { customControls = [], remount } = props\n const { isAuthenticated } = useSynapseContext()\n const [showLoginModal, setShowLoginModal] = useState(false)\n const [showDownloadLoginModal, setShowDownloadLoginModal] = useState(false)\n const { entityId, versionNumber, getCurrentQueryRequest } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n const [selectedRows, setSelectedRows] = useAtom(selectedRowsAtom)\n\n const { addSelectedRowsToDownloadList, isPending: isAddingToDownloadList } =\n useAddSelectedRowsToDownloadList()\n\n const {\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n const showExportToAnalysisPlatformButton =\n enabledExternalAnalysisPlatforms.length > 0\n\n const refresh = () => {\n // clear selection\n setSelectedRows([])\n if (remount) {\n remount()\n }\n }\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n return (\n <RowSelectionUI\n show={selectedRows.length > 0}\n selectedRowCount={selectedRows.length}\n onClearSelection={() => setSelectedRows([])}\n customControls={\n <>\n {customControls.map(customControl => {\n return (\n <CustomControlButton\n key={customControl.buttonText}\n variant=\"contained\"\n callbackData={{\n tableId: entityId!,\n queryMetadata: queryMetadata,\n selectedRows,\n refresh,\n request: getCurrentQueryRequest(),\n }}\n control={customControl}\n startIcon={customControl.icon}\n />\n )\n })}\n {/* TODO: Generic button */}\n {showExportToAnalysisPlatformButton && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (isAuthenticated) {\n setIsShowingExportToAnalysisPlatformModal(true)\n } else {\n setShowLoginModal(true)\n }\n }}\n id={SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID}\n >\n Send to Analysis Platform\n </Button>\n )}\n {showLoginModal && (\n <SignInRequiredModal\n onHide={() => setShowLoginModal(false)}\n content={SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE}\n />\n )}\n {showAddToDownloadCart && (\n <Button\n variant=\"contained\"\n loading={isAddingToDownloadList}\n onClick={() =>\n isAuthenticated\n ? void addSelectedRowsToDownloadList()\n : setShowDownloadLoginModal(true)\n }\n startIcon={<GetAppTwoTone />}\n >\n Add to Download List\n </Button>\n )}\n {showDownloadLoginModal && (\n <DownloadLoginModal\n showModal={showDownloadLoginModal}\n onHide={() => setShowDownloadLoginModal(false)}\n />\n )}\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAM,IACJ;AAaF,SAAgB,EAAqB,GAAkC;CACrE,IAAM,EAAE,oBAAiB,CAAC,GAAG,eAAY,GACnC,EAAE,uBAAoB,EAAkB,GACxC,CAAC,GAAgB,KAAqB,EAAS,EAAK,GACpD,CAAC,GAAwB,KAA6B,EAAS,EAAK,GACpE,EAAE,aAAU,kBAAe,8BAA2B,EAAgB,GACtE,EAAE,MAAM,MAAW,EAAoB,GAAU,CAAa,GAC9D,EAAE,MAAM,MAAkB,EAAoB,GAC9C,CAAC,GAAc,KAAmB,EAAQ,CAAgB,GAE1D,EAAE,kCAA+B,WAAW,MAChD,EAAiC,GAE7B,EACJ,8CACA,wCACE,EAA6B,GAE3B,IACJ,EAAiC,SAAS,GAEtC,UAAgB;EAGpB,AADA,EAAgB,CAAC,CAAC,GACd,KACF,EAAQ;CAEZ,GAEM,IAAwB,EAC5B,GAFmB,EAAqB,GAAe,YAGvD,CACF;CAEA,OACE,kBAAC,GAAD;EACE,MAAM,EAAa,SAAS;EAC5B,kBAAkB,EAAa;EAC/B,wBAAwB,EAAgB,CAAC,CAAC;EAC1C,gBACE,kBAAA,GAAA,EAAA,UAAA;GACG,EAAe,KAAI,MAEhB,kBAAC,GAAD;IAEE,SAAQ;IACR,cAAc;KACZ,SAAS;KACM;KACf;KACA;KACA,SAAS,EAAuB;IAClC;IACA,SAAS;IACT,WAAW,EAAc;GAC1B,GAXM,EAAc,UAWpB,CAEJ;GAEA,KACC,kBAAC,GAAD;IACE,SAAQ;IACR,eAAe;KACb,AAAI,IACF,EAA0C,EAAI,IAE9C,EAAkB,EAAI;IAE1B;IACA,IAAI;cACL;GAEO,CAAA;GAET,KACC,kBAAC,GAAD;IACE,cAAc,EAAkB,EAAK;IACrC,SAAA;GACD,CAAA;GAEF,KACC,kBAAC,GAAD;IACE,SAAQ;IACR,SAAS;IACT,eACE,IACI,KAAK,EAA8B,IACnC,EAA0B,EAAI;IAEpC,WAAW,kBAAC,GAAD,CAAgB,CAAA;cAC5B;GAEO,CAAA;GAET,KACC,kBAAC,GAAD;IACE,WAAW;IACX,cAAc,EAA0B,EAAK;GAC9C,CAAA;EAEH,EAAA,CAAA;CAEL,CAAA;AAEL"}
@@ -2,12 +2,12 @@ import { isRowSelectionUIFloatingAtom as e } from "../../QueryWrapper/TableRowSe
2
2
  import { InlineBadge as t } from "../../styled/InlineBadge.js";
3
3
  import { Box as n, Button as r, Paper as i, Typography as a } from "@mui/material";
4
4
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
5
- import { useAtomValue as l } from "jotai";
6
- import u from "pluralize";
5
+ import l from "pluralize";
6
+ import { useAtomValue as u } from "jotai";
7
7
  //#region src/components/SynapseTable/RowSelection/RowSelectionUI.tsx
8
8
  var d = "SynapseFloatingRowSelectionBar", f = "var(--synapse-floating-row-selection-bar-height)";
9
9
  function p(p) {
10
- let { show: m = !0, selectedRowCount: h, onClearSelection: g, customControls: _ = /* @__PURE__ */ s(o, {}) } = p, v = l(e);
10
+ let { show: m = !0, selectedRowCount: h, onClearSelection: g, customControls: _ = /* @__PURE__ */ s(o, {}) } = p, v = u(e);
11
11
  return m ? /* @__PURE__ */ c(i, {
12
12
  className: v ? d : void 0,
13
13
  sx: {
@@ -46,7 +46,7 @@ function p(p) {
46
46
  max: Infinity
47
47
  }), /* @__PURE__ */ c(a, {
48
48
  variant: "body1",
49
- children: [u("Row", h), " Selected"]
49
+ children: [l("Row", h), " Selected"]
50
50
  })]
51
51
  }), _]
52
52
  })]
@@ -1,8 +1,8 @@
1
- import { HelpPopover as e } from "../HelpPopover/HelpPopover.js";
2
- import t from "../IconSvg/index.js";
3
- import { useQueryContext as n } from "../QueryContext/QueryContext.js";
1
+ import { useQueryVisualizationContext as e } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
2
+ import { HelpPopover as t } from "../HelpPopover/HelpPopover.js";
3
+ import n from "../IconSvg/index.js";
4
+ import { useQueryContext as r } from "../QueryContext/QueryContext.js";
4
5
  import "../QueryContext/index.js";
5
- import { useQueryVisualizationContext as r } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
6
6
  import "../QueryVisualizationWrapper/index.js";
7
7
  import { useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
8
8
  import { Collapse as c, TextField as l } from "@mui/material";
@@ -10,7 +10,7 @@ import { jsx as u } from "react/jsx-runtime";
10
10
  //#region src/components/SynapseTable/SqlEditor.tsx
11
11
  var d = "The data within tables and views can be retrieved by using a SQL-like query language either from the web interface or from the programmatic clients.", f = "https://docs.synapse.org/synapse-docs/querying-tables-views-and-datasets#Using-Advanced-Search-Queries";
12
12
  function p({ helpMessage: p = d, helpUrl: m = f, resetErrorBoundary: h }) {
13
- let { executeQueryRequest: g, getCurrentQueryRequest: _ } = n(), { showSqlEditor: v } = r(), [y, b] = s(""), x = o(null), S = a(() => _(), [_]);
13
+ let { executeQueryRequest: g, getCurrentQueryRequest: _ } = r(), { showSqlEditor: v } = e(), [y, b] = s(""), x = o(null), S = a(() => _(), [_]);
14
14
  return i(() => {
15
15
  if (v) {
16
16
  let e = S.query.sql;
@@ -38,7 +38,7 @@ function p({ helpMessage: p = d, helpUrl: m = f, resetErrorBoundary: h }) {
38
38
  type: "text",
39
39
  slotProps: {
40
40
  input: {
41
- startAdornment: /* @__PURE__ */ u(t, {
41
+ startAdornment: /* @__PURE__ */ u(n, {
42
42
  icon: "search",
43
43
  wrap: !1,
44
44
  sx: {
@@ -46,7 +46,7 @@ function p({ helpMessage: p = d, helpUrl: m = f, resetErrorBoundary: h }) {
46
46
  color: "grey.600"
47
47
  }
48
48
  }),
49
- endAdornment: /* @__PURE__ */ u(e, {
49
+ endAdornment: /* @__PURE__ */ u(t, {
50
50
  markdownText: p,
51
51
  helpUrl: m,
52
52
  placement: "right"
@@ -1,11 +1,11 @@
1
- import { useSynapseContext as e } from "../../utils/context/SynapseContext.js";
1
+ import { useQueryVisualizationContext as e } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
2
+ import { useSynapseContext as t } from "../../utils/context/SynapseContext.js";
2
3
  import "../../utils/index.js";
3
- import { useGetEntity as t } from "../../synapse-queries/entity/useEntity.js";
4
+ import { useGetEntity as n } from "../../synapse-queries/entity/useEntity.js";
4
5
  import "../../synapse-queries/index.js";
5
- import { isEntityViewOrDatasetOrCollection as n, isFileViewOrDataset as ee, isSortableColumn as r } from "./SynapseTableUtils.js";
6
- import { useQueryContext as i } from "../QueryContext/QueryContext.js";
6
+ import { isEntityViewOrDatasetOrCollection as ee, isFileViewOrDataset as r, isSortableColumn as i } from "./SynapseTableUtils.js";
7
+ import { useQueryContext as a } from "../QueryContext/QueryContext.js";
7
8
  import "../QueryContext/index.js";
8
- import { useQueryVisualizationContext as a } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
9
9
  import "../QueryVisualizationWrapper/index.js";
10
10
  import { isRowSelectionVisibleAtom as o } from "../QueryWrapper/TableRowSelectionState.js";
11
11
  import { ModalDownload as s } from "../ModalDownload/ModalDownload.js";
@@ -41,10 +41,10 @@ function C(e, t) {
41
41
  }
42
42
  var se = S();
43
43
  function w(S) {
44
- let { showDownloadColumn: w, hideDownload: E } = S, { rowSet: D, isLoadingNewPage: O, customColumns: k = oe, showAccessColumn: A, showExternalAccessIcon: j, showAccessColumnHeader: M, showDirectDownloadColumn: N = w, hideAddToDownloadListColumn: P = E, columnLinks: F } = S, { entityId: I, versionNumber: L, getCurrentQueryRequest: R, fileIdColumnName: z, fileVersionColumnName: B } = i(), V = h(() => R(), [R]), H = D.headers, { data: U } = t(I, L), { columnsToShowInTable: W, NoContentPlaceholder: G } = a(), K = h(() => ({
44
+ let { showDownloadColumn: w, hideDownload: E } = S, { rowSet: D, isLoadingNewPage: O, customColumns: k = oe, showAccessColumn: A, showExternalAccessIcon: j, showAccessColumnHeader: M, showDirectDownloadColumn: N = w, hideAddToDownloadListColumn: P = E, columnLinks: F } = S, { entityId: I, versionNumber: L, getCurrentQueryRequest: R, fileIdColumnName: z, fileVersionColumnName: B } = a(), V = h(() => R(), [R]), H = D.headers, { data: U } = n(I, L), { columnsToShowInTable: W, NoContentPlaceholder: G } = e(), K = h(() => ({
45
45
  columnLinks: F,
46
46
  showExternalAccessIcon: j
47
- }), [F, j]), { isAuthenticated: ce } = e(), [le, ue] = g(!1), { sort: de, setSort: fe } = m(), q = x(o), J = !!(A && U && (n(U) && T(D) || z)), Y = U && ce && (ee(U) && T(D) || z), X = !!(Y && N), Z = !!(Y && !P && !q), pe = z ? D.headers.findIndex((e) => e.name == z) : void 0, me = B ? D.headers.findIndex((e) => e.name == B) : void 0, he = h(() => [
47
+ }), [F, j]), { isAuthenticated: ce } = t(), [le, ue] = g(!1), { sort: de, setSort: fe } = m(), q = x(o), J = !!(A && U && (ee(U) && T(D) || z)), Y = U && ce && (r(U) && T(D) || z), X = !!(Y && N), Z = !!(Y && !P && !q), pe = z ? D.headers.findIndex((e) => e.name == z) : void 0, me = B ? D.headers.findIndex((e) => e.name == B) : void 0, he = h(() => [
48
48
  ...k,
49
49
  f,
50
50
  u,
@@ -55,7 +55,7 @@ function w(S) {
55
55
  },
56
56
  ...H.map((e, t) => se.accessor((e) => e.values[t], {
57
57
  id: e.name,
58
- enableSorting: r(e.columnType),
58
+ enableSorting: i(e.columnType),
59
59
  enableResizing: !0,
60
60
  minSize: C(e.name, e.columnType),
61
61
  header: re,