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":"useExportToADWorkbench.js","names":[],"sources":["../../../src/synapse-queries/entity/useExportToADWorkbench.ts"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n DownloadFromTableRequest,\n QueryBundleRequest,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport { addDrsUriToSql } from './useExportToCavatica'\n\nexport function useExportToADWorkbench(\n queryBundleRequest: QueryBundleRequest,\n selectColumns?: SelectColumn[],\n fileIdColumnName: string = 'id',\n fileNameColumnName: string = 'name',\n fileVersionColumnName: string = 'currentVersion',\n) {\n const { accessToken } = useSynapseContext()\n const separator = ','\n const writeHeader = true\n const includeRowIdAndRowVersion = false\n const originalSql = queryBundleRequest.query.sql\n const adwbUrl = 'https://adwb-ws-transfer.discover.alzheimersdata.org/'\n return async () => {\n try {\n const sql = addDrsUriToSql(\n originalSql,\n selectColumns,\n fileIdColumnName,\n fileNameColumnName,\n fileVersionColumnName,\n )\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryBundleRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryBundleRequest.query.additionalFilters,\n }\n const result = await SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n accessToken,\n )\n // Send this DRS URI to the Pluto landing page where it can be processed\n const url = `${adwbUrl}?DRS_URI=${encodeURIComponent(\n `drs://repo-prod.prod.sagebase.org/fh${result.resultsFileHandleId}`,\n )}`\n window.open(url, '_blank')\n } catch (_err) {\n displayToast(_err.reason, 'danger')\n }\n }\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EACd,GACA,GACA,IAA2B,MAC3B,IAA6B,QAC7B,IAAgC,kBAChC;CACA,IAAM,EAAE,mBAAgB,EAAkB,GAIpC,IAAc,EAAmB,MAAM;CAE7C,OAAO,YAAY;EACjB,IAAI;GACF,IAAM,IAAM,EACV,GACA,GACA,GACA,GACA,CACF,GACM,IAAqD;IACzD;IACA,UAAU,EAA8B,CAAG;IAC3C,gBAAgB,EAAmB,MAAM;IACzC,cACE;IACF;IACA;IACA,oBAAoB,EAAE,eAAU;IAChC,mBAAmB,EAAmB,MAAM;GAC9C,GACM,IAAS,MAAM,EAAc,0BACjC,GACA,CACF,GAEM,IAAM,iEAAsB,mBAChC,uCAAuC,EAAO,qBAChD;GACA,OAAO,KAAK,GAAK,QAAQ;EAC3B,SAAS,GAAM;GACb,EAAa,EAAK,QAAQ,QAAQ;EACpC;CACF;AACF"}
1
+ {"version":3,"file":"useExportToADWorkbench.js","names":[],"sources":["../../../src/synapse-queries/entity/useExportToADWorkbench.ts"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n DownloadFromTableRequest,\n QueryBundleRequest,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport { addDrsUriToSql } from './useExportToCavatica'\n\nexport function useExportToADWorkbench(\n queryBundleRequest: QueryBundleRequest,\n selectColumns?: SelectColumn[],\n fileIdColumnName: string = 'id',\n fileNameColumnName: string = 'name',\n fileVersionColumnName: string = 'currentVersion',\n) {\n const { accessToken } = useSynapseContext()\n const separator = ','\n const writeHeader = true\n const includeRowIdAndRowVersion = false\n const originalSql = queryBundleRequest.query.sql\n const adwbUrl = 'https://adwb-ws-transfer.discover.alzheimersdata.org/'\n return async () => {\n try {\n const sql = addDrsUriToSql(\n originalSql,\n selectColumns,\n fileIdColumnName,\n fileNameColumnName,\n fileVersionColumnName,\n )\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryBundleRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryBundleRequest.query.additionalFilters,\n cohorts: queryBundleRequest.query.cohorts,\n }\n const result = await SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n accessToken,\n )\n // Send this DRS URI to the Pluto landing page where it can be processed\n const url = `${adwbUrl}?DRS_URI=${encodeURIComponent(\n `drs://repo-prod.prod.sagebase.org/fh${result.resultsFileHandleId}`,\n )}`\n window.open(url, '_blank')\n } catch (_err) {\n displayToast(_err.reason, 'danger')\n }\n }\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EACd,GACA,GACA,IAA2B,MAC3B,IAA6B,QAC7B,IAAgC,kBAChC;CACA,IAAM,EAAE,mBAAgB,EAAkB,GAIpC,IAAc,EAAmB,MAAM;CAE7C,OAAO,YAAY;EACjB,IAAI;GACF,IAAM,IAAM,EACV,GACA,GACA,GACA,GACA,CACF,GACM,IAAqD;IACzD;IACA,UAAU,EAA8B,CAAG;IAC3C,gBAAgB,EAAmB,MAAM;IACzC,cACE;IACF;IACA;IACA,oBAAoB,EAAE,eAAU;IAChC,mBAAmB,EAAmB,MAAM;IAC5C,SAAS,EAAmB,MAAM;GACpC,GACM,IAAS,MAAM,EAAc,0BACjC,GACA,CACF,GAEM,IAAM,iEAAsB,mBAChC,uCAAuC,EAAO,qBAChD;GACA,OAAO,KAAK,GAAK,QAAQ;EAC3B,SAAS,GAAM;GACb,EAAa,EAAK,QAAQ,QAAQ;EACpC;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useExportToCavatica.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/entity/useExportToCavatica.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,kBAAkB,EAClB,YAAY,EACb,MAAM,iCAAiC,CAAA;AAExC,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,YAAY,EAAE,EAC9B,gBAAgB,CAAC,EAAE,MAAM,EACzB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,qBAAqB,CAAC,EAAE,MAAM,EAC9B,6BAA6B,GAAE,OAAe,GAC7C,MAAM,CAcR;AAED,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,YAAY,EAAE,EAC9B,gBAAgB,GAAE,MAAa,EAC/B,kBAAkB,GAAE,MAAe,EACnC,qBAAqB,GAAE,MAAyB,uBAwCjD"}
1
+ {"version":3,"file":"useExportToCavatica.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/entity/useExportToCavatica.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,kBAAkB,EAClB,YAAY,EACb,MAAM,iCAAiC,CAAA;AAExC,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,YAAY,EAAE,EAC9B,gBAAgB,CAAC,EAAE,MAAM,EACzB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,qBAAqB,CAAC,EAAE,MAAM,EAC9B,6BAA6B,GAAE,OAAe,GAC7C,MAAM,CAcR;AAED,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,YAAY,EAAE,EAC9B,gBAAgB,GAAE,MAAa,EAC/B,kBAAkB,GAAE,MAAe,EACnC,qBAAqB,GAAE,MAAyB,uBAyCjD"}
@@ -4,7 +4,7 @@ import { parseEntityIdFromSqlStatement as n } from "../../utils/functions/SqlFun
4
4
  import { useSynapseContext as r } from "../../utils/context/SynapseContext.js";
5
5
  //#region src/synapse-queries/entity/useExportToCavatica.ts
6
6
  function i(e, t, n, r, i, a = !1) {
7
- return `SELECT CONCAT('drs://repo-prod.prod.sagebase.org/syn', ${n}, '.', ${i}) AS drs_uri, ${r} as name, ${t?.filter((e) => e.name != "name").map((e) => a && e.name.includes(" ") ? `"${e.name}" as "${e.name.replace(/\s/g, "")}"` : `"${e.name}"`).join(",")} FROM ${e.slice(e.toLowerCase().indexOf("from") + 4 + 1)}`;
7
+ return `SELECT CONCAT('drs://repo-prod.prod.sagebase.org/syn', ${n}, '.', ${i}) AS drs_uri, ${r} as name, ${t?.filter((e) => e.name != "name").map((e) => a && e.name.includes(" ") ? `"${e.name}" as "${e.name.replaceAll(/\s/g, "")}"` : `"${e.name}"`).join(",")} FROM ${e.slice(e.toLowerCase().indexOf("from") + 4 + 1)}`;
8
8
  }
9
9
  function a(a, o, s = "id", c = "name", l = "currentVersion") {
10
10
  let { accessToken: u } = r(), d = a.query.sql;
@@ -18,7 +18,8 @@ function a(a, o, s = "id", c = "name", l = "currentVersion") {
18
18
  writeHeader: !0,
19
19
  includeRowIdAndRowVersion: !1,
20
20
  csvTableDescriptor: { separator: "," },
21
- additionalFilters: a.query.additionalFilters
21
+ additionalFilters: a.query.additionalFilters,
22
+ cohorts: a.query.cohorts
22
23
  }, f = await t.createTableCsvForDownload(r, u), p = `https://cavatica.sbgenomics.com/import-redirect/drs/csv?DRS_URI=${encodeURIComponent(`drs://repo-prod.prod.sagebase.org/fh${f.resultsFileHandleId}`)}`;
23
24
  window.open(p, "_blank");
24
25
  } catch (t) {
@@ -1 +1 @@
1
- {"version":3,"file":"useExportToCavatica.js","names":[],"sources":["../../../src/synapse-queries/entity/useExportToCavatica.ts"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n DownloadFromTableRequest,\n QueryBundleRequest,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\n\nexport function addDrsUriToSql(\n originalSql: string,\n selectColumns?: SelectColumn[],\n fileIdColumnName?: string,\n fileNameColumnName?: string,\n fileVersionColumnName?: string,\n removeSpacesFromSelectColumns: boolean = false,\n): string {\n const selectColumnsList = selectColumns\n ?.filter(col => col.name != 'name')\n .map(col => {\n if (removeSpacesFromSelectColumns && col.name.includes(' ')) {\n return `\"${col.name}\" as \"${col.name.replace(/\\s/g, '')}\"`\n }\n // else\n return `\"${col.name}\"`\n })\n .join(',')\n return `SELECT CONCAT('drs://repo-prod.prod.sagebase.org/syn', ${fileIdColumnName}, '.', ${fileVersionColumnName}) AS drs_uri, ${fileNameColumnName} as name, ${selectColumnsList} FROM ${originalSql.slice(\n originalSql.toLowerCase().indexOf('from') + 'from'.length + 1,\n )}`\n}\n\nexport function useExportToCavatica(\n queryBundleRequest: QueryBundleRequest,\n selectColumns?: SelectColumn[],\n fileIdColumnName: string = 'id',\n fileNameColumnName: string = 'name',\n fileVersionColumnName: string = 'currentVersion',\n) {\n const { accessToken } = useSynapseContext()\n const separator = ','\n const writeHeader = true\n const includeRowIdAndRowVersion = false\n const originalSql = queryBundleRequest.query.sql\n return async () => {\n try {\n const sql = addDrsUriToSql(\n originalSql,\n selectColumns,\n fileIdColumnName,\n fileNameColumnName,\n fileVersionColumnName,\n )\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryBundleRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryBundleRequest.query.additionalFilters,\n }\n const result = await SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n accessToken,\n )\n // Send this DRS URI to the CAVATICA landing page where it can be processed\n const cavaticaURL = `https://cavatica.sbgenomics.com/import-redirect/drs/csv?DRS_URI=${encodeURIComponent(\n `drs://repo-prod.prod.sagebase.org/fh${result.resultsFileHandleId}`,\n )}`\n window.open(cavaticaURL, '_blank')\n } catch (_err) {\n displayToast(_err.reason, 'danger')\n }\n }\n}\n"],"mappings":";;;;;AAUA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACA,IAAyC,IACjC;CAWR,OAAO,0DAA0D,EAAiB,SAAS,EAAsB,gBAAgB,EAAmB,YAV1H,GACtB,QAAO,MAAO,EAAI,QAAQ,MAAM,EACjC,KAAI,MACC,KAAiC,EAAI,KAAK,SAAS,GAAG,IACjD,IAAI,EAAI,KAAK,QAAQ,EAAI,KAAK,QAAQ,OAAO,EAAE,EAAE,KAGnD,IAAI,EAAI,KAAK,EACrB,EACA,KAAK,GAAG,EACuK,QAAQ,EAAY,MACpM,EAAY,YAAY,EAAE,QAAQ,MAAM,IAAI,IAAgB,CAC9D;AACF;AAEA,SAAgB,EACd,GACA,GACA,IAA2B,MAC3B,IAA6B,QAC7B,IAAgC,kBAChC;CACA,IAAM,EAAE,mBAAgB,EAAkB,GAIpC,IAAc,EAAmB,MAAM;CAC7C,OAAO,YAAY;EACjB,IAAI;GACF,IAAM,IAAM,EACV,GACA,GACA,GACA,GACA,CACF,GACM,IAAqD;IACzD;IACA,UAAU,EAA8B,CAAG;IAC3C,gBAAgB,EAAmB,MAAM;IACzC,cACE;IACF;IACA;IACA,oBAAoB,EAAE,eAAU;IAChC,mBAAmB,EAAmB,MAAM;GAC9C,GACM,IAAS,MAAM,EAAc,0BACjC,GACA,CACF,GAEM,IAAc,mEAAmE,mBACrF,uCAAuC,EAAO,qBAChD;GACA,OAAO,KAAK,GAAa,QAAQ;EACnC,SAAS,GAAM;GACb,EAAa,EAAK,QAAQ,QAAQ;EACpC;CACF;AACF"}
1
+ {"version":3,"file":"useExportToCavatica.js","names":[],"sources":["../../../src/synapse-queries/entity/useExportToCavatica.ts"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n DownloadFromTableRequest,\n QueryBundleRequest,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\n\nexport function addDrsUriToSql(\n originalSql: string,\n selectColumns?: SelectColumn[],\n fileIdColumnName?: string,\n fileNameColumnName?: string,\n fileVersionColumnName?: string,\n removeSpacesFromSelectColumns: boolean = false,\n): string {\n const selectColumnsList = selectColumns\n ?.filter(col => col.name != 'name')\n .map(col => {\n if (removeSpacesFromSelectColumns && col.name.includes(' ')) {\n return `\"${col.name}\" as \"${col.name.replaceAll(/\\s/g, '')}\"`\n }\n // else\n return `\"${col.name}\"`\n })\n .join(',')\n return `SELECT CONCAT('drs://repo-prod.prod.sagebase.org/syn', ${fileIdColumnName}, '.', ${fileVersionColumnName}) AS drs_uri, ${fileNameColumnName} as name, ${selectColumnsList} FROM ${originalSql.slice(\n originalSql.toLowerCase().indexOf('from') + 'from'.length + 1,\n )}`\n}\n\nexport function useExportToCavatica(\n queryBundleRequest: QueryBundleRequest,\n selectColumns?: SelectColumn[],\n fileIdColumnName: string = 'id',\n fileNameColumnName: string = 'name',\n fileVersionColumnName: string = 'currentVersion',\n) {\n const { accessToken } = useSynapseContext()\n const separator = ','\n const writeHeader = true\n const includeRowIdAndRowVersion = false\n const originalSql = queryBundleRequest.query.sql\n return async () => {\n try {\n const sql = addDrsUriToSql(\n originalSql,\n selectColumns,\n fileIdColumnName,\n fileNameColumnName,\n fileVersionColumnName,\n )\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryBundleRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryBundleRequest.query.additionalFilters,\n cohorts: queryBundleRequest.query.cohorts,\n }\n const result = await SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n accessToken,\n )\n // Send this DRS URI to the CAVATICA landing page where it can be processed\n const cavaticaURL = `https://cavatica.sbgenomics.com/import-redirect/drs/csv?DRS_URI=${encodeURIComponent(\n `drs://repo-prod.prod.sagebase.org/fh${result.resultsFileHandleId}`,\n )}`\n window.open(cavaticaURL, '_blank')\n } catch (_err) {\n displayToast(_err.reason, 'danger')\n }\n }\n}\n"],"mappings":";;;;;AAUA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACA,IAAyC,IACjC;CAWR,OAAO,0DAA0D,EAAiB,SAAS,EAAsB,gBAAgB,EAAmB,YAV1H,GACtB,QAAO,MAAO,EAAI,QAAQ,MAAM,EACjC,KAAI,MACC,KAAiC,EAAI,KAAK,SAAS,GAAG,IACjD,IAAI,EAAI,KAAK,QAAQ,EAAI,KAAK,WAAW,OAAO,EAAE,EAAE,KAGtD,IAAI,EAAI,KAAK,EACrB,EACA,KAAK,GAAG,EACuK,QAAQ,EAAY,MACpM,EAAY,YAAY,EAAE,QAAQ,MAAM,IAAI,IAAgB,CAC9D;AACF;AAEA,SAAgB,EACd,GACA,GACA,IAA2B,MAC3B,IAA6B,QAC7B,IAAgC,kBAChC;CACA,IAAM,EAAE,mBAAgB,EAAkB,GAIpC,IAAc,EAAmB,MAAM;CAC7C,OAAO,YAAY;EACjB,IAAI;GACF,IAAM,IAAM,EACV,GACA,GACA,GACA,GACA,CACF,GACM,IAAqD;IACzD;IACA,UAAU,EAA8B,CAAG;IAC3C,gBAAgB,EAAmB,MAAM;IACzC,cACE;IACF;IACA;IACA,oBAAoB,EAAE,eAAU;IAChC,mBAAmB,EAAmB,MAAM;IAC5C,SAAS,EAAmB,MAAM;GACpC,GACM,IAAS,MAAM,EAAc,0BACjC,GACA,CACF,GAEM,IAAc,mEAAmE,mBACrF,uCAAuC,EAAO,qBAChD;GACA,OAAO,KAAK,GAAa,QAAQ;EACnC,SAAS,GAAM;GACb,EAAa,EAAK,QAAQ,QAAQ;EACpC;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useExportToPluto.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/entity/useExportToPluto.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,kBAAkB,EAClB,YAAY,EACb,MAAM,iCAAiC,CAAA;AAGxC,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,YAAY,EAAE,EAC9B,gBAAgB,GAAE,MAAa,EAC/B,kBAAkB,GAAE,MAAe,EACnC,qBAAqB,GAAE,MAAyB,EAChD,KAAK,GAAE,OAAe,uBA2CvB"}
1
+ {"version":3,"file":"useExportToPluto.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/entity/useExportToPluto.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,kBAAkB,EAClB,YAAY,EACb,MAAM,iCAAiC,CAAA;AAGxC,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,YAAY,EAAE,EAC9B,gBAAgB,GAAE,MAAa,EAC/B,kBAAkB,GAAE,MAAe,EACnC,qBAAqB,GAAE,MAAyB,EAChD,KAAK,GAAE,OAAe,uBA4CvB"}
@@ -16,7 +16,8 @@ function a(a, o, s = "id", c = "name", l = "currentVersion", u = !1) {
16
16
  writeHeader: !0,
17
17
  includeRowIdAndRowVersion: !1,
18
18
  csvTableDescriptor: { separator: "," },
19
- additionalFilters: a.query.additionalFilters
19
+ additionalFilters: a.query.additionalFilters,
20
+ cohorts: a.query.cohorts
20
21
  }, u = await t.createTableCsvForDownload(r, d), m = `${p}?DRS_URI=${encodeURIComponent(`drs://repo-prod.prod.sagebase.org/fh${u.resultsFileHandleId}`)}`;
21
22
  window.open(m, "_blank");
22
23
  } catch (t) {
@@ -1 +1 @@
1
- {"version":3,"file":"useExportToPluto.js","names":[],"sources":["../../../src/synapse-queries/entity/useExportToPluto.ts"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n DownloadFromTableRequest,\n QueryBundleRequest,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport { addDrsUriToSql } from './useExportToCavatica'\n\nexport function useExportToPluto(\n queryBundleRequest: QueryBundleRequest,\n selectColumns?: SelectColumn[],\n fileIdColumnName: string = 'id',\n fileNameColumnName: string = 'name',\n fileVersionColumnName: string = 'currentVersion',\n isDev: boolean = false,\n) {\n const { accessToken } = useSynapseContext()\n const separator = ','\n const writeHeader = true\n const includeRowIdAndRowVersion = false\n const originalSql = queryBundleRequest.query.sql\n const plutoURL = isDev\n ? 'https://dev.pluto.bio/synapse/drs'\n : 'https://app.pluto.bio/synapse/drs'\n return async () => {\n try {\n const sql = addDrsUriToSql(\n originalSql,\n selectColumns,\n fileIdColumnName,\n fileNameColumnName,\n fileVersionColumnName,\n )\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryBundleRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryBundleRequest.query.additionalFilters,\n }\n const result = await SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n accessToken,\n )\n // Send this DRS URI to the Pluto landing page where it can be processed\n const url = `${plutoURL}?DRS_URI=${encodeURIComponent(\n `drs://repo-prod.prod.sagebase.org/fh${result.resultsFileHandleId}`,\n )}`\n window.open(url, '_blank')\n } catch (_err) {\n displayToast(_err.reason, 'danger')\n }\n }\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EACd,GACA,GACA,IAA2B,MAC3B,IAA6B,QAC7B,IAAgC,kBAChC,IAAiB,IACjB;CACA,IAAM,EAAE,mBAAgB,EAAkB,GAIpC,IAAc,EAAmB,MAAM,KACvC,IAAW,IACb,sCACA;CACJ,OAAO,YAAY;EACjB,IAAI;GACF,IAAM,IAAM,EACV,GACA,GACA,GACA,GACA,CACF,GACM,IAAqD;IACzD;IACA,UAAU,EAA8B,CAAG;IAC3C,gBAAgB,EAAmB,MAAM;IACzC,cACE;IACF;IACA;IACA,oBAAoB,EAAE,eAAU;IAChC,mBAAmB,EAAmB,MAAM;GAC9C,GACM,IAAS,MAAM,EAAc,0BACjC,GACA,CACF,GAEM,IAAM,GAAG,EAAS,WAAW,mBACjC,uCAAuC,EAAO,qBAChD;GACA,OAAO,KAAK,GAAK,QAAQ;EAC3B,SAAS,GAAM;GACb,EAAa,EAAK,QAAQ,QAAQ;EACpC;CACF;AACF"}
1
+ {"version":3,"file":"useExportToPluto.js","names":[],"sources":["../../../src/synapse-queries/entity/useExportToPluto.ts"],"sourcesContent":["import { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport {\n DownloadFromTableRequest,\n QueryBundleRequest,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport { addDrsUriToSql } from './useExportToCavatica'\n\nexport function useExportToPluto(\n queryBundleRequest: QueryBundleRequest,\n selectColumns?: SelectColumn[],\n fileIdColumnName: string = 'id',\n fileNameColumnName: string = 'name',\n fileVersionColumnName: string = 'currentVersion',\n isDev: boolean = false,\n) {\n const { accessToken } = useSynapseContext()\n const separator = ','\n const writeHeader = true\n const includeRowIdAndRowVersion = false\n const originalSql = queryBundleRequest.query.sql\n const plutoURL = isDev\n ? 'https://dev.pluto.bio/synapse/drs'\n : 'https://app.pluto.bio/synapse/drs'\n return async () => {\n try {\n const sql = addDrsUriToSql(\n originalSql,\n selectColumns,\n fileIdColumnName,\n fileNameColumnName,\n fileVersionColumnName,\n )\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryBundleRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryBundleRequest.query.additionalFilters,\n cohorts: queryBundleRequest.query.cohorts,\n }\n const result = await SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n accessToken,\n )\n // Send this DRS URI to the Pluto landing page where it can be processed\n const url = `${plutoURL}?DRS_URI=${encodeURIComponent(\n `drs://repo-prod.prod.sagebase.org/fh${result.resultsFileHandleId}`,\n )}`\n window.open(url, '_blank')\n } catch (_err) {\n displayToast(_err.reason, 'danger')\n }\n }\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EACd,GACA,GACA,IAA2B,MAC3B,IAA6B,QAC7B,IAAgC,kBAChC,IAAiB,IACjB;CACA,IAAM,EAAE,mBAAgB,EAAkB,GAIpC,IAAc,EAAmB,MAAM,KACvC,IAAW,IACb,sCACA;CACJ,OAAO,YAAY;EACjB,IAAI;GACF,IAAM,IAAM,EACV,GACA,GACA,GACA,GACA,CACF,GACM,IAAqD;IACzD;IACA,UAAU,EAA8B,CAAG;IAC3C,gBAAgB,EAAmB,MAAM;IACzC,cACE;IACF;IACA;IACA,oBAAoB,EAAE,eAAU;IAChC,mBAAmB,EAAmB,MAAM;IAC5C,SAAS,EAAmB,MAAM;GACpC,GACM,IAAS,MAAM,EAAc,0BACjC,GACA,CACF,GAEM,IAAM,GAAG,EAAS,WAAW,mBACjC,uCAAuC,EAAO,qBAChD;GACA,OAAO,KAAK,GAAK,QAAQ;EAC3B,SAAS,GAAM;GACb,EAAa,EAAK,QAAQ,QAAQ;EACpC;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetQueryResultBundle.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/entity/useGetQueryResultBundle.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,uBAAuB,EAEvB,eAAe,EACf,cAAc,EACf,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,eAAO,MAAM,0BAA0B;;CAEtC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAK,GAAG,iBAAiB,EACvE,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,CAAC,EAAE,OAAO,CACf,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAC9D,qFAaF;AAoCD,wBAAgB,eAAe,CAC7B,KAAK,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAEpE,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,CAAC,EAAE,OAAO,CACf,eAAe,CACb,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAC5D,kBAAkB,EAClB,KAAK,CACN,CACF,EACD,qBAAqB,CAAC,EAAE,CACtB,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,KACjE,IAAI,qFAeV;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAEpE,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,CAAC,EAAE,OAAO,CACf,eAAe,CACb,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAC5D,kBAAkB,EAClB,KAAK,CACN,CACF,EACD,qBAAqB,CAAC,EAAE,CACtB,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,KACjE,IAAI,qFAgBV;AAED;;GAEG;AACH,KAAK,iCAAiC,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAC1D,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAC3B,MAAM,GACN,QAAQ,GACR,SAAS,GACT,WAAW,GACX,OAAO,GACP,WAAW,GACX,mBAAmB,GACnB,WAAW,CAEd,CAAA;AAiCD,wBAAgB,sCAAsC,CACpD,KAAK,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAEpE,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,CAAC,EAAE,OAAO,CACf,eAAe,CACb,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAC5D,kBAAkB,EAClB,KAAK,CACN,CACF,EACD,qBAAqB,CAAC,EAAE,CACtB,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,KACjE,IAAI,GACR,iCAAiC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAwD9D;AAED,wBAAgB,mCAAmC,CACjD,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,qBAAqB,CAAC,EAAE,CACtB,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,KACjE,IAAI,GACR,uBAAuB,CACxB,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAC5D,kBAAkB,EAClB,YAAY,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,EAC1E,QAAQ,EACR,MAAM,GAAG,MAAM,GAAG,SAAS,CAC5B,CAwFA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,GAAG,iBAAiB,EACnE,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,CAAC,EAAE,OAAO,CACf,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAC9D,EACD,cAAc,GAAE,OAAe,qFAiBhC"}
1
+ {"version":3,"file":"useGetQueryResultBundle.d.ts","sourceRoot":"","sources":["../../../src/synapse-queries/entity/useGetQueryResultBundle.ts"],"names":[],"mappings":"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"}
@@ -82,13 +82,10 @@ function p(t, n, r, i) {
82
82
  },
83
83
  select: (e) => {
84
84
  let t = e?.pages[0];
85
- if (t.responseBody) for (let n = 0; n < e.pages.length; n++) {
86
- let r = e.pages[n];
87
- r.responseBody != null && (e.pages[n].responseBody = {
88
- ...t.responseBody,
89
- queryResult: r.responseBody.queryResult
90
- });
91
- }
85
+ if (t.responseBody) for (let n of e.pages) n.responseBody != null && (n.responseBody = {
86
+ ...t.responseBody,
87
+ queryResult: n.responseBody.queryResult
88
+ });
92
89
  return e;
93
90
  },
94
91
  getPreviousPageParam: (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useGetQueryResultBundle.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetQueryResultBundle.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport { partitionQueryBundleRequestIntoRowsAndMetadata } from '@/utils/functions/queryUtils'\nimport {\n BUNDLE_MASK_QUERY_COUNT,\n BUNDLE_MASK_QUERY_RESULTS,\n DEFAULT_PAGE_SIZE,\n} from '@/utils/SynapseConstants'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n AsynchronousJobStatus,\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n UseQueryResult,\n} from '@tanstack/react-query'\nimport { merge } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { KeyFactory } from '../KeyFactory'\n\nexport const tableQueryUseQueryDefaults = {\n staleTime: 1000 * 60 * 30, // 30 minutes\n}\n\n/**\n *\n * @param queryBundleRequest\n * @param options\n * @returns\n *\n * @deprecated - use useGetQueryResultBundleWithAsyncStatus. That hook can be renamed and this can be removed\n * when all cases are using useGetQueryResultBundleWithAsyncStatus\n */\nexport default function useGetQueryResultBundle<TData = QueryResultBundle>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<QueryResultBundle, SynapseClientError, TData>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery<QueryResultBundle, SynapseClientError, TData>({\n ...tableQueryUseQueryDefaults,\n ...options,\n queryKey: keyFactory.getEntityTableQueryResultQueryKey(\n queryBundleRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getQueryTableResults(queryBundleRequest, accessToken),\n })\n}\n\nfunction useGetQueryResultBundleWithAsyncStatusInternal<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...tableQueryUseQueryDefaults,\n ...options,\n queryKey: keyFactory.getEntityTableQueryResultWithAsyncStatusQueryKey(\n queryBundleRequest,\n false,\n ),\n\n queryFn: () =>\n SynapseClient.getQueryTableAsyncJobResults(\n queryBundleRequest,\n accessToken,\n setCurrentAsyncStatus,\n ),\n })\n}\n\nexport function useGetQueryRows<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n) {\n const { rowDataRequest } =\n partitionQueryBundleRequestIntoRowsAndMetadata(queryBundleRequest)\n\n const enableQuery = rowDataRequest.partMask > 0 ? options?.enabled : false\n\n return useGetQueryResultBundleWithAsyncStatusInternal<TData>(\n rowDataRequest,\n {\n ...options,\n enabled: enableQuery,\n },\n setCurrentAsyncStatus,\n )\n}\n\nexport function useGetQueryStats<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n) {\n const { queryMetadataRequest } =\n partitionQueryBundleRequestIntoRowsAndMetadata(queryBundleRequest)\n\n const enableQuery =\n queryMetadataRequest.partMask > 0 ? options?.enabled : false\n\n return useGetQueryResultBundleWithAsyncStatusInternal<TData>(\n queryMetadataRequest,\n {\n ...options,\n enabled: enableQuery,\n },\n setCurrentAsyncStatus,\n )\n}\n\n/**\n * The set of properties returned by UseQuery where the results can be safely merged and memoized\n */\ntype UseQueryResultMergeableProperties<TData, TError> = Pick<\n UseQueryResult<TData, TError>,\n | 'data'\n | 'status'\n | 'isError'\n | 'isLoading'\n | 'error'\n | 'isSuccess'\n | 'isPlaceholderData'\n | 'isPending'\n // Note -- this list is not comprehensive. If there is a merge-able property you need, then add it!\n>\n\n/**\n * Returns a memoized object that contains the merge-able properties in the provided UseQueryResult\n * @param useQueryResult\n */\nfunction useGetMemoizedMergeableProperties<TData, TError>(\n useQueryResult: UseQueryResult<TData, TError>,\n): UseQueryResultMergeableProperties<TData, TError> {\n return useMemo(\n () => ({\n data: useQueryResult.data,\n status: useQueryResult.status,\n isError: useQueryResult.isError,\n isLoading: useQueryResult.isLoading,\n error: useQueryResult.error,\n isSuccess: useQueryResult.isSuccess,\n isPlaceholderData: useQueryResult.isPlaceholderData,\n isPending: useQueryResult.isPending,\n }),\n [\n useQueryResult.data,\n useQueryResult.error,\n useQueryResult.isError,\n useQueryResult.isLoading,\n useQueryResult.isPending,\n useQueryResult.isPlaceholderData,\n useQueryResult.isSuccess,\n useQueryResult.status,\n ],\n )\n}\n\nexport function useGetQueryResultBundleWithAsyncStatus<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n): UseQueryResultMergeableProperties<TData, SynapseClientError> {\n /**\n * Separate the query into two parts\n * - Query result rows, which will change each page\n * - Everything else, which does not change each page\n */\n const rowResult = useGetQueryRows<TData>(\n queryBundleRequest,\n options,\n setCurrentAsyncStatus,\n )\n const statsResult = useGetQueryStats<TData>(\n queryBundleRequest,\n options,\n setCurrentAsyncStatus,\n )\n\n // The rowResult and statsResult objects change every render.\n // Memoize the two query results so that we can safely memoize the result that we return\n const rowResultMergeableProperties =\n useGetMemoizedMergeableProperties(rowResult)\n const statsResultMergeableProperties =\n useGetMemoizedMergeableProperties(statsResult)\n\n const mergedBundle = useMemo(() => {\n // If either query is in error, return the error\n if (rowResultMergeableProperties.status === 'error') {\n return rowResultMergeableProperties\n } else if (statsResultMergeableProperties.status === 'error') {\n return statsResultMergeableProperties\n } else if (rowResultMergeableProperties.isLoading) {\n // if either query is loading, return the loading status\n return rowResultMergeableProperties\n } else if (statsResultMergeableProperties.isLoading) {\n return statsResultMergeableProperties\n } else {\n // Otherwise, both queries are successful or idle, Merge the results into a single object\n if (rowResultMergeableProperties.isPending) {\n // If the row result is pending, apply the stats result last to override the pending status\n return merge(\n {},\n rowResultMergeableProperties,\n statsResultMergeableProperties,\n )\n } else {\n // Otherwise, always apply the rowResult last, since it is likely have been fetched more recently than the stats.\n return merge(\n {},\n statsResultMergeableProperties,\n rowResultMergeableProperties,\n )\n }\n }\n }, [rowResultMergeableProperties, statsResultMergeableProperties])\n\n return mergedBundle\n}\n\nexport function getInfiniteQueryResultBundleOptions(\n queryBundleRequest: QueryBundleRequest,\n keyFactory: KeyFactory,\n accessToken: string | undefined,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n): UseInfiniteQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n InfiniteData<AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>>,\n QueryKey,\n string | number | undefined\n> {\n return {\n ...tableQueryUseQueryDefaults,\n queryKey: keyFactory.getEntityTableQueryResultQueryKey(\n queryBundleRequest,\n true,\n ),\n queryFn: context => {\n const offset =\n typeof context.pageParam === 'string'\n ? parseInt(context.pageParam)\n : (context.pageParam ?? 0)\n return SynapseClient.getQueryTableAsyncJobResults(\n {\n ...queryBundleRequest,\n query: {\n ...queryBundleRequest.query,\n offset: offset,\n },\n /**\n * If we're on the first page, send the original partMask.\n * Otherwise, just ask for the queryResults (if they're in the original partMask), as it's the only part that changes between pages.\n *\n * We'll merge the \"aggregation\" parts and the pages of queryResults in the `select` function.\n *\n * We need the queryCount to know when to stop fetching data, so retrieve that in the first bundle.\n */\n partMask:\n offset !== 0\n ? queryBundleRequest.partMask & BUNDLE_MASK_QUERY_RESULTS\n : queryBundleRequest.partMask | BUNDLE_MASK_QUERY_COUNT,\n },\n accessToken,\n setCurrentAsyncStatus,\n )\n },\n select: data => {\n /**\n * Since we only fetch queryResults on 2nd and subsequent pages, we add to all pages the aggregate parts\n * that we only fetched on the first page.\n */\n const firstPage = data?.pages[0]\n if (firstPage.responseBody) {\n for (let i = 0; i < data.pages.length; i++) {\n const page = data.pages[i]\n if (page.responseBody != null) {\n data.pages[i].responseBody = {\n ...firstPage.responseBody,\n // queryResult changes on each page.\n queryResult: page.responseBody.queryResult,\n }\n }\n }\n }\n return data\n },\n getPreviousPageParam: firstPage => {\n if (firstPage.jobState !== 'COMPLETE') {\n return undefined\n }\n const request = firstPage.requestBody\n if (request.query.offset == null || request.query.offset === 0) {\n return undefined\n }\n const pageSize = request.query.limit ?? DEFAULT_PAGE_SIZE\n\n return Math.max(request.query.offset - pageSize, 0)\n },\n initialPageParam: undefined,\n getNextPageParam: (page, allPages) => {\n if (page.jobState !== 'COMPLETE') {\n return undefined\n }\n const request = page.requestBody\n const pageSize = request.query.limit ?? DEFAULT_PAGE_SIZE\n const totalQueryResultCount = allPages[0].responseBody?.queryCount\n if (totalQueryResultCount != null) {\n // We know the total number of results. See if our offset + pageSize is >= the total\n if ((request.query.offset ?? 0) + pageSize >= totalQueryResultCount) {\n return undefined\n }\n }\n return page.responseBody!.queryResult?.queryResults.rows.length ===\n pageSize\n ? (request.query.offset ?? 0) + pageSize\n : undefined\n },\n }\n}\n\n/**\n * Fetches all rows for a table query. Only use this request if you require all rows in a table at once.\n */\nexport function useGetFullTableQueryResults<TData = QueryResultBundle>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<QueryResultBundle, SynapseClientError, TData>\n >,\n forceAnonymous: boolean = false,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery<QueryResultBundle, SynapseClientError, TData>({\n ...tableQueryUseQueryDefaults,\n ...options,\n queryKey: keyFactory.getFullTableQueryResultQueryKey(\n queryBundleRequest,\n forceAnonymous,\n ),\n\n queryFn: () =>\n SynapseClient.getFullQueryTableResults(\n queryBundleRequest,\n forceAnonymous ? undefined : accessToken,\n ),\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useGetQueryResultBundle.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetQueryResultBundle.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport { partitionQueryBundleRequestIntoRowsAndMetadata } from '@/utils/functions/queryUtils'\nimport {\n BUNDLE_MASK_QUERY_COUNT,\n BUNDLE_MASK_QUERY_RESULTS,\n DEFAULT_PAGE_SIZE,\n} from '@/utils/SynapseConstants'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n AsynchronousJobStatus,\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n UseQueryResult,\n} from '@tanstack/react-query'\nimport { merge } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { KeyFactory } from '../KeyFactory'\n\nexport const tableQueryUseQueryDefaults = {\n staleTime: 1000 * 60 * 30, // 30 minutes\n}\n\n/**\n *\n * @param queryBundleRequest\n * @param options\n * @returns\n *\n * @deprecated - use useGetQueryResultBundleWithAsyncStatus. That hook can be renamed and this can be removed\n * when all cases are using useGetQueryResultBundleWithAsyncStatus\n */\nexport default function useGetQueryResultBundle<TData = QueryResultBundle>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<QueryResultBundle, SynapseClientError, TData>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery<QueryResultBundle, SynapseClientError, TData>({\n ...tableQueryUseQueryDefaults,\n ...options,\n queryKey: keyFactory.getEntityTableQueryResultQueryKey(\n queryBundleRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getQueryTableResults(queryBundleRequest, accessToken),\n })\n}\n\nfunction useGetQueryResultBundleWithAsyncStatusInternal<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...tableQueryUseQueryDefaults,\n ...options,\n queryKey: keyFactory.getEntityTableQueryResultWithAsyncStatusQueryKey(\n queryBundleRequest,\n false,\n ),\n\n queryFn: () =>\n SynapseClient.getQueryTableAsyncJobResults(\n queryBundleRequest,\n accessToken,\n setCurrentAsyncStatus,\n ),\n })\n}\n\nexport function useGetQueryRows<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n) {\n const { rowDataRequest } =\n partitionQueryBundleRequestIntoRowsAndMetadata(queryBundleRequest)\n\n const enableQuery = rowDataRequest.partMask > 0 ? options?.enabled : false\n\n return useGetQueryResultBundleWithAsyncStatusInternal<TData>(\n rowDataRequest,\n {\n ...options,\n enabled: enableQuery,\n },\n setCurrentAsyncStatus,\n )\n}\n\nexport function useGetQueryStats<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n) {\n const { queryMetadataRequest } =\n partitionQueryBundleRequestIntoRowsAndMetadata(queryBundleRequest)\n\n const enableQuery =\n queryMetadataRequest.partMask > 0 ? options?.enabled : false\n\n return useGetQueryResultBundleWithAsyncStatusInternal<TData>(\n queryMetadataRequest,\n {\n ...options,\n enabled: enableQuery,\n },\n setCurrentAsyncStatus,\n )\n}\n\n/**\n * The set of properties returned by UseQuery where the results can be safely merged and memoized\n */\ntype UseQueryResultMergeableProperties<TData, TError> = Pick<\n UseQueryResult<TData, TError>,\n | 'data'\n | 'status'\n | 'isError'\n | 'isLoading'\n | 'error'\n | 'isSuccess'\n | 'isPlaceholderData'\n | 'isPending'\n // Note -- this list is not comprehensive. If there is a merge-able property you need, then add it!\n>\n\n/**\n * Returns a memoized object that contains the merge-able properties in the provided UseQueryResult\n * @param useQueryResult\n */\nfunction useGetMemoizedMergeableProperties<TData, TError>(\n useQueryResult: UseQueryResult<TData, TError>,\n): UseQueryResultMergeableProperties<TData, TError> {\n return useMemo(\n () => ({\n data: useQueryResult.data,\n status: useQueryResult.status,\n isError: useQueryResult.isError,\n isLoading: useQueryResult.isLoading,\n error: useQueryResult.error,\n isSuccess: useQueryResult.isSuccess,\n isPlaceholderData: useQueryResult.isPlaceholderData,\n isPending: useQueryResult.isPending,\n }),\n [\n useQueryResult.data,\n useQueryResult.error,\n useQueryResult.isError,\n useQueryResult.isLoading,\n useQueryResult.isPending,\n useQueryResult.isPlaceholderData,\n useQueryResult.isSuccess,\n useQueryResult.status,\n ],\n )\n}\n\nexport function useGetQueryResultBundleWithAsyncStatus<\n TData = AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TData\n >\n >,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n): UseQueryResultMergeableProperties<TData, SynapseClientError> {\n /**\n * Separate the query into two parts\n * - Query result rows, which will change each page\n * - Everything else, which does not change each page\n */\n const rowResult = useGetQueryRows<TData>(\n queryBundleRequest,\n options,\n setCurrentAsyncStatus,\n )\n const statsResult = useGetQueryStats<TData>(\n queryBundleRequest,\n options,\n setCurrentAsyncStatus,\n )\n\n // The rowResult and statsResult objects change every render.\n // Memoize the two query results so that we can safely memoize the result that we return\n const rowResultMergeableProperties =\n useGetMemoizedMergeableProperties(rowResult)\n const statsResultMergeableProperties =\n useGetMemoizedMergeableProperties(statsResult)\n\n const mergedBundle = useMemo(() => {\n // If either query is in error, return the error\n if (rowResultMergeableProperties.status === 'error') {\n return rowResultMergeableProperties\n } else if (statsResultMergeableProperties.status === 'error') {\n return statsResultMergeableProperties\n } else if (rowResultMergeableProperties.isLoading) {\n // if either query is loading, return the loading status\n return rowResultMergeableProperties\n } else if (statsResultMergeableProperties.isLoading) {\n return statsResultMergeableProperties\n } else {\n // Otherwise, both queries are successful or idle, Merge the results into a single object\n if (rowResultMergeableProperties.isPending) {\n // If the row result is pending, apply the stats result last to override the pending status\n return merge(\n {},\n rowResultMergeableProperties,\n statsResultMergeableProperties,\n )\n } else {\n // Otherwise, always apply the rowResult last, since it is likely have been fetched more recently than the stats.\n return merge(\n {},\n statsResultMergeableProperties,\n rowResultMergeableProperties,\n )\n }\n }\n }, [rowResultMergeableProperties, statsResultMergeableProperties])\n\n return mergedBundle\n}\n\nexport function getInfiniteQueryResultBundleOptions(\n queryBundleRequest: QueryBundleRequest,\n keyFactory: KeyFactory,\n accessToken: string | undefined,\n setCurrentAsyncStatus?: (\n status: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n ) => void,\n): UseInfiniteQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n InfiniteData<AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>>,\n QueryKey,\n string | number | undefined\n> {\n return {\n ...tableQueryUseQueryDefaults,\n queryKey: keyFactory.getEntityTableQueryResultQueryKey(\n queryBundleRequest,\n true,\n ),\n queryFn: context => {\n const offset =\n typeof context.pageParam === 'string'\n ? parseInt(context.pageParam)\n : (context.pageParam ?? 0)\n return SynapseClient.getQueryTableAsyncJobResults(\n {\n ...queryBundleRequest,\n query: {\n ...queryBundleRequest.query,\n offset: offset,\n },\n /**\n * If we're on the first page, send the original partMask.\n * Otherwise, just ask for the queryResults (if they're in the original partMask), as it's the only part that changes between pages.\n *\n * We'll merge the \"aggregation\" parts and the pages of queryResults in the `select` function.\n *\n * We need the queryCount to know when to stop fetching data, so retrieve that in the first bundle.\n */\n partMask:\n offset !== 0\n ? queryBundleRequest.partMask & BUNDLE_MASK_QUERY_RESULTS\n : queryBundleRequest.partMask | BUNDLE_MASK_QUERY_COUNT,\n },\n accessToken,\n setCurrentAsyncStatus,\n )\n },\n select: data => {\n /**\n * Since we only fetch queryResults on 2nd and subsequent pages, we add to all pages the aggregate parts\n * that we only fetched on the first page.\n */\n const firstPage = data?.pages[0]\n if (firstPage.responseBody) {\n for (const page of data.pages) {\n if (page.responseBody != null) {\n page.responseBody = {\n ...firstPage.responseBody,\n // queryResult changes on each page.\n queryResult: page.responseBody.queryResult,\n }\n }\n }\n }\n return data\n },\n getPreviousPageParam: firstPage => {\n if (firstPage.jobState !== 'COMPLETE') {\n return undefined\n }\n const request = firstPage.requestBody\n if (request.query.offset == null || request.query.offset === 0) {\n return undefined\n }\n const pageSize = request.query.limit ?? DEFAULT_PAGE_SIZE\n\n return Math.max(request.query.offset - pageSize, 0)\n },\n initialPageParam: undefined,\n getNextPageParam: (page, allPages) => {\n if (page.jobState !== 'COMPLETE') {\n return undefined\n }\n const request = page.requestBody\n const pageSize = request.query.limit ?? DEFAULT_PAGE_SIZE\n const totalQueryResultCount = allPages[0].responseBody?.queryCount\n if (totalQueryResultCount != null) {\n // We know the total number of results. See if our offset + pageSize is >= the total\n if ((request.query.offset ?? 0) + pageSize >= totalQueryResultCount) {\n return undefined\n }\n }\n return page.responseBody!.queryResult?.queryResults.rows.length ===\n pageSize\n ? (request.query.offset ?? 0) + pageSize\n : undefined\n },\n }\n}\n\n/**\n * Fetches all rows for a table query. Only use this request if you require all rows in a table at once.\n */\nexport function useGetFullTableQueryResults<TData = QueryResultBundle>(\n queryBundleRequest: QueryBundleRequest,\n options?: Partial<\n UseQueryOptions<QueryResultBundle, SynapseClientError, TData>\n >,\n forceAnonymous: boolean = false,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery<QueryResultBundle, SynapseClientError, TData>({\n ...tableQueryUseQueryDefaults,\n ...options,\n queryKey: keyFactory.getFullTableQueryResultQueryKey(\n queryBundleRequest,\n forceAnonymous,\n ),\n\n queryFn: () =>\n SynapseClient.getFullQueryTableResults(\n queryBundleRequest,\n forceAnonymous ? undefined : accessToken,\n ),\n })\n}\n"],"mappings":"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"}
@@ -38,8 +38,8 @@ function u(n) {
38
38
  return a({
39
39
  ...n,
40
40
  mutationFn: (t) => e.postReply(t, o),
41
- onSuccess: async (e, t, a) => {
42
- await Promise.all([i.invalidateQueries({ queryKey: c.getAllRepliesQueryKey(e.threadId) }), i.invalidateQueries({ queryKey: c.getSubscribersQueryKey(e.threadId, r.THREAD) })]), n?.onSuccess && await n.onSuccess(e, t, a);
41
+ onSuccess: async (e, t, a, ...o) => {
42
+ await Promise.all([i.invalidateQueries({ queryKey: c.getAllRepliesQueryKey(e.threadId) }), i.invalidateQueries({ queryKey: c.getSubscribersQueryKey(e.threadId, r.THREAD) })]), n?.onSuccess && await n.onSuccess(e, t, a, ...o);
43
43
  }
44
44
  });
45
45
  }
@@ -48,8 +48,8 @@ function d(n) {
48
48
  return a({
49
49
  ...n,
50
50
  mutationFn: (t) => e.putReply(t, i),
51
- onSuccess: async (e, t, i) => {
52
- await r.invalidateQueries({ queryKey: o.getAllRepliesQueryKey(e.threadId) }), n?.onSuccess && await n.onSuccess(e, t, i);
51
+ onSuccess: async (e, t, i, ...a) => {
52
+ await r.invalidateQueries({ queryKey: o.getAllRepliesQueryKey(e.threadId) }), n?.onSuccess && await n.onSuccess(e, t, i, ...a);
53
53
  }
54
54
  });
55
55
  }
@@ -58,8 +58,8 @@ function f(n) {
58
58
  return a({
59
59
  ...n,
60
60
  mutationFn: (t) => e.deleteReply(i, t.replyId),
61
- onSuccess: async (e, t, i) => {
62
- await r.invalidateQueries({ queryKey: o.getAllRepliesQueryKey(t.threadId) }), n?.onSuccess && await n.onSuccess(e, t, i);
61
+ onSuccess: async (e, t, i, ...a) => {
62
+ await r.invalidateQueries({ queryKey: o.getAllRepliesQueryKey(t.threadId) }), n?.onSuccess && await n.onSuccess(e, t, i, ...a);
63
63
  }
64
64
  });
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useReply.js","names":[],"sources":["../../../src/synapse-queries/forum/useReply.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionReply,\n DiscussionFilter,\n DiscussionReplyBundle,\n DiscussionReplyOrder,\n Match,\n PaginatedResults,\n SubscriptionObjectType,\n UpdateDiscussionReply,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetRepliesInfinite<\n TData = InfiniteData<PaginatedResults<DiscussionReplyBundle>>,\n>(\n threadId: string,\n ascending: boolean,\n limit: number,\n sort?: DiscussionReplyOrder,\n filter?: DiscussionFilter,\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getRepliesQueryKey(\n threadId,\n ascending,\n limit,\n sort,\n filter,\n ),\n queryFn: async context => {\n return SynapseClient.getReplies(\n accessToken,\n threadId,\n limit,\n context.pageParam,\n sort,\n ascending,\n filter,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useGetReply(\n reply: DiscussionReplyBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getReplyMessageUrl(\n reply.messageKey,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getReplyQueryKey(\n reply.threadId,\n reply.id,\n reply.messageKey,\n ),\n queryFn,\n })\n}\n\nexport function usePostReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >({\n ...options,\n mutationFn: (request: CreateDiscussionReply) =>\n SynapseClient.postReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n }),\n // Posting a reply will add the subscription, so invalidate query for list of subscribers\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n newReply.threadId,\n SubscriptionObjectType.THREAD,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx)\n }\n },\n })\n}\n\nexport function usePutReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >({\n ...options,\n mutationFn: (request: UpdateDiscussionReply) =>\n SynapseClient.putReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx)\n }\n },\n })\n}\n\nexport function useDeleteReply(\n options?: Partial<UseMutationOptions<void, SynapseClientError, Match>>,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, Match>({\n ...options,\n mutationFn: (match: Match) =>\n SynapseClient.deleteReply(accessToken, match.replyId),\n onSuccess: async (updatedReply, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(variables.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedReply, variables, ctx)\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAyBA,SAAgB,EAGd,GACA,GACA,GACA,GACA,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,mBACnB,GACA,GACA,GACA,GACA,CACF;EACA,SAAS,OAAM,MACN,EAAc,WACnB,GACA,GACA,GACA,EAAQ,WACR,GACA,GACA,CACF;EAEF,kBAAkB,KAAA;EAClB,kBAAkB;CACpB,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB,GAChD,IAAU,YAAY;EAC1B,IAAM,IAAa,MAAM,EAAc,mBACrC,EAAM,YACN,CACF;EASA,QAAO,MARY,MAAM,EAAW,YAAY;GAC9C,QAAQ;GACR,SAAS;IACP,QAAQ;IACR,kCAAkC;IAClC,gBAAgB;GAClB;EACF,CAAC,GACW,KAAK;CACnB;CACA,OAAO,EAAqC;EAC1C,GAAG;EACH,UAAU,EAAW,iBACnB,EAAM,UACN,EAAM,IACN,EAAM,UACR;EACA;CACF,CAAC;AACH;AAEA,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,UAAU,GAAS,CAAW;EAC9C,WAAW,OAAO,GAAU,GAAW,MAAQ;GAa7C,AAZA,MAAM,QAAQ,IAAI,CAChB,EAAY,kBAAkB,EAC5B,UAAU,EAAW,sBAAsB,EAAS,QAAQ,EAC9D,CAAC,GAED,EAAY,kBAAkB,EAC5B,UAAU,EAAW,uBACnB,EAAS,UACT,EAAuB,MACzB,EACF,CAAC,CACH,CAAC,GACG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,CAAG;EAEpD;CACF,CAAC;AACH;AAEA,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,gBAAa,kBAAe,EAAkB;CAEtD,OAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,SAAS,GAAS,CAAW;EAC7C,WAAW,OAAO,GAAU,GAAW,MAAQ;GAK7C,AAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAS,QAAQ,EAC9D,CAAC,GAEG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,CAAG;EAEpD;CACF,CAAC;AACH;AAEA,SAAgB,EACd,GACA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,gBAAa,kBAAe,EAAkB;CAEtD,OAAO,EAA6C;EAClD,GAAG;EACH,aAAa,MACX,EAAc,YAAY,GAAa,EAAM,OAAO;EACtD,WAAW,OAAO,GAAc,GAAW,MAAQ;GAKjD,AAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAU,QAAQ,EAC/D,CAAC,GAEG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAc,GAAW,CAAG;EAExD;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"useReply.js","names":[],"sources":["../../../src/synapse-queries/forum/useReply.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionReply,\n DiscussionFilter,\n DiscussionReplyBundle,\n DiscussionReplyOrder,\n Match,\n PaginatedResults,\n SubscriptionObjectType,\n UpdateDiscussionReply,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetRepliesInfinite<\n TData = InfiniteData<PaginatedResults<DiscussionReplyBundle>>,\n>(\n threadId: string,\n ascending: boolean,\n limit: number,\n sort?: DiscussionReplyOrder,\n filter?: DiscussionFilter,\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n PaginatedResults<DiscussionReplyBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getRepliesQueryKey(\n threadId,\n ascending,\n limit,\n sort,\n filter,\n ),\n queryFn: async context => {\n return SynapseClient.getReplies(\n accessToken,\n threadId,\n limit,\n context.pageParam,\n sort,\n ascending,\n filter,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useGetReply(\n reply: DiscussionReplyBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getReplyMessageUrl(\n reply.messageKey,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getReplyQueryKey(\n reply.threadId,\n reply.id,\n reply.messageKey,\n ),\n queryFn,\n })\n}\n\nexport function usePostReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n CreateDiscussionReply\n >({\n ...options,\n mutationFn: (request: CreateDiscussionReply) =>\n SynapseClient.postReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx, ...rest) => {\n await Promise.all([\n queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n }),\n // Posting a reply will add the subscription, so invalidate query for list of subscribers\n queryClient.invalidateQueries({\n queryKey: keyFactory.getSubscribersQueryKey(\n newReply.threadId,\n SubscriptionObjectType.THREAD,\n ),\n }),\n ])\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx, ...rest)\n }\n },\n })\n}\n\nexport function usePutReply(\n options?: UseMutationOptions<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionReplyBundle,\n SynapseClientError,\n UpdateDiscussionReply\n >({\n ...options,\n mutationFn: (request: UpdateDiscussionReply) =>\n SynapseClient.putReply(request, accessToken),\n onSuccess: async (newReply, variables, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(newReply.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(newReply, variables, ctx, ...rest)\n }\n },\n })\n}\n\nexport function useDeleteReply(\n options?: Partial<UseMutationOptions<void, SynapseClientError, Match>>,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, Match>({\n ...options,\n mutationFn: (match: Match) =>\n SynapseClient.deleteReply(accessToken, match.replyId),\n onSuccess: async (updatedReply, variables, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllRepliesQueryKey(variables.threadId),\n })\n\n if (options?.onSuccess) {\n await options.onSuccess(updatedReply, variables, ctx, ...rest)\n }\n },\n })\n}\n"],"mappings":";;;;;;;AAyBA,SAAgB,EAGd,GACA,GACA,GACA,GACA,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,mBACnB,GACA,GACA,GACA,GACA,CACF;EACA,SAAS,OAAM,MACN,EAAc,WACnB,GACA,GACA,GACA,EAAQ,WACR,GACA,GACA,CACF;EAEF,kBAAkB,KAAA;EAClB,kBAAkB;CACpB,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB,GAChD,IAAU,YAAY;EAC1B,IAAM,IAAa,MAAM,EAAc,mBACrC,EAAM,YACN,CACF;EASA,QAAO,MARY,MAAM,EAAW,YAAY;GAC9C,QAAQ;GACR,SAAS;IACP,QAAQ;IACR,kCAAkC;IAClC,gBAAgB;GAClB;EACF,CAAC,GACW,KAAK;CACnB;CACA,OAAO,EAAqC;EAC1C,GAAG;EACH,UAAU,EAAW,iBACnB,EAAM,UACN,EAAM,IACN,EAAM,UACR;EACA;CACF,CAAC;AACH;AAEA,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,UAAU,GAAS,CAAW;EAC9C,WAAW,OAAO,GAAU,GAAW,GAAK,GAAG,MAAS;GAatD,AAZA,MAAM,QAAQ,IAAI,CAChB,EAAY,kBAAkB,EAC5B,UAAU,EAAW,sBAAsB,EAAS,QAAQ,EAC9D,CAAC,GAED,EAAY,kBAAkB,EAC5B,UAAU,EAAW,uBACnB,EAAS,UACT,EAAuB,MACzB,EACF,CAAC,CACH,CAAC,GACG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,GAAK,GAAG,CAAI;EAE7D;CACF,CAAC;AACH;AAEA,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,gBAAa,kBAAe,EAAkB;CAEtD,OAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,SAAS,GAAS,CAAW;EAC7C,WAAW,OAAO,GAAU,GAAW,GAAK,GAAG,MAAS;GAKtD,AAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAS,QAAQ,EAC9D,CAAC,GAEG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,GAAK,GAAG,CAAI;EAE7D;CACF,CAAC;AACH;AAEA,SAAgB,EACd,GACA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,gBAAa,kBAAe,EAAkB;CAEtD,OAAO,EAA6C;EAClD,GAAG;EACH,aAAa,MACX,EAAc,YAAY,GAAa,EAAM,OAAO;EACtD,WAAW,OAAO,GAAc,GAAW,GAAK,GAAG,MAAS;GAK1D,AAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAU,QAAQ,EAC/D,CAAC,GAEG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAc,GAAW,GAAK,GAAG,CAAI;EAEjE;CACF,CAAC;AACH"}
@@ -57,8 +57,8 @@ function u(n) {
57
57
  return r({
58
58
  ...n,
59
59
  mutationFn: (t) => e.putThreadTitle(o, t),
60
- onSuccess: async (e, t, r) => {
61
- await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(e.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.threadId) }), n?.onSuccess && await n.onSuccess(e, t, r);
60
+ onSuccess: async (e, t, r, ...a) => {
61
+ await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(e.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.threadId) }), n?.onSuccess && await n.onSuccess(e, t, r, ...a);
62
62
  }
63
63
  });
64
64
  }
@@ -67,8 +67,8 @@ function d(n) {
67
67
  return r({
68
68
  ...n,
69
69
  mutationFn: (t) => e.putThreadMessage(o, t),
70
- onSuccess: async (e, t, r) => {
71
- await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.threadId) }), n?.onSuccess && await n.onSuccess(e, t, r);
70
+ onSuccess: async (e, t, r, ...a) => {
71
+ await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.threadId) }), n?.onSuccess && await n.onSuccess(e, t, r, ...a);
72
72
  }
73
73
  });
74
74
  }
@@ -77,8 +77,8 @@ function f(n) {
77
77
  return r({
78
78
  ...n,
79
79
  mutationFn: (t) => e.postThread(o, t),
80
- onSuccess: async (e, t, r) => {
81
- await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(e.forumId) }), n?.onSuccess && await n.onSuccess(e, t, r);
80
+ onSuccess: async (e, t, r, ...a) => {
81
+ await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(e.forumId) }), n?.onSuccess && await n.onSuccess(e, t, r, ...a);
82
82
  }
83
83
  });
84
84
  }
@@ -87,8 +87,8 @@ function p(n) {
87
87
  return r({
88
88
  ...n,
89
89
  mutationFn: (t) => e.deleteThread(o, t.id),
90
- onSuccess: async (e, t, r) => {
91
- await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r);
90
+ onSuccess: async (e, t, r, ...a) => {
91
+ await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r, ...a);
92
92
  }
93
93
  });
94
94
  }
@@ -97,8 +97,8 @@ function m(n) {
97
97
  return r({
98
98
  ...n,
99
99
  mutationFn: (t) => e.restoreThread(o, t.id),
100
- onSuccess: async (e, t, r) => {
101
- await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r);
100
+ onSuccess: async (e, t, r, ...a) => {
101
+ await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r, ...a);
102
102
  }
103
103
  });
104
104
  }
@@ -107,8 +107,8 @@ function h(n) {
107
107
  return r({
108
108
  ...n,
109
109
  mutationFn: (t) => e.pinThread(o, t.id),
110
- onSuccess: async (e, t, r) => {
111
- await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r);
110
+ onSuccess: async (e, t, r, ...a) => {
111
+ await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r, ...a);
112
112
  }
113
113
  });
114
114
  }
@@ -117,8 +117,8 @@ function g(n) {
117
117
  return r({
118
118
  ...n,
119
119
  mutationFn: (t) => e.unPinThread(o, t.id),
120
- onSuccess: async (e, t, r) => {
121
- await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r);
120
+ onSuccess: async (e, t, r, ...a) => {
121
+ await i.invalidateQueries({ queryKey: s.getAllForumThreadsQueryKey(t.forumId) }), await i.invalidateQueries({ queryKey: s.getThreadQueryKey(t.id) }), n?.onSuccess && await n.onSuccess(e, t, r, ...a);
122
122
  }
123
123
  });
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useThread.js","names":[],"sources":["../../../src/synapse-queries/forum/useThread.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionThread,\n DiscussionThreadBundle,\n UpdateThreadMessageRequest,\n UpdateThreadTitleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { useCallback } from 'react'\n\nexport function useGetThread(threadId: string) {\n const { data: threadData, isLoading: isLoadingBundle } =\n useGetThreadBundle(threadId)\n const { data: threadBody, isLoading: isLoadingBody } = useGetThreadBody(\n threadData,\n { enabled: !!threadData },\n )\n const { mutate: pinThread } = usePinThread()\n const { mutate: unPinThread } = useUnPinThread()\n\n const togglePin = useCallback(() => {\n if (threadData) {\n if (threadData?.isPinned) {\n unPinThread(threadData)\n } else {\n pinThread(threadData)\n }\n }\n }, [unPinThread, pinThread, threadData])\n\n const isLoading = isLoadingBody || isLoadingBundle\n return { threadData, threadBody, togglePin, isLoading }\n}\n\nexport function useGetThreadBundle(\n threadId: string,\n options?: Partial<\n UseQueryOptions<DiscussionThreadBundle, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getThreadQueryKey(threadId),\n queryFn: () => SynapseClient.getThread(threadId, accessToken),\n })\n}\n\nexport function useGetThreadForSubmission(submissionId: string | number) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useQuery({\n queryKey: keyFactory.getThreadForSubmissionQueryKey(submissionId),\n queryFn: () =>\n synapseClient.discussionServicesClient.getRepoV1ThreadSubmissionSubmissionId(\n { submissionId: String(submissionId) },\n ),\n })\n}\n\nexport function useGetThreadBody(\n threadData?: DiscussionThreadBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getThreadMessageUrl(\n threadData?.messageKey!,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getThreadBodyQueryKey(\n threadData?.id!,\n threadData?.messageKey!,\n ),\n queryFn,\n })\n}\n\nexport function useUpdateThreadTitle(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadTitleRequest) =>\n SynapseClient.putThreadTitle(accessToken, request),\n onSuccess: async (newThread, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(newThread.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx)\n }\n },\n })\n}\n\nexport function useUpdateThreadMessage(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadMessageRequest) =>\n SynapseClient.putThreadMessage(accessToken, request),\n onSuccess: async (newThread, variables, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx)\n }\n },\n })\n}\n\nexport function useCreateThread(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >({\n ...options,\n mutationFn: (newThread: CreateDiscussionThread) =>\n SynapseClient.postThread(accessToken, newThread),\n onSuccess: async (threadBundle, newThreadRequest, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(threadBundle, newThreadRequest, ctx)\n }\n },\n })\n}\n\nexport function useDeleteThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.deleteThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function useRestoreThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.restoreThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function usePinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.pinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n\nexport function useUnPinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.unPinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx)\n }\n },\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useThread.js","names":[],"sources":["../../../src/synapse-queries/forum/useThread.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport {\n CreateDiscussionThread,\n DiscussionThreadBundle,\n UpdateThreadMessageRequest,\n UpdateThreadTitleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { useCallback } from 'react'\n\nexport function useGetThread(threadId: string) {\n const { data: threadData, isLoading: isLoadingBundle } =\n useGetThreadBundle(threadId)\n const { data: threadBody, isLoading: isLoadingBody } = useGetThreadBody(\n threadData,\n { enabled: !!threadData },\n )\n const { mutate: pinThread } = usePinThread()\n const { mutate: unPinThread } = useUnPinThread()\n\n const togglePin = useCallback(() => {\n if (threadData) {\n if (threadData?.isPinned) {\n unPinThread(threadData)\n } else {\n pinThread(threadData)\n }\n }\n }, [unPinThread, pinThread, threadData])\n\n const isLoading = isLoadingBody || isLoadingBundle\n return { threadData, threadBody, togglePin, isLoading }\n}\n\nexport function useGetThreadBundle(\n threadId: string,\n options?: Partial<\n UseQueryOptions<DiscussionThreadBundle, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getThreadQueryKey(threadId),\n queryFn: () => SynapseClient.getThread(threadId, accessToken),\n })\n}\n\nexport function useGetThreadForSubmission(submissionId: string | number) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useQuery({\n queryKey: keyFactory.getThreadForSubmissionQueryKey(submissionId),\n queryFn: () =>\n synapseClient.discussionServicesClient.getRepoV1ThreadSubmissionSubmissionId(\n { submissionId: String(submissionId) },\n ),\n })\n}\n\nexport function useGetThreadBody(\n threadData?: DiscussionThreadBundle,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n const queryFn = async () => {\n const messageUrl = await SynapseClient.getThreadMessageUrl(\n threadData?.messageKey!,\n accessToken,\n )\n const data = await fetch(messageUrl.messageUrl, {\n method: 'GET',\n headers: {\n Accept: '*/*',\n 'Access-Control-Request-Headers': 'authorization',\n 'Content-Type': 'text/plain; charset=utf-8',\n },\n })\n return data.text()\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getThreadBodyQueryKey(\n threadData?.id!,\n threadData?.messageKey!,\n ),\n queryFn,\n })\n}\n\nexport function useUpdateThreadTitle(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadTitleRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadTitleRequest) =>\n SynapseClient.putThreadTitle(accessToken, request),\n onSuccess: async (newThread, variables, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(newThread.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx, ...rest)\n }\n },\n })\n}\n\nexport function useUpdateThreadMessage(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n UpdateThreadMessageRequest\n >({\n ...options,\n mutationFn: (request: UpdateThreadMessageRequest) =>\n SynapseClient.putThreadMessage(accessToken, request),\n onSuccess: async (newThread, variables, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(variables.threadId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(newThread, variables, ctx, ...rest)\n }\n },\n })\n}\n\nexport function useCreateThread(\n options?: UseMutationOptions<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<\n DiscussionThreadBundle,\n SynapseClientError,\n CreateDiscussionThread\n >({\n ...options,\n mutationFn: (newThread: CreateDiscussionThread) =>\n SynapseClient.postThread(accessToken, newThread),\n onSuccess: async (threadBundle, newThreadRequest, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n if (options?.onSuccess) {\n await options.onSuccess(threadBundle, newThreadRequest, ctx, ...rest)\n }\n },\n })\n}\n\nexport function useDeleteThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.deleteThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx, ...rest)\n }\n },\n })\n}\n\nexport function useRestoreThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.restoreThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx, ...rest)\n }\n },\n })\n}\n\nexport function usePinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.pinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx, ...rest)\n }\n },\n })\n}\n\nexport function useUnPinThread(\n options?: UseMutationOptions<\n void,\n SynapseClientError,\n DiscussionThreadBundle\n >,\n) {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, DiscussionThreadBundle>({\n ...options,\n mutationFn: (threadBundle: DiscussionThreadBundle) =>\n SynapseClient.unPinThread(accessToken, threadBundle.id),\n onSuccess: async (updatedThread, threadBundle, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getAllForumThreadsQueryKey(threadBundle.forumId),\n })\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getThreadQueryKey(threadBundle.id),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedThread, threadBundle, ctx, ...rest)\n }\n },\n })\n}\n"],"mappings":"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"}
@@ -20,7 +20,7 @@ function a(a) {
20
20
  return c(i), new t({
21
21
  replicaId: e,
22
22
  url: i,
23
- ...r || {}
23
+ ...r
24
24
  });
25
25
  },
26
26
  ...a
@@ -1 +1 @@
1
- {"version":3,"file":"useEstablishWebsocketConnection.js","names":[],"sources":["../../../src/synapse-queries/grid/useEstablishWebsocketConnection.ts"],"sourcesContent":["import { useGridPresignedUrl } from '@/synapse-queries/grid/useGridPresignedUrl'\nimport { DataGridWebSocket } from '@/components/DataGrid/DataGridWebSocket'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { GridModel } from '@/components/DataGrid/DataGridTypes'\nimport { CompactCodecPatch } from 'json-joy/lib/json-crdt-patch/codec/compact'\nimport { useCallback, useState } from 'react'\n\ninterface EstablishWebsocketParams {\n replicaId: number\n sessionId: string\n websocketOptions?: {\n onGridReady?: () => void\n onStatusChange?: (open: boolean) => void\n onModelCreate?: (model: GridModel) => void\n onReplicaConnected?: () => void\n onReplicaDisconnected?: () => void\n onSyncStart?: () => void\n onSyncEnd?: () => void\n model?: GridModel | null\n pendingPatches?: CompactCodecPatch[]\n }\n}\n\n/**\n * Hook to establish a DataGrid WebSocket using a presigned URL.\n * Assumes the WebSocket will connect successfully once a presigned URL is retrieved.\n */\nexport function useEstablishWebsocketConnection(\n options?: Partial<\n UseMutationOptions<DataGridWebSocket, unknown, EstablishWebsocketParams>\n >,\n) {\n const { mutateAsync: fetchPresignedUrl } = useGridPresignedUrl()\n const [presignedUrl, setPresignedUrl] = useState<string | null>(null)\n\n const clearPresignedUrl = useCallback(() => {\n setPresignedUrl(null)\n }, [])\n\n const mutation = useMutation({\n retry: 5,\n retryDelay: attempt =>\n Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n mutationFn: async ({\n replicaId,\n sessionId,\n websocketOptions,\n }: EstablishWebsocketParams) => {\n if (!replicaId) throw new Error('replicaId is required')\n const url = await fetchPresignedUrl({ replicaId, sessionId })\n setPresignedUrl(url)\n\n return new DataGridWebSocket({\n replicaId,\n url,\n ...(websocketOptions || {}),\n })\n },\n ...options,\n })\n\n return { ...mutation, presignedUrl, clearPresignedUrl }\n}\n"],"mappings":";;;;;AA2BA,SAAgB,EACd,GAGA;CACA,IAAM,EAAE,aAAa,MAAsB,EAAoB,GACzD,CAAC,GAAc,KAAmB,EAAwB,IAAI,GAE9D,IAAoB,QAAkB;EAC1C,EAAgB,IAAI;CACtB,GAAG,CAAC,CAAC;CAwBL,OAAO;EAAE,GAtBQ,EAAY;GAC3B,OAAO;GACP,aAAY,MACV,KAAK,IAAI,IAAU,IAAI,KAAK,IAAU,MAAO,KAAM,KAAK,GAAI;GAC9D,YAAY,OAAO,EACjB,cACA,cACA,0BAC8B;IAC9B,IAAI,CAAC,GAAW,MAAU,MAAM,uBAAuB;IACvD,IAAM,IAAM,MAAM,EAAkB;KAAE;KAAW;IAAU,CAAC;IAG5D,OAFA,EAAgB,CAAG,GAEZ,IAAI,EAAkB;KAC3B;KACA;KACA,GAAI,KAAoB,CAAC;IAC3B,CAAC;GACH;GACA,GAAG;EACL,CAEY;EAAU;EAAc;CAAkB;AACxD"}
1
+ {"version":3,"file":"useEstablishWebsocketConnection.js","names":[],"sources":["../../../src/synapse-queries/grid/useEstablishWebsocketConnection.ts"],"sourcesContent":["import { useGridPresignedUrl } from '@/synapse-queries/grid/useGridPresignedUrl'\nimport { DataGridWebSocket } from '@/components/DataGrid/DataGridWebSocket'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { GridModel } from '@/components/DataGrid/DataGridTypes'\nimport { CompactCodecPatch } from 'json-joy/lib/json-crdt-patch/codec/compact'\nimport { useCallback, useState } from 'react'\n\ninterface EstablishWebsocketParams {\n replicaId: number\n sessionId: string\n websocketOptions?: {\n onGridReady?: () => void\n onStatusChange?: (open: boolean) => void\n onModelCreate?: (model: GridModel) => void\n onReplicaConnected?: () => void\n onReplicaDisconnected?: () => void\n onSyncStart?: () => void\n onSyncEnd?: () => void\n model?: GridModel | null\n pendingPatches?: CompactCodecPatch[]\n }\n}\n\n/**\n * Hook to establish a DataGrid WebSocket using a presigned URL.\n * Assumes the WebSocket will connect successfully once a presigned URL is retrieved.\n */\nexport function useEstablishWebsocketConnection(\n options?: Partial<\n UseMutationOptions<DataGridWebSocket, unknown, EstablishWebsocketParams>\n >,\n) {\n const { mutateAsync: fetchPresignedUrl } = useGridPresignedUrl()\n const [presignedUrl, setPresignedUrl] = useState<string | null>(null)\n\n const clearPresignedUrl = useCallback(() => {\n setPresignedUrl(null)\n }, [])\n\n const mutation = useMutation({\n retry: 5,\n retryDelay: attempt =>\n Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n mutationFn: async ({\n replicaId,\n sessionId,\n websocketOptions,\n }: EstablishWebsocketParams) => {\n if (!replicaId) throw new Error('replicaId is required')\n const url = await fetchPresignedUrl({ replicaId, sessionId })\n setPresignedUrl(url)\n\n return new DataGridWebSocket({\n replicaId,\n url,\n ...websocketOptions,\n })\n },\n ...options,\n })\n\n return { ...mutation, presignedUrl, clearPresignedUrl }\n}\n"],"mappings":";;;;;AA2BA,SAAgB,EACd,GAGA;CACA,IAAM,EAAE,aAAa,MAAsB,EAAoB,GACzD,CAAC,GAAc,KAAmB,EAAwB,IAAI,GAE9D,IAAoB,QAAkB;EAC1C,EAAgB,IAAI;CACtB,GAAG,CAAC,CAAC;CAwBL,OAAO;EAAE,GAtBQ,EAAY;GAC3B,OAAO;GACP,aAAY,MACV,KAAK,IAAI,IAAU,IAAI,KAAK,IAAU,MAAO,KAAM,KAAK,GAAI;GAC9D,YAAY,OAAO,EACjB,cACA,cACA,0BAC8B;IAC9B,IAAI,CAAC,GAAW,MAAU,MAAM,uBAAuB;IACvD,IAAM,IAAM,MAAM,EAAkB;KAAE;KAAW;IAAU,CAAC;IAG5D,OAFA,EAAgB,CAAG,GAEZ,IAAI,EAAkB;KAC3B;KACA;KACA,GAAG;IACL,CAAC;GACH;GACA,GAAG;EACL,CAEY;EAAU;EAAc;CAAkB;AACxD"}
@@ -11,8 +11,8 @@ function c(t) {
11
11
  sessionId: e,
12
12
  createReplicaRequest: { gridSessionId: e }
13
13
  }),
14
- onSuccess: async (e, i, a) => {
15
- await n.invalidateQueries({ queryKey: r.getGridSessionListKey() }), t?.onSuccess && await t.onSuccess(e, i, a);
14
+ onSuccess: async (e, i, a, ...o) => {
15
+ await n.invalidateQueries({ queryKey: r.getGridSessionListKey() }), t?.onSuccess && await t.onSuccess(e, i, a, ...o);
16
16
  }
17
17
  });
18
18
  }
@@ -21,8 +21,8 @@ function l(t) {
21
21
  return a({
22
22
  ...t,
23
23
  mutationFn: (e) => i.gridServicesClient.deleteRepoV1GridSessionSessionId({ sessionId: e }),
24
- onSuccess: async (e, i, a) => {
25
- await n.invalidateQueries({ queryKey: r.getGridSessionListKey() }), t?.onSuccess && await t.onSuccess(e, i, a);
24
+ onSuccess: async (e, i, a, ...o) => {
25
+ await n.invalidateQueries({ queryKey: r.getGridSessionListKey() }), t?.onSuccess && await t.onSuccess(e, i, a, ...o);
26
26
  }
27
27
  });
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useGridSession.js","names":[],"sources":["../../../src/synapse-queries/grid/useGridSession.ts"],"sourcesContent":["import { KeyFactory } from '@/synapse-queries/index'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport startGridSession from '@/utils/functions/GridApiUtils'\nimport {\n CreateGridRequest,\n CreateGridResponse,\n CreateReplicaResponse,\n GridReplicaInfo,\n GridSession,\n ListGridSessionsRequest,\n ListGridSessionsResponse,\n PostRepoV1GridSessionSessionIdReplicaRequest,\n SynapseClient,\n SynchronizeGridRequest,\n SynchronizeGridResponse,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n InfiniteData,\n QueryKey,\n queryOptions,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\n\nexport function useCreateGridReplica(\n options?: Partial<\n UseMutationOptions<CreateReplicaResponse, SynapseClientError, string>\n >,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<CreateReplicaResponse, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplica({\n sessionId,\n createReplicaRequest: {\n gridSessionId: sessionId,\n },\n } as PostRepoV1GridSessionSessionIdReplicaRequest),\n onSuccess: async (replicaId, sessionId, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(replicaId, sessionId, ctx)\n }\n },\n })\n}\n\nexport function useDeleteGridSession(\n options?: Partial<UseMutationOptions<void, SynapseClientError, string>>,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.deleteRepoV1GridSessionSessionId({\n sessionId,\n }),\n onSuccess: async (updatedClient, sessionId, ctx) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedClient, sessionId, ctx)\n }\n },\n })\n}\n\n/**\n * Get the queryOptions to request list of Grid sessions. For an infinite query, use `useGetGridSessionsInfinite`\n * @param request\n * @param context\n */\nexport const getGridSessionsQuery = (\n request: ListGridSessionsRequest,\n context: {\n keyFactory: KeyFactory\n synapseClient: SynapseClient\n },\n) =>\n queryOptions({\n queryKey: context.keyFactory.getGridSessionListKey(request),\n queryFn: () =>\n context.synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: request,\n }),\n })\n\nexport function useGetGridSessionsInfinite<\n TData = InfiniteData<ListGridSessionsResponse>,\n>(\n request: Omit<ListGridSessionsRequest, 'nextPageToken'>,\n options?: Partial<\n UseInfiniteQueryOptions<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >\n >,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useInfiniteQuery<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getGridSessionListKey(request),\n queryFn: async context =>\n await synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: {\n ...request,\n nextPageToken: context.pageParam,\n },\n }),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n\nexport function getGridSessionQuery(\n sessionId: string,\n context: SynapseQueriesContext,\n) {\n const { keyFactory, synapseClient } = context\n return queryOptions<GridSession, SynapseClientError>({\n queryKey: keyFactory.getGridSessionKey(sessionId),\n queryFn: () =>\n synapseClient.gridServicesClient.getRepoV1GridSessionSessionId({\n sessionId: sessionId,\n }),\n })\n}\n\nexport function useGetGridSession(\n sessionId: string,\n options?: Partial<UseQueryOptions<GridSession, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery<GridSession, SynapseClientError>({\n ...options,\n ...getGridSessionQuery(sessionId, { ...synapseContext, queryClient }),\n })\n}\n\nexport const useCreateGridSession = (\n options?: Partial<\n UseMutationOptions<\n CreateGridResponse,\n SynapseClientError,\n CreateGridRequest\n >\n >,\n) => {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<CreateGridResponse, SynapseClientError, CreateGridRequest>(\n {\n ...options,\n mutationFn: async (request: CreateGridRequest) =>\n await startGridSession(synapseClient, request),\n },\n )\n}\n\n/**\n * Synchronization is a two-phase process that ensures consistency between the user's local\n * changes and external changes made to the source:\n *\n * Phase 1: Schema Synchronization\n * - Synchronizes column definitions between the grid copy and source\n * - Resolves schema conflicts\n *\n * Phase 2: Row Synchronization\n * - Synchronizes row data using the final schema from Phase 1\n * - Merges cell-level changes when rows conflict\n * - Pushes user changes from copy to source\n * - Pulls external changes from source to copy\n *\n * @see {@link https://rest-docs.synapse.org/rest/POST/grid/synchronize/async/start.html}\n * @see {@link https://rest-docs.synapse.org/rest/GET/grid/synchronize/async/get/asyncToken.html}\n */\nexport function useSynchronizeGridSession(\n options?: Omit<\n UseMutationOptions<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >,\n 'mutationFn'\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >({\n ...options,\n mutationFn: async request => {\n const synchronizeGridRequest: SynchronizeGridRequest = {\n ...request,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.SynchronizeGridRequest',\n }\n\n // Start the async export job\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridSynchronizeAsyncStart(\n { synchronizeGridRequest },\n )\n\n // Poll for the async job\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return asyncJobResponse.responseBody as SynchronizeGridResponse\n },\n })\n}\n\n/**\n * Fetches all replicas in a grid session by following pagination tokens.\n * Refetch this query on `replica-connected` or `replica-disconnected` WebSocket events\n * to keep the replica list current.\n */\nexport function useListGridReplicas(\n sessionId: string | undefined,\n options?: Partial<UseQueryOptions<GridReplicaInfo[], SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useQuery<GridReplicaInfo[], SynapseClientError>({\n ...options,\n queryKey: keyFactory.getGridReplicaListKey(sessionId!),\n enabled: !!sessionId && (options?.enabled ?? true),\n queryFn: async () => {\n const replicas: GridReplicaInfo[] = []\n let nextPageToken: string | undefined = undefined\n do {\n const response =\n await synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplicaList(\n {\n sessionId: sessionId!,\n listGridReplicasRequest: {\n gridSessionId: sessionId!,\n nextPageToken,\n },\n },\n )\n replicas.push(...(response.page ?? []))\n nextPageToken = response.nextPageToken\n } while (nextPageToken)\n return replicas\n },\n })\n}\n"],"mappings":";;;;;AAgCA,SAAgB,EACd,GAGA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,eAAY,qBAAkB,EAAkB;CAExD,OAAO,EAA+D;EACpE,GAAG;EACH,aAAa,MACX,EAAc,mBAAmB,sCAAsC;GACrE;GACA,sBAAsB,EACpB,eAAe,EACjB;EACF,CAAiD;EACnD,WAAW,OAAO,GAAW,GAAW,MAAQ;GAI9C,AAHA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAC7C,CAAC,GACG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAW,GAAW,CAAG;EAErD;CACF,CAAC;AACH;AAEA,SAAgB,EACd,GACA;CACA,IAAM,IAAc,EAAe,GAC7B,EAAE,eAAY,qBAAkB,EAAkB;CAExD,OAAO,EAA8C;EACnD,GAAG;EACH,aAAa,MACX,EAAc,mBAAmB,iCAAiC,EAChE,aACF,CAAC;EACH,WAAW,OAAO,GAAe,GAAW,MAAQ;GAIlD,AAHA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAC7C,CAAC,GACG,GAAS,aACX,MAAM,EAAQ,UAAU,GAAe,GAAW,CAAG;EAEzD;CACF,CAAC;AACH;AAOA,IAAa,KACX,GACA,MAKA,EAAa;CACX,UAAU,EAAQ,WAAW,sBAAsB,CAAO;CAC1D,eACE,EAAQ,cAAc,mBAAmB,0BAA0B,EACjE,yBAAyB,EAC3B,CAAC;AACL,CAAC;AAEH,SAAgB,EAGd,GACA,GASA;CACA,IAAM,EAAE,eAAY,qBAAkB,EAAkB;CAExD,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,sBAAsB,CAAO;EAClD,SAAS,OAAM,MACb,MAAM,EAAc,mBAAmB,0BAA0B,EAC/D,yBAAyB;GACvB,GAAG;GACH,eAAe,EAAQ;EACzB,EACF,CAAC;EACH,kBAAkB,KAAA;EAClB,mBAAkB,MAAQ,EAAK;CACjC,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,eAAY,qBAAkB;CACtC,OAAO,EAA8C;EACnD,UAAU,EAAW,kBAAkB,CAAS;EAChD,eACE,EAAc,mBAAmB,8BAA8B,EAClD,aACb,CAAC;CACL,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAiB,EAAkB,GACnC,IAAc,EAAe;CAEnC,OAAO,EAA0C;EAC/C,GAAG;EACH,GAAG,EAAoB,GAAW;GAAE,GAAG;GAAgB;EAAY,CAAC;CACtE,CAAC;AACH;AAEA,IAAa,KACX,MAOG;CACH,IAAM,EAAE,qBAAkB,EAAkB;CAE5C,OAAO,EACL;EACE,GAAG;EACH,YAAY,OAAO,MACjB,MAAM,EAAiB,GAAe,CAAO;CACjD,CACF;AACF;AAmBA,SAAgB,EACd,GAQA;CACA,IAAM,EAAE,qBAAkB,EAAkB;CAE5C,OAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAAW;GAC3B,IAAM,IAAiD;IACrD,GAAG;IACH,cACE;GACJ,GAGM,IACJ,MAAM,EAAc,mBAAmB,oCACrC,EAAE,0BAAuB,CAC3B;GAWF,QAAO,MARwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,MACpB,CACF,CACF,GAEwB;EAC1B;CACF,CAAC;AACH;AAOA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,eAAY,qBAAkB,EAAkB;CAExD,OAAO,EAAgD;EACrD,GAAG;EACH,UAAU,EAAW,sBAAsB,CAAU;EACrD,SAAS,CAAC,CAAC,MAAc,GAAS,WAAW;EAC7C,SAAS,YAAY;GACnB,IAAM,IAA8B,CAAC,GACjC;GACJ,GAAG;IACD,IAAM,IACJ,MAAM,EAAc,mBAAmB,0CACrC;KACa;KACX,yBAAyB;MACvB,eAAe;MACf;KACF;IACF,CACF;IAEF,AADA,EAAS,KAAK,GAAI,EAAS,QAAQ,CAAC,CAAE,GACtC,IAAgB,EAAS;GAC3B,SAAS;GACT,OAAO;EACT;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"useGridSession.js","names":[],"sources":["../../../src/synapse-queries/grid/useGridSession.ts"],"sourcesContent":["import { KeyFactory } from '@/synapse-queries/index'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport startGridSession from '@/utils/functions/GridApiUtils'\nimport {\n CreateGridRequest,\n CreateGridResponse,\n CreateReplicaResponse,\n GridReplicaInfo,\n GridSession,\n ListGridSessionsRequest,\n ListGridSessionsResponse,\n PostRepoV1GridSessionSessionIdReplicaRequest,\n SynapseClient,\n SynchronizeGridRequest,\n SynchronizeGridResponse,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n InfiniteData,\n QueryKey,\n queryOptions,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useMutation,\n UseMutationOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { SynapseQueriesContext } from '../types'\n\nexport function useCreateGridReplica(\n options?: Partial<\n UseMutationOptions<CreateReplicaResponse, SynapseClientError, string>\n >,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<CreateReplicaResponse, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplica({\n sessionId,\n createReplicaRequest: {\n gridSessionId: sessionId,\n },\n } as PostRepoV1GridSessionSessionIdReplicaRequest),\n onSuccess: async (replicaId, sessionId, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(replicaId, sessionId, ctx, ...rest)\n }\n },\n })\n}\n\nexport function useDeleteGridSession(\n options?: Partial<UseMutationOptions<void, SynapseClientError, string>>,\n) {\n const queryClient = useQueryClient()\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useMutation<void, SynapseClientError, string>({\n ...options,\n mutationFn: (sessionId: string) =>\n synapseClient.gridServicesClient.deleteRepoV1GridSessionSessionId({\n sessionId,\n }),\n onSuccess: async (updatedClient, sessionId, ctx, ...rest) => {\n await queryClient.invalidateQueries({\n queryKey: keyFactory.getGridSessionListKey(),\n })\n if (options?.onSuccess) {\n await options.onSuccess(updatedClient, sessionId, ctx, ...rest)\n }\n },\n })\n}\n\n/**\n * Get the queryOptions to request list of Grid sessions. For an infinite query, use `useGetGridSessionsInfinite`\n * @param request\n * @param context\n */\nexport const getGridSessionsQuery = (\n request: ListGridSessionsRequest,\n context: {\n keyFactory: KeyFactory\n synapseClient: SynapseClient\n },\n) =>\n queryOptions({\n queryKey: context.keyFactory.getGridSessionListKey(request),\n queryFn: () =>\n context.synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: request,\n }),\n })\n\nexport function useGetGridSessionsInfinite<\n TData = InfiniteData<ListGridSessionsResponse>,\n>(\n request: Omit<ListGridSessionsRequest, 'nextPageToken'>,\n options?: Partial<\n UseInfiniteQueryOptions<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >\n >,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useInfiniteQuery<\n ListGridSessionsResponse,\n SynapseClientError,\n TData,\n QueryKey,\n ListGridSessionsResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getGridSessionListKey(request),\n queryFn: async context =>\n await synapseClient.gridServicesClient.postRepoV1GridSessionList({\n listGridSessionsRequest: {\n ...request,\n nextPageToken: context.pageParam,\n },\n }),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n\nexport function getGridSessionQuery(\n sessionId: string,\n context: SynapseQueriesContext,\n) {\n const { keyFactory, synapseClient } = context\n return queryOptions<GridSession, SynapseClientError>({\n queryKey: keyFactory.getGridSessionKey(sessionId),\n queryFn: () =>\n synapseClient.gridServicesClient.getRepoV1GridSessionSessionId({\n sessionId: sessionId,\n }),\n })\n}\n\nexport function useGetGridSession(\n sessionId: string,\n options?: Partial<UseQueryOptions<GridSession, SynapseClientError>>,\n) {\n const synapseContext = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useQuery<GridSession, SynapseClientError>({\n ...options,\n ...getGridSessionQuery(sessionId, { ...synapseContext, queryClient }),\n })\n}\n\nexport const useCreateGridSession = (\n options?: Partial<\n UseMutationOptions<\n CreateGridResponse,\n SynapseClientError,\n CreateGridRequest\n >\n >,\n) => {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<CreateGridResponse, SynapseClientError, CreateGridRequest>(\n {\n ...options,\n mutationFn: async (request: CreateGridRequest) =>\n await startGridSession(synapseClient, request),\n },\n )\n}\n\n/**\n * Synchronization is a two-phase process that ensures consistency between the user's local\n * changes and external changes made to the source:\n *\n * Phase 1: Schema Synchronization\n * - Synchronizes column definitions between the grid copy and source\n * - Resolves schema conflicts\n *\n * Phase 2: Row Synchronization\n * - Synchronizes row data using the final schema from Phase 1\n * - Merges cell-level changes when rows conflict\n * - Pushes user changes from copy to source\n * - Pulls external changes from source to copy\n *\n * @see {@link https://rest-docs.synapse.org/rest/POST/grid/synchronize/async/start.html}\n * @see {@link https://rest-docs.synapse.org/rest/GET/grid/synchronize/async/get/asyncToken.html}\n */\nexport function useSynchronizeGridSession(\n options?: Omit<\n UseMutationOptions<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >,\n 'mutationFn'\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n SynchronizeGridResponse,\n SynapseClientError,\n Omit<SynchronizeGridRequest, 'concreteType'>\n >({\n ...options,\n mutationFn: async request => {\n const synchronizeGridRequest: SynchronizeGridRequest = {\n ...request,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.SynchronizeGridRequest',\n }\n\n // Start the async export job\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridSynchronizeAsyncStart(\n { synchronizeGridRequest },\n )\n\n // Poll for the async job\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n\n return asyncJobResponse.responseBody as SynchronizeGridResponse\n },\n })\n}\n\n/**\n * Fetches all replicas in a grid session by following pagination tokens.\n * Refetch this query on `replica-connected` or `replica-disconnected` WebSocket events\n * to keep the replica list current.\n */\nexport function useListGridReplicas(\n sessionId: string | undefined,\n options?: Partial<UseQueryOptions<GridReplicaInfo[], SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n\n return useQuery<GridReplicaInfo[], SynapseClientError>({\n ...options,\n queryKey: keyFactory.getGridReplicaListKey(sessionId!),\n enabled: !!sessionId && (options?.enabled ?? true),\n queryFn: async () => {\n const replicas: GridReplicaInfo[] = []\n let nextPageToken: string | undefined = undefined\n do {\n const response =\n await synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdReplicaList(\n {\n sessionId: sessionId!,\n listGridReplicasRequest: {\n gridSessionId: sessionId!,\n nextPageToken,\n },\n },\n )\n replicas.push(...(response.page ?? []))\n nextPageToken = response.nextPageToken\n } while (nextPageToken)\n return replicas\n },\n })\n}\n"],"mappings":"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"}