synapse-react-client 4.0.19 → 4.0.20

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 (1553) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +1 -1
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  5. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  6. package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
  7. package/dist/assets/GoogleIcon.js.map +1 -1
  8. package/dist/assets/GoogleIcon24.js.map +1 -1
  9. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  10. package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
  11. package/dist/assets/homepage/aacr.js.map +1 -1
  12. package/dist/assets/homepage/cri.js.map +1 -1
  13. package/dist/assets/homepage/ctf.js.map +1 -1
  14. package/dist/assets/homepage/egress.js.map +1 -1
  15. package/dist/assets/homepage/facebook.js.map +1 -1
  16. package/dist/assets/homepage/fisma.js.map +1 -1
  17. package/dist/assets/homepage/gff.js.map +1 -1
  18. package/dist/assets/homepage/github.js.map +1 -1
  19. package/dist/assets/homepage/gray.js.map +1 -1
  20. package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
  21. package/dist/assets/homepage/instagram.js.map +1 -1
  22. package/dist/assets/homepage/linkedin.js.map +1 -1
  23. package/dist/assets/homepage/ml-commons.js.map +1 -1
  24. package/dist/assets/homepage/nih-aging.js.map +1 -1
  25. package/dist/assets/homepage/nih-heart.js.map +1 -1
  26. package/dist/assets/homepage/nih-nci.js.map +1 -1
  27. package/dist/assets/homepage/nih-nimh.js.map +1 -1
  28. package/dist/assets/homepage/ntap.js.map +1 -1
  29. package/dist/assets/homepage/plan-item.js.map +1 -1
  30. package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
  31. package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
  32. package/dist/assets/homepage/python.js.map +1 -1
  33. package/dist/assets/homepage/r.js.map +1 -1
  34. package/dist/assets/homepage/research-credit-feature.js.map +1 -1
  35. package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
  36. package/dist/assets/homepage/sloan.js.map +1 -1
  37. package/dist/assets/homepage/twitter.js.map +1 -1
  38. package/dist/assets/homepage/users.js.map +1 -1
  39. package/dist/assets/homepage/youtube.js.map +1 -1
  40. package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
  41. package/dist/assets/icons/AccessPending.js.map +1 -1
  42. package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
  43. package/dist/assets/icons/AddAd.js.map +1 -1
  44. package/dist/assets/icons/AddToList.js.map +1 -1
  45. package/dist/assets/icons/Alert.js.map +1 -1
  46. package/dist/assets/icons/Arrow.js.map +1 -1
  47. package/dist/assets/icons/AwardScroll.js.map +1 -1
  48. package/dist/assets/icons/Baseline.js.map +1 -1
  49. package/dist/assets/icons/Cavatica.js.map +1 -1
  50. package/dist/assets/icons/CertifiedUser.js.map +1 -1
  51. package/dist/assets/icons/Challenge.js.map +1 -1
  52. package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
  53. package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
  54. package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
  55. package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
  56. package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
  57. package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
  58. package/dist/assets/icons/ClappingHands.js.map +1 -1
  59. package/dist/assets/icons/CloudWarning.js.map +1 -1
  60. package/dist/assets/icons/CommunicateFindings.js.map +1 -1
  61. package/dist/assets/icons/CreateVersion.js.map +1 -1
  62. package/dist/assets/icons/DNA_Two.js.map +1 -1
  63. package/dist/assets/icons/Data2.js.map +1 -1
  64. package/dist/assets/icons/DoubleQuotes.js.map +1 -1
  65. package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
  66. package/dist/assets/icons/FileWithShield.js.map +1 -1
  67. package/dist/assets/icons/FileWithShield2.js.map +1 -1
  68. package/dist/assets/icons/FrontHand.js.map +1 -1
  69. package/dist/assets/icons/HandWithMoney.js.map +1 -1
  70. package/dist/assets/icons/IconCopy.js.map +1 -1
  71. package/dist/assets/icons/IconMinus.js.map +1 -1
  72. package/dist/assets/icons/IconPlus.js.map +1 -1
  73. package/dist/assets/icons/Java.js.map +1 -1
  74. package/dist/assets/icons/MintDoi.js.map +1 -1
  75. package/dist/assets/icons/MultiFile.js.map +1 -1
  76. package/dist/assets/icons/MultiFile2.js.map +1 -1
  77. package/dist/assets/icons/NoData.js.map +1 -1
  78. package/dist/assets/icons/NoSearchResults.js.map +1 -1
  79. package/dist/assets/icons/ORCIDIcon.js.map +1 -1
  80. package/dist/assets/icons/OpenBook.js.map +1 -1
  81. package/dist/assets/icons/Podium.js.map +1 -1
  82. package/dist/assets/icons/Python.js.map +1 -1
  83. package/dist/assets/icons/QueryStructuredData.js.map +1 -1
  84. package/dist/assets/icons/RLogo.js.map +1 -1
  85. package/dist/assets/icons/RecordProvenance.js.map +1 -1
  86. package/dist/assets/icons/RosetteRibbon.js.map +1 -1
  87. package/dist/assets/icons/SageFullLogo.js.map +1 -1
  88. package/dist/assets/icons/SearchImage.js.map +1 -1
  89. package/dist/assets/icons/ShareYourResearch.js.map +1 -1
  90. package/dist/assets/icons/Sort.js.map +1 -1
  91. package/dist/assets/icons/StarTrophy.js.map +1 -1
  92. package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
  93. package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
  94. package/dist/assets/icons/SynapseLogoName.js.map +1 -1
  95. package/dist/assets/icons/TasksIcon.js.map +1 -1
  96. package/dist/assets/icons/Terminal.js.map +1 -1
  97. package/dist/assets/icons/ThreeStars.js.map +1 -1
  98. package/dist/assets/icons/UnpackagableFile.js.map +1 -1
  99. package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
  100. package/dist/assets/icons/ValidatedProfile.js.map +1 -1
  101. package/dist/assets/icons/account-certified.js.map +1 -1
  102. package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
  103. package/dist/assets/icons/account-validated.js.map +1 -1
  104. package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
  105. package/dist/assets/icons/chart2.js.map +1 -1
  106. package/dist/assets/icons/columns.js.map +1 -1
  107. package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
  108. package/dist/assets/icons/computationalTool.js.map +1 -1
  109. package/dist/assets/icons/dataReuse.js.map +1 -1
  110. package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
  111. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  112. package/dist/assets/icons/error_page/maintenance.js.map +1 -1
  113. package/dist/assets/icons/error_page/no-access.js.map +1 -1
  114. package/dist/assets/icons/error_page/unavailable.js.map +1 -1
  115. package/dist/assets/icons/file.js.map +1 -1
  116. package/dist/assets/icons/inSilicoModel.js.map +1 -1
  117. package/dist/assets/icons/institution.js.map +1 -1
  118. package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
  119. package/dist/assets/icons/modelSystem.js.map +1 -1
  120. package/dist/assets/icons/mouse.js.map +1 -1
  121. package/dist/assets/icons/organizations.js.map +1 -1
  122. package/dist/assets/icons/person.js.map +1 -1
  123. package/dist/assets/icons/spatialProfiling.js.map +1 -1
  124. package/dist/assets/icons/standardDataModel.js.map +1 -1
  125. package/dist/assets/icons/study-active.js.map +1 -1
  126. package/dist/assets/icons/study-complete.js.map +1 -1
  127. package/dist/assets/icons/subscribe_plus.js.map +1 -1
  128. package/dist/assets/icons/synapse-logo.js.map +1 -1
  129. package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
  130. package/dist/assets/icons/translational.js.map +1 -1
  131. package/dist/assets/icons/tree_horizontal.js.map +1 -1
  132. package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
  133. package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
  134. package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
  135. package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
  136. package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
  137. package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
  138. package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
  139. package/dist/assets/illustrations/docker_illustration.js.map +1 -1
  140. package/dist/assets/illustrations/donation_illustration.js.map +1 -1
  141. package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
  142. package/dist/assets/illustrations/files_illustration.js.map +1 -1
  143. package/dist/assets/illustrations/following_illustration.js.map +1 -1
  144. package/dist/assets/illustrations/index.js.map +1 -1
  145. package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
  146. package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
  147. package/dist/assets/illustrations/projects_illustration.js.map +1 -1
  148. package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
  149. package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
  150. package/dist/assets/illustrations/tables_illustration.js.map +1 -1
  151. package/dist/assets/illustrations/teams_illustration.js.map +1 -1
  152. package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
  153. package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
  154. package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
  155. package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
  156. package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
  157. package/dist/assets/logos/other/pluto-logo.js.map +1 -1
  158. package/dist/assets/logos/other/terra-logo.js.map +1 -1
  159. package/dist/assets/mui_components/AccessManagement.js.map +1 -1
  160. package/dist/assets/mui_components/AccountCertified.js.map +1 -1
  161. package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
  162. package/dist/assets/mui_components/AccountValidated.js.map +1 -1
  163. package/dist/assets/mui_components/ActionKey.js.map +1 -1
  164. package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
  165. package/dist/assets/mui_components/Chromatin.js.map +1 -1
  166. package/dist/assets/mui_components/Clinical.js.map +1 -1
  167. package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
  168. package/dist/assets/mui_components/Data.js.map +1 -1
  169. package/dist/assets/mui_components/DataLocked.js.map +1 -1
  170. package/dist/assets/mui_components/DataReuse.js.map +1 -1
  171. package/dist/assets/mui_components/Dataset.js.map +1 -1
  172. package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
  173. package/dist/assets/mui_components/Docker.js.map +1 -1
  174. package/dist/assets/mui_components/GeneExpression.js.map +1 -1
  175. package/dist/assets/mui_components/GeneVariants.js.map +1 -1
  176. package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
  177. package/dist/assets/mui_components/Imaging.js.map +1 -1
  178. package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
  179. package/dist/assets/mui_components/Kinomics.js.map +1 -1
  180. package/dist/assets/mui_components/LineGraph.js.map +1 -1
  181. package/dist/assets/mui_components/ModelSystem.js.map +1 -1
  182. package/dist/assets/mui_components/Other.js.map +1 -1
  183. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  184. package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
  185. package/dist/assets/mui_components/Proteomics.js.map +1 -1
  186. package/dist/assets/mui_components/Rat.js.map +1 -1
  187. package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
  188. package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
  189. package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
  190. package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
  191. package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
  192. package/dist/assets/sustainability/dialPosition1.js.map +1 -1
  193. package/dist/assets/sustainability/dialPosition2.js.map +1 -1
  194. package/dist/assets/sustainability/dialPosition3.js.map +1 -1
  195. package/dist/assets/sustainability/dialPosition4.js.map +1 -1
  196. package/dist/assets/themed_icons/Active.js.map +1 -1
  197. package/dist/assets/themed_icons/Chart.js.map +1 -1
  198. package/dist/assets/themed_icons/Close.js.map +1 -1
  199. package/dist/assets/themed_icons/Collapse.js.map +1 -1
  200. package/dist/assets/themed_icons/Columns.js.map +1 -1
  201. package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
  202. package/dist/assets/themed_icons/Database.js.map +1 -1
  203. package/dist/assets/themed_icons/Download.js.map +1 -1
  204. package/dist/assets/themed_icons/Expand.js.map +1 -1
  205. package/dist/assets/themed_icons/Explore.js.map +1 -1
  206. package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
  207. package/dist/assets/themed_icons/Filter.js.map +1 -1
  208. package/dist/assets/themed_icons/Program.js.map +1 -1
  209. package/dist/assets/themed_icons/Project.js.map +1 -1
  210. package/dist/assets/themed_icons/Publication.js.map +1 -1
  211. package/dist/assets/themed_icons/Search.js.map +1 -1
  212. package/dist/assets/themed_icons/Settings.js.map +1 -1
  213. package/dist/assets/themed_icons/SortDown.js.map +1 -1
  214. package/dist/assets/themed_icons/SortUp.js.map +1 -1
  215. package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
  216. package/dist/assets/themed_icons/Study.js.map +1 -1
  217. package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
  218. package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
  219. package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
  220. package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
  221. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
  222. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  223. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  224. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  225. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
  226. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  227. package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
  228. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  229. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  230. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  231. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  232. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  233. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  234. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  235. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  236. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
  237. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  238. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  239. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  240. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
  241. package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
  242. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  243. package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
  244. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
  245. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  246. package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
  247. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  248. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  249. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  250. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  251. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  252. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  253. package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
  254. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  255. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
  256. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
  257. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  258. package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
  259. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  260. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  261. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  262. package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
  263. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  264. package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
  265. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
  266. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  267. package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
  268. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  269. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  270. package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
  271. package/dist/components/AddToDownloadListV2.js.map +1 -1
  272. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  273. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  274. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  275. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  276. package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
  277. package/dist/components/Authentication/LoginForm.js.map +1 -1
  278. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  279. package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
  280. package/dist/components/Authentication/Logout.js.map +1 -1
  281. package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
  282. package/dist/components/Authentication/PasswordField.js.map +1 -1
  283. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  284. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  285. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  286. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  287. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  288. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  289. package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
  290. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  291. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  292. package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
  293. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  294. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  295. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  296. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  297. package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
  298. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  299. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  300. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  301. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  302. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  303. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  304. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  305. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  306. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  307. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  308. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  309. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  310. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  311. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  312. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  313. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  314. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  315. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  316. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  317. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  321. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  322. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  323. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  324. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  325. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  326. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  330. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  331. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  332. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  333. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  334. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  335. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  336. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  337. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  338. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  339. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  340. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  341. package/dist/components/ComponentCollapse.js.map +1 -1
  342. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  343. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  344. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  345. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  346. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  347. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  348. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  349. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  350. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  351. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  352. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  353. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  354. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  355. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  356. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  357. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  358. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  359. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  360. package/dist/components/DataExplorer/DataExplorer.js +28 -31
  361. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  362. package/dist/components/DataGrid/DataGrid.js +72 -72
  363. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  364. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  365. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  366. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  367. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  368. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  369. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  370. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  371. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  372. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  373. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  374. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  375. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  376. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  377. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  378. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  379. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  380. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  381. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  382. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  383. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  384. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  385. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  386. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  387. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  388. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
  389. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  390. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  391. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  392. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  393. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  394. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  395. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  396. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  397. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  398. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  399. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  400. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  401. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  402. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  403. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  404. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  405. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  406. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  407. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  408. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  409. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  410. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  411. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  412. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  413. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  414. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  415. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  416. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  417. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  418. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  419. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  420. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  421. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  422. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  423. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  424. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  425. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  426. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  427. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  428. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  429. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  430. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  431. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  432. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  433. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  434. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  435. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  436. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  437. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  438. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  439. package/dist/components/DialogBase.js.map +1 -1
  440. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  441. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  442. package/dist/components/DirectDownloadButton.js.map +1 -1
  443. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  444. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  445. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  446. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  447. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  448. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  449. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  450. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  451. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  452. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  453. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  454. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  455. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  456. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  457. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  458. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  459. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  460. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  461. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  462. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  463. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  464. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  465. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  466. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  467. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  468. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  469. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  470. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  471. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  472. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  473. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  474. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  475. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  476. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  477. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  478. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  479. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  480. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  481. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  482. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  483. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  484. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  485. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  486. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  487. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  488. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  489. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  490. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  491. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  492. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  493. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  494. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  495. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  496. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  497. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  498. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  499. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  500. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  501. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  502. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  503. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  504. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  505. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  506. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  507. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  508. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  509. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  510. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  511. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  513. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  514. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  515. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  516. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  517. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  518. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  519. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  520. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  521. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  522. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  523. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  524. package/dist/components/EntityIcon.js.map +1 -1
  525. package/dist/components/EntityLink.js.map +1 -1
  526. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  527. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  528. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  529. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  530. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  531. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  532. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  533. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  534. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  535. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  536. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  537. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  538. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  539. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  540. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  541. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  542. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  543. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  544. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  545. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  546. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  547. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  548. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  549. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  550. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  551. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  552. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  553. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  554. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  555. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  556. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  557. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  558. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  559. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  560. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  561. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  562. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  563. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  564. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  565. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  566. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  567. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  568. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  569. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  570. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  571. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  572. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  573. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  574. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  575. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  576. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  577. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  578. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  579. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  580. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  581. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  582. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  583. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  584. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  585. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  586. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  587. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  588. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  589. package/dist/components/Forum/ForumPage.js.map +1 -1
  590. package/dist/components/Forum/ForumTable.js.map +1 -1
  591. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  592. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  593. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  594. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  595. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  596. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  597. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  598. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  599. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  600. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  601. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  602. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  603. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  604. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  605. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  606. package/dist/components/GenericCard/Linkify.js.map +1 -1
  607. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  608. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  609. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  610. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  611. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  612. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  613. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  614. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  615. package/dist/components/Goals/Goals.js +25 -27
  616. package/dist/components/Goals/Goals.js.map +1 -1
  617. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  618. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  619. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  620. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  621. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  622. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  623. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  624. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  625. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  626. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  627. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  628. package/dist/components/HasAccess/AccessIcon.js +10 -10
  629. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  630. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  631. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  632. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  633. package/dist/components/HeaderCard.js.map +1 -1
  634. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  635. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  636. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  637. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  638. package/dist/components/Icon/Icon.js.map +1 -1
  639. package/dist/components/IconList.js.map +1 -1
  640. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  641. package/dist/components/IconSvgButton.js.map +1 -1
  642. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  643. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  644. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  645. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  646. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  647. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  648. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  649. package/dist/components/JsonLdScript.js.map +1 -1
  650. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  651. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  652. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  653. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  654. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  655. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  656. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  657. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  658. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  659. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  660. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  661. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  662. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  663. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  664. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  665. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  666. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  667. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  668. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  669. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  670. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  671. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  672. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  673. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  674. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  675. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  676. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  677. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  678. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  679. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  680. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  681. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  682. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  683. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  684. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  685. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  686. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  687. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  688. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  689. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  690. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  691. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  692. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  693. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  694. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  695. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  696. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  697. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  698. package/dist/components/MuiContainer.js.map +1 -1
  699. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  700. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  701. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  702. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  703. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  704. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  705. package/dist/components/Plot/BarPlot.js.map +1 -1
  706. package/dist/components/Plot/DotPlot.js.map +1 -1
  707. package/dist/components/Plot/Plot.d.ts +12 -1
  708. package/dist/components/Plot/Plot.d.ts.map +1 -1
  709. package/dist/components/Plot/Plot.js +5 -1
  710. package/dist/components/Plot/Plot.js.map +1 -1
  711. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  712. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  713. package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
  714. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  715. package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
  716. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  717. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  718. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  719. package/dist/components/Plot/index.d.ts +3 -1
  720. package/dist/components/Plot/index.d.ts.map +1 -1
  721. package/dist/components/Plot/index.js +2 -1
  722. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  723. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  724. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  725. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  726. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  727. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  728. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  729. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  730. package/dist/components/PortalList/PortalCard.js.map +1 -1
  731. package/dist/components/PortalList/PortalList.js.map +1 -1
  732. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  733. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  734. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  735. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  736. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  737. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  738. package/dist/components/Programs/Programs.js.map +1 -1
  739. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  740. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  741. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  742. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  743. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  744. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  745. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  746. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  747. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  748. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  749. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  750. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  751. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  752. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  753. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  754. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  755. package/dist/components/QuerySortSelector.js.map +1 -1
  756. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  757. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  758. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  759. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  760. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  761. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  762. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  763. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  764. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  765. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  766. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  767. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  768. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  769. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  770. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  771. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  772. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  773. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  774. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  775. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  776. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  777. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  778. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  779. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  780. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  781. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  782. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  783. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  784. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  785. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  786. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  787. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  788. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  789. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  790. package/dist/components/Resources/Resources.js +8 -11
  791. package/dist/components/Resources/Resources.js.map +1 -1
  792. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  793. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  794. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  795. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  796. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  797. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  798. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  799. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  800. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  801. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  802. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  803. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  804. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  805. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  806. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  807. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  808. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  809. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  810. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  811. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  812. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  813. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  814. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  815. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  816. package/dist/components/SignInButton.js.map +1 -1
  817. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  818. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  819. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  820. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  821. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  822. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  823. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  824. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  825. package/dist/components/SourceAppImage.js.map +1 -1
  826. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  827. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  828. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  829. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  830. package/dist/components/StatisticsPlot.js.map +1 -1
  831. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  832. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  833. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  834. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  835. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  836. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  837. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  838. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  839. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  840. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  841. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  842. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  843. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  844. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  845. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  846. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  847. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  848. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  849. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  850. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  851. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  852. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  853. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  854. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  855. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  856. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  857. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  858. package/dist/components/SynapseForm/Header.js.map +1 -1
  859. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  860. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  861. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  862. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  863. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  864. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  865. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  866. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  867. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  868. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  869. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  870. package/dist/components/SynapseForm/types.js.map +1 -1
  871. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  872. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  873. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  874. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  875. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  876. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  877. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  878. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  879. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  880. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  881. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  882. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  883. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  884. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  885. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  886. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  887. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  888. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  889. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  890. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  891. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  892. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  893. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  894. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  895. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  896. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  897. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  898. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  899. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  900. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  901. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  902. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  903. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  904. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  905. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  906. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  907. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  908. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  909. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  910. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  911. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  912. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  913. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  914. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  915. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  916. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  917. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  918. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  919. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  920. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  921. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  922. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  923. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  924. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  925. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  926. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  927. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  928. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  929. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  930. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  931. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  932. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  933. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  934. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  935. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  936. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  937. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  938. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  939. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  940. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  941. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  942. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  943. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  944. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  945. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  946. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  947. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  948. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  949. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  950. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  951. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  952. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  953. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  954. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  955. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  956. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  957. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  958. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  959. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  960. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  961. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  962. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  963. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  964. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
  965. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  966. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  967. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  968. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  969. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  970. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  971. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  972. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  973. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
  974. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  975. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  976. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  977. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  978. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  979. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  980. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  981. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  982. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  983. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  984. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  985. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  986. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  987. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  988. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  989. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  990. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  991. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  992. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  993. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  994. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  995. package/dist/components/TeamBadge.js.map +1 -1
  996. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  997. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  998. package/dist/components/TemplateComponent.js.map +1 -1
  999. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1000. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1001. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1002. package/dist/components/TextField/TextField.js.map +1 -1
  1003. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1004. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1005. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1006. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1007. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1008. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1009. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1010. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1011. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1012. package/dist/components/TotalQueryResults.js.map +1 -1
  1013. package/dist/components/UserCard/Avatar.js.map +1 -1
  1014. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1015. package/dist/components/UserCard/UserCard.js.map +1 -1
  1016. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1017. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1018. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1019. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1020. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1021. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1022. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1023. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1024. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1025. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1026. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1027. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1028. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1029. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1030. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1031. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1032. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1033. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1034. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1035. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1036. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1037. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1038. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1039. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1040. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1041. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1042. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1043. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1044. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1045. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1046. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1047. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1048. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1049. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1050. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1051. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1052. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1053. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1054. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1055. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1056. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1057. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1058. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1059. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1060. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1061. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1062. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1063. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1064. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1065. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1066. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1067. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1068. package/dist/components/download_list/index.js.map +1 -1
  1069. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1070. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1071. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1072. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1073. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1074. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1075. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1076. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1077. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1078. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1079. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1080. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1081. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1082. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1083. package/dist/components/error/ErrorBanner.js.map +1 -1
  1084. package/dist/components/error/ErrorChip.js.map +1 -1
  1085. package/dist/components/error/ErrorPage.js +24 -24
  1086. package/dist/components/error/ErrorPage.js.map +1 -1
  1087. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1088. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1089. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1090. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1091. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1092. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1093. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1094. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1095. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1096. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1097. package/dist/components/index.js +48 -47
  1098. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1099. package/dist/components/layout/SWCHeader.js.map +1 -1
  1100. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1101. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1102. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1103. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1104. package/dist/components/row_renderers/Funder.js.map +1 -1
  1105. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1106. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1107. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1108. package/dist/components/styled/HoverPopover.js.map +1 -1
  1109. package/dist/components/styled/InlineBadge.js.map +1 -1
  1110. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1111. package/dist/components/styled/LargeButton.js.map +1 -1
  1112. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1113. package/dist/components/styled/LightTooltip.js.map +1 -1
  1114. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1115. package/dist/components/styled/StyledPopover.js.map +1 -1
  1116. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1117. package/dist/components/styled/WideButton.js.map +1 -1
  1118. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
  1119. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
  1120. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1121. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1122. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  1123. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
  1124. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
  1125. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
  1126. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
  1127. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
  1128. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
  1129. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1130. package/dist/components/trash/TrashCanList.js.map +1 -1
  1131. package/dist/components/utils/Blocker.js.map +1 -1
  1132. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1133. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1134. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1135. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1136. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1137. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1138. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1139. package/dist/components/widgets/Range.js.map +1 -1
  1140. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1141. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1142. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1143. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1144. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1145. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1146. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1147. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1148. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1149. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1150. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1151. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1152. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1153. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1154. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1155. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1156. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1157. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1158. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1159. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1160. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1161. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1162. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1163. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1164. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1165. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1166. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1167. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1168. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1169. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1170. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1171. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1172. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1173. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1174. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1175. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1176. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1177. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1178. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1179. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1180. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1181. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1182. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1183. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1184. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1185. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1186. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1187. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1188. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1189. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1190. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1191. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1192. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1193. package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
  1194. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1195. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1196. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1197. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1198. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1199. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1200. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1201. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1202. package/dist/index.js +54 -53
  1203. package/dist/index.js.map +1 -1
  1204. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1205. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1206. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1207. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1208. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1209. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1210. package/dist/mocks/chat/mockChat.js.map +1 -1
  1211. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1212. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1213. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1214. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1215. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1216. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1217. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1218. package/dist/mocks/entity/index.js.map +1 -1
  1219. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1220. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1221. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1222. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1223. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1224. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1225. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1226. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1227. package/dist/mocks/entity/mockProject.js.map +1 -1
  1228. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1229. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1230. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1231. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1232. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1233. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1234. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1235. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1236. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1237. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1238. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1239. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1240. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1241. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1242. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1243. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1244. package/dist/mocks/mockSchema.js.map +1 -1
  1245. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1246. package/dist/mocks/mockShortIo.js.map +1 -1
  1247. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1248. package/dist/mocks/mockSubscription.js.map +1 -1
  1249. package/dist/mocks/mockWiki.js.map +1 -1
  1250. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1251. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1252. package/dist/mocks/mock_file_handle.js.map +1 -1
  1253. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1254. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1255. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1256. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1257. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1258. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1259. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1260. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1261. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1262. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1263. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1264. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1265. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1266. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1267. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1268. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1269. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1270. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1271. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1272. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1273. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1274. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1275. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1276. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1277. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1278. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1279. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1280. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1281. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1282. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1283. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1284. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1285. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1286. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1287. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1288. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1289. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1290. package/dist/mocks/msw/handlers.js.map +1 -1
  1291. package/dist/mocks/msw/server.d.ts +1 -1
  1292. package/dist/mocks/msw/server.d.ts.map +1 -1
  1293. package/dist/mocks/msw/server.js.map +1 -1
  1294. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1295. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1296. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1297. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1298. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1299. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1300. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1301. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1302. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1303. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1304. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1305. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1306. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1307. package/dist/mocks/query/syn16787123.js.map +1 -1
  1308. package/dist/mocks/query/syn17328596.js.map +1 -1
  1309. package/dist/mocks/query/syn51735464.js.map +1 -1
  1310. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1311. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1312. package/dist/mocks/team/mockTeam.js.map +1 -1
  1313. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1314. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1315. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1316. package/dist/ror-client/index.js.map +1 -1
  1317. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1318. package/dist/stories/ToastDemo.js.map +1 -1
  1319. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1320. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1321. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1322. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1323. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1324. package/dist/synapse-client/HttpClient.js.map +1 -1
  1325. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1326. package/dist/synapse-client/SynapseClient.js +61 -69
  1327. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1328. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1329. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1330. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1331. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1332. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1333. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1334. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1335. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1336. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1337. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1338. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1339. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1340. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1341. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1342. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1343. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1344. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1345. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1346. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1347. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1348. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1349. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1350. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1351. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1352. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1353. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1354. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1355. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1356. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1357. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1358. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1359. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1360. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1361. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1362. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1363. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1364. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1365. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1366. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1367. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1368. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1369. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1370. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1371. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1372. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1373. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1374. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1375. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1376. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1377. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1378. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1379. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1380. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1381. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1382. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1383. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1384. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1385. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1386. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1387. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1388. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1389. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1390. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1391. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1392. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1393. package/dist/synapse-queries/ror/index.js.map +1 -1
  1394. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1395. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1396. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1397. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1398. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1399. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1400. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1401. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1402. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1403. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1404. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1405. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1406. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1407. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1408. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1409. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1410. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1411. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1412. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1413. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1414. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1415. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1416. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1417. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1418. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1419. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1420. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1421. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1422. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1423. package/dist/testutils/LocationTracker.js.map +1 -1
  1424. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1425. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1426. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1427. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1428. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1429. package/dist/testutils/vitest.setup.js.map +1 -1
  1430. package/dist/theme/DefaultTheme.js.map +1 -1
  1431. package/dist/theme/ThemeProvider.js.map +1 -1
  1432. package/dist/theme/mergeTheme.js.map +1 -1
  1433. package/dist/theme/palette/Palettes.js.map +1 -1
  1434. package/dist/theme/spreadSx.js.map +1 -1
  1435. package/dist/theme/typography/Link.js.map +1 -1
  1436. package/dist/theme/typography/Typography.js.map +1 -1
  1437. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1438. package/dist/utils/APIConstants.js.map +1 -1
  1439. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1440. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1441. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1442. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1443. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1444. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1445. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1446. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1447. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1448. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1449. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1450. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1451. package/dist/utils/SynapseConstants.js.map +1 -1
  1452. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1453. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1454. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1455. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1456. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1457. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1458. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1459. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1460. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1461. package/dist/utils/context/SynapseContext.js.map +1 -1
  1462. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1463. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1464. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1465. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1466. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1467. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1468. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1469. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1470. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1471. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1472. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1473. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1474. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1475. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1476. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1477. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1478. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1479. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1480. package/dist/utils/functions/StringUtils.js.map +1 -1
  1481. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1482. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1483. package/dist/utils/functions/colorPalette.js.map +1 -1
  1484. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1485. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1486. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1487. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1488. package/dist/utils/functions/getEndpoint.js +3 -3
  1489. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1490. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1491. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1492. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1493. package/dist/utils/functions/getUserData.js.map +1 -1
  1494. package/dist/utils/functions/queryUtils.js.map +1 -1
  1495. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1496. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1497. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1498. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1499. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1500. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1501. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1502. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1503. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1504. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1505. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1506. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1507. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1508. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1509. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1510. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1511. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1512. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1513. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1514. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1515. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1516. package/dist/utils/hooks/useListState.js.map +1 -1
  1517. package/dist/utils/hooks/useLogin.js.map +1 -1
  1518. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1519. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1520. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1521. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1522. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1523. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1524. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1525. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1526. package/dist/utils/hooks/useSet.js.map +1 -1
  1527. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1528. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1529. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1530. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1531. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1532. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1533. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1534. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1535. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1536. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1537. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1538. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1539. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1540. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1541. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1542. package/dist/utils/html/TargetEnum.js.map +1 -1
  1543. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1544. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1545. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1546. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1547. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1548. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1549. package/dist/utils/jsonschema/getType.js.map +1 -1
  1550. package/dist/utils/searchDefaults.js.map +1 -1
  1551. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1552. package/dist/utils/types/IsType.js.map +1 -1
  1553. package/package.json +67 -66
@@ -1 +1 @@
1
- {"version":3,"file":"useGetEntityChallenge.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityChallenge.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { Challenge } from '@sage-bionetworks/synapse-types'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetEntityChallenge(\n entityId: string,\n options?: Partial<UseQueryOptions<Challenge, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getEntityChallengeQueryKey(entityId),\n queryFn: () => SynapseClient.getEntityChallenge(entityId, accessToken),\n })\n}\n"],"mappings":";;;;;AAKA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,2BAA2B,EAAS;EACzD,eAAe,EAAc,mBAAmB,GAAU,EAAY;EACvE,CAAC"}
1
+ {"version":3,"file":"useGetEntityChallenge.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityChallenge.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { Challenge } from '@sage-bionetworks/synapse-types'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetEntityChallenge(\n entityId: string,\n options?: Partial<UseQueryOptions<Challenge, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getEntityChallengeQueryKey(entityId),\n queryFn: () => SynapseClient.getEntityChallenge(entityId, accessToken),\n })\n}\n"],"mappings":";;;;;AAKA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,2BAA2B,CAAQ;EACxD,eAAe,EAAc,mBAAmB,GAAU,CAAW;CACvE,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetEntityChildren.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityChildren.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n EntityChildrenRequest,\n EntityChildrenResponse,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from '@tanstack/react-query'\n\nexport function useGetEntityChildren(\n request: EntityChildrenRequest,\n options?: Partial<\n UseQueryOptions<\n EntityChildrenResponse,\n SynapseClientError,\n EntityChildrenResponse\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getEntityChildrenQueryKey(request, false),\n queryFn: () => SynapseClient.getEntityChildren(request, accessToken),\n })\n}\n\nexport function useGetEntityChildrenInfinite<\n TData = InfiniteData<EntityChildrenResponse>,\n>(\n request: EntityChildrenRequest,\n options?: Partial<\n UseInfiniteQueryOptions<\n EntityChildrenResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EntityChildrenResponse['nextPageToken']\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n EntityChildrenResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EntityChildrenResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getEntityChildrenQueryKey(request, true),\n queryFn: async context => {\n return await SynapseClient.getEntityChildren(\n {\n ...request,\n includeTotalChildCount: context.pageParam\n ? false\n : request.includeTotalChildCount, // only ask for the count when requesting the first page\n nextPageToken: context.pageParam,\n },\n accessToken,\n context.signal,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n"],"mappings":";;;;AAgBA,SAAgB,EACd,GACA,GAOA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,GAAS,GAAM;EAC9D,eAAe,EAAc,kBAAkB,GAAS,EAAY;EACrE,CAAC;;AAGJ,SAAgB,EAGd,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,0BAA0B,GAAS,GAAK;EAC7D,SAAS,OAAM,MACN,MAAM,EAAc,kBACzB;GACE,GAAG;GACH,wBAAwB,EAAQ,YAC5B,KACA,EAAQ;GACZ,eAAe,EAAQ;GACxB,EACD,GACA,EAAQ,OACT;EAEH,kBAAkB,KAAA;EAClB,mBAAkB,MAAQ,EAAK;EAChC,CAAC"}
1
+ {"version":3,"file":"useGetEntityChildren.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityChildren.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n EntityChildrenRequest,\n EntityChildrenResponse,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from '@tanstack/react-query'\n\nexport function useGetEntityChildren(\n request: EntityChildrenRequest,\n options?: Partial<\n UseQueryOptions<\n EntityChildrenResponse,\n SynapseClientError,\n EntityChildrenResponse\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getEntityChildrenQueryKey(request, false),\n queryFn: () => SynapseClient.getEntityChildren(request, accessToken),\n })\n}\n\nexport function useGetEntityChildrenInfinite<\n TData = InfiniteData<EntityChildrenResponse>,\n>(\n request: EntityChildrenRequest,\n options?: Partial<\n UseInfiniteQueryOptions<\n EntityChildrenResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EntityChildrenResponse['nextPageToken']\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n EntityChildrenResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EntityChildrenResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getEntityChildrenQueryKey(request, true),\n queryFn: async context => {\n return await SynapseClient.getEntityChildren(\n {\n ...request,\n includeTotalChildCount: context.pageParam\n ? false\n : request.includeTotalChildCount, // only ask for the count when requesting the first page\n nextPageToken: context.pageParam,\n },\n accessToken,\n context.signal,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n"],"mappings":";;;;AAgBA,SAAgB,EACd,GACA,GAOA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,GAAS,EAAK;EAC7D,eAAe,EAAc,kBAAkB,GAAS,CAAW;CACrE,CAAC;AACH;AAEA,SAAgB,EAGd,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,0BAA0B,GAAS,EAAI;EAC5D,SAAS,OAAM,MACN,MAAM,EAAc,kBACzB;GACE,GAAG;GACH,wBAAwB,EAAQ,YAC5B,KACA,EAAQ;GACZ,eAAe,EAAQ;EACzB,GACA,GACA,EAAQ,MACV;EAEF,kBAAkB,KAAA;EAClB,mBAAkB,MAAQ,EAAK;CACjC,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetEntityForum.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityForum.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { Forum } from '@sage-bionetworks/synapse-types'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetEntityForum(\n entityId: string,\n options?: Partial<UseQueryOptions<Forum, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getForumQueryKey(entityId),\n queryFn: () => SynapseClient.getForum(entityId, accessToken),\n })\n}\n"],"mappings":";;;;;AAMA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,iBAAiB,EAAS;EAC/C,eAAe,EAAc,SAAS,GAAU,EAAY;EAC7D,CAAC"}
1
+ {"version":3,"file":"useGetEntityForum.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityForum.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { Forum } from '@sage-bionetworks/synapse-types'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetEntityForum(\n entityId: string,\n options?: Partial<UseQueryOptions<Forum, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n\n return useQuery({\n ...options,\n queryKey: keyFactory.getForumQueryKey(entityId),\n queryFn: () => SynapseClient.getForum(entityId, accessToken),\n })\n}\n"],"mappings":";;;;;AAMA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CAEtD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,iBAAiB,CAAQ;EAC9C,eAAe,EAAc,SAAS,GAAU,CAAW;CAC7D,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetEntityHeaders.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityHeaders.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { normalizeSynPrefix } from '@/utils/functions/EntityTypeUtils'\nimport {\n EntityHeader,\n PaginatedResults,\n Reference,\n ReferenceList,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\n\nexport function useGetEntityHeaders(\n references: ReferenceList,\n options?: Partial<\n UseQueryOptions<PaginatedResults<EntityHeader>, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n references = references.map(ref => ({\n ...ref,\n targetId: normalizeSynPrefix(ref.targetId),\n }))\n\n const queryFn = async () => {\n const response = await SynapseClient.getEntityHeaders(\n references,\n accessToken,\n )\n\n // Update the cache with the individual header, in case this was a batch\n response.results.forEach(header => {\n const requestedItem = references.find(ref => {\n if (ref.targetVersionNumber) {\n return (\n ref.targetId === header.id &&\n ref.targetVersionNumber === header.versionNumber\n )\n } else {\n return ref.targetId === header.id\n }\n })\n if (requestedItem) {\n queryClient.setQueryData<PaginatedResults<EntityHeader>>(\n keyFactory.getEntityHeadersQueryKey([requestedItem]),\n { results: [header], totalNumberOfResults: 1 },\n )\n\n queryClient.setQueryData(\n keyFactory.getEntityHeaderQueryKey(\n requestedItem.targetId,\n requestedItem.targetVersionNumber,\n ),\n header,\n )\n // If the request item had a version and was the latest version, we can also hydrate the cache\n // for the 'unversioned' request\n if (requestedItem.targetVersionNumber && header.isLatestVersion) {\n const requestWithoutVersionNumber: Reference = { targetId: header.id }\n queryClient.setQueryData<PaginatedResults<EntityHeader>>(\n keyFactory.getEntityHeadersQueryKey([requestWithoutVersionNumber]),\n { results: [header], totalNumberOfResults: 1 },\n )\n\n queryClient.setQueryData(\n keyFactory.getEntityHeaderQueryKey(requestedItem.targetId),\n header,\n )\n }\n }\n })\n\n return response\n }\n\n return useQuery<PaginatedResults<EntityHeader>, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getEntityHeadersQueryKey(references),\n queryFn,\n })\n}\n\nexport function useGetEntityHeader(\n entityId: string = '',\n versionNumber?: number,\n options?: Partial<\n UseQueryOptions<EntityHeader | undefined, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n if (entityId) {\n entityId = normalizeSynPrefix(entityId)\n }\n\n return useQuery({\n enabled: Boolean(entityId),\n ...options,\n queryKey: keyFactory.getEntityHeaderQueryKey(entityId, versionNumber),\n queryFn: () =>\n SynapseClient.getEntityHeader(entityId, versionNumber, accessToken),\n })\n}\n"],"mappings":";;;;;;AAeA,SAAgB,EACd,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAc,GAAgB;AACpC,KAAa,EAAW,KAAI,OAAQ;EAClC,GAAG;EACH,UAAU,EAAmB,EAAI,SAAS;EAC3C,EAAE;CAEH,IAAM,IAAU,YAAY;EAC1B,IAAM,IAAW,MAAM,EAAc,iBACnC,GACA,EACD;AA4CD,SAzCA,EAAS,QAAQ,SAAQ,MAAU;GACjC,IAAM,IAAgB,EAAW,MAAK,MAChC,EAAI,sBAEJ,EAAI,aAAa,EAAO,MACxB,EAAI,wBAAwB,EAAO,gBAG9B,EAAI,aAAa,EAAO,GAEjC;AACF,OAAI,MACF,EAAY,aACV,EAAW,yBAAyB,CAAC,EAAc,CAAC,EACpD;IAAE,SAAS,CAAC,EAAO;IAAE,sBAAsB;IAAG,CAC/C,EAED,EAAY,aACV,EAAW,wBACT,EAAc,UACd,EAAc,oBACf,EACD,EACD,EAGG,EAAc,uBAAuB,EAAO,kBAAiB;IAC/D,IAAM,IAAyC,EAAE,UAAU,EAAO,IAAI;AAMtE,IALA,EAAY,aACV,EAAW,yBAAyB,CAAC,EAA4B,CAAC,EAClE;KAAE,SAAS,CAAC,EAAO;KAAE,sBAAsB;KAAG,CAC/C,EAED,EAAY,aACV,EAAW,wBAAwB,EAAc,SAAS,EAC1D,EACD;;IAGL,EAEK;;AAGT,QAAO,EAA6D;EAClE,GAAG;EACH,UAAU,EAAW,yBAAyB,EAAW;EACzD;EACD,CAAC;;AAGJ,SAAgB,EACd,IAAmB,IACnB,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AAKvD,QAJA,AACE,MAAW,EAAmB,EAAS,EAGlC,EAAS;EACd,SAAS,EAAQ;EACjB,GAAG;EACH,UAAU,EAAW,wBAAwB,GAAU,EAAc;EACrE,eACE,EAAc,gBAAgB,GAAU,GAAe,EAAY;EACtE,CAAC"}
1
+ {"version":3,"file":"useGetEntityHeaders.js","names":[],"sources":["../../../src/synapse-queries/entity/useGetEntityHeaders.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { normalizeSynPrefix } from '@/utils/functions/EntityTypeUtils'\nimport {\n EntityHeader,\n PaginatedResults,\n Reference,\n ReferenceList,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\n\nexport function useGetEntityHeaders(\n references: ReferenceList,\n options?: Partial<\n UseQueryOptions<PaginatedResults<EntityHeader>, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n references = references.map(ref => ({\n ...ref,\n targetId: normalizeSynPrefix(ref.targetId),\n }))\n\n const queryFn = async () => {\n const response = await SynapseClient.getEntityHeaders(\n references,\n accessToken,\n )\n\n // Update the cache with the individual header, in case this was a batch\n response.results.forEach(header => {\n const requestedItem = references.find(ref => {\n if (ref.targetVersionNumber) {\n return (\n ref.targetId === header.id &&\n ref.targetVersionNumber === header.versionNumber\n )\n } else {\n return ref.targetId === header.id\n }\n })\n if (requestedItem) {\n queryClient.setQueryData<PaginatedResults<EntityHeader>>(\n keyFactory.getEntityHeadersQueryKey([requestedItem]),\n { results: [header], totalNumberOfResults: 1 },\n )\n\n queryClient.setQueryData(\n keyFactory.getEntityHeaderQueryKey(\n requestedItem.targetId,\n requestedItem.targetVersionNumber,\n ),\n header,\n )\n // If the request item had a version and was the latest version, we can also hydrate the cache\n // for the 'unversioned' request\n if (requestedItem.targetVersionNumber && header.isLatestVersion) {\n const requestWithoutVersionNumber: Reference = { targetId: header.id }\n queryClient.setQueryData<PaginatedResults<EntityHeader>>(\n keyFactory.getEntityHeadersQueryKey([requestWithoutVersionNumber]),\n { results: [header], totalNumberOfResults: 1 },\n )\n\n queryClient.setQueryData(\n keyFactory.getEntityHeaderQueryKey(requestedItem.targetId),\n header,\n )\n }\n }\n })\n\n return response\n }\n\n return useQuery<PaginatedResults<EntityHeader>, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getEntityHeadersQueryKey(references),\n queryFn,\n })\n}\n\nexport function useGetEntityHeader(\n entityId: string = '',\n versionNumber?: number,\n options?: Partial<\n UseQueryOptions<EntityHeader | undefined, SynapseClientError>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n if (entityId) {\n entityId = normalizeSynPrefix(entityId)\n }\n\n return useQuery({\n enabled: Boolean(entityId),\n ...options,\n queryKey: keyFactory.getEntityHeaderQueryKey(entityId, versionNumber),\n queryFn: () =>\n SynapseClient.getEntityHeader(entityId, versionNumber, accessToken),\n })\n}\n"],"mappings":";;;;;;AAeA,SAAgB,EACd,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB,GAChD,IAAc,EAAe;CACnC,IAAa,EAAW,KAAI,OAAQ;EAClC,GAAG;EACH,UAAU,EAAmB,EAAI,QAAQ;CAC3C,EAAE;CAEF,IAAM,IAAU,YAAY;EAC1B,IAAM,IAAW,MAAM,EAAc,iBACnC,GACA,CACF;EA4CA,OAzCA,EAAS,QAAQ,SAAQ,MAAU;GACjC,IAAM,IAAgB,EAAW,MAAK,MAChC,EAAI,sBAEJ,EAAI,aAAa,EAAO,MACxB,EAAI,wBAAwB,EAAO,gBAG9B,EAAI,aAAa,EAAO,EAElC;GACD,IAAI,MACF,EAAY,aACV,EAAW,yBAAyB,CAAC,CAAa,CAAC,GACnD;IAAE,SAAS,CAAC,CAAM;IAAG,sBAAsB;GAAE,CAC/C,GAEA,EAAY,aACV,EAAW,wBACT,EAAc,UACd,EAAc,mBAChB,GACA,CACF,GAGI,EAAc,uBAAuB,EAAO,kBAAiB;IAC/D,IAAM,IAAyC,EAAE,UAAU,EAAO,GAAG;IAMrE,AALA,EAAY,aACV,EAAW,yBAAyB,CAAC,CAA2B,CAAC,GACjE;KAAE,SAAS,CAAC,CAAM;KAAG,sBAAsB;IAAE,CAC/C,GAEA,EAAY,aACV,EAAW,wBAAwB,EAAc,QAAQ,GACzD,CACF;GACF;EAEJ,CAAC,GAEM;CACT;CAEA,OAAO,EAA6D;EAClE,GAAG;EACH,UAAU,EAAW,yBAAyB,CAAU;EACxD;CACF,CAAC;AACH;AAEA,SAAgB,EACd,IAAmB,IACnB,GACA,GAGA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CAKtD,OAJA,AACE,MAAW,EAAmB,CAAQ,GAGjC,EAAS;EACd,SAAS,EAAQ;EACjB,GAAG;EACH,UAAU,EAAW,wBAAwB,GAAU,CAAa;EACpE,eACE,EAAc,gBAAgB,GAAU,GAAe,CAAW;CACtE,CAAC;AACH"}
@@ -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 (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 +1 @@
1
- {"version":3,"file":"useProjectStorage.js","names":[],"sources":["../../../src/synapse-queries/entity/useProjectStorage.ts"],"sourcesContent":["/*\n * Hooks to access Project Storage in Synapse\n */\nimport SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { ProjectStorageUsage } from '@sage-bionetworks/synapse-types'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useProjectStorageUsage(\n projectId: string,\n options?: Partial<UseQueryOptions<ProjectStorageUsage, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getProjectStorageUsageKey(projectId),\n queryFn: () => SynapseClient.getProjectStorageUsage(projectId, accessToken),\n })\n}\n"],"mappings":";;;;;AAQA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,EAAU;EACzD,eAAe,EAAc,uBAAuB,GAAW,EAAY;EAC5E,CAAC"}
1
+ {"version":3,"file":"useProjectStorage.js","names":[],"sources":["../../../src/synapse-queries/entity/useProjectStorage.ts"],"sourcesContent":["/*\n * Hooks to access Project Storage in Synapse\n */\nimport SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { ProjectStorageUsage } from '@sage-bionetworks/synapse-types'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useProjectStorageUsage(\n projectId: string,\n options?: Partial<UseQueryOptions<ProjectStorageUsage, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getProjectStorageUsageKey(projectId),\n queryFn: () => SynapseClient.getProjectStorageUsage(projectId, accessToken),\n })\n}\n"],"mappings":";;;;;AAQA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,CAAS;EACxD,eAAe,EAAc,uBAAuB,GAAW,CAAW;CAC5E,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSchema.js","names":[],"sources":["../../../src/synapse-queries/entity/useSchema.ts"],"sourcesContent":["/*\n * Hooks for accessing services related to JSON Schemas in the Synapse REST API\n */\n\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\nimport { JSONSchema7 } from 'json-schema'\n\nexport function useGetSchema(\n schema$id: string,\n options?: Partial<UseQueryOptions<JSONSchema7, SynapseClientError>>,\n) {\n const { keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getValidationSchemaQueryKey(schema$id),\n\n queryFn: async () => {\n const response = await SynapseClient.getValidationSchema(schema$id)\n return response.validationSchema\n },\n })\n}\n"],"mappings":";;;;AAUA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,kBAAe,GAAmB;AAC1C,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,4BAA4B,EAAU;EAE3D,SAAS,aAEA,MADgB,EAAc,oBAAoB,EAAU,EACnD;EAEnB,CAAC"}
1
+ {"version":3,"file":"useSchema.js","names":[],"sources":["../../../src/synapse-queries/entity/useSchema.ts"],"sourcesContent":["/*\n * Hooks for accessing services related to JSON Schemas in the Synapse REST API\n */\n\nimport SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\nimport { JSONSchema7 } from 'json-schema'\n\nexport function useGetSchema(\n schema$id: string,\n options?: Partial<UseQueryOptions<JSONSchema7, SynapseClientError>>,\n) {\n const { keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getValidationSchemaQueryKey(schema$id),\n\n queryFn: async () => {\n const response = await SynapseClient.getValidationSchema(schema$id)\n return response.validationSchema\n },\n })\n}\n"],"mappings":";;;;AAUA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,kBAAe,EAAkB;CACzC,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,4BAA4B,CAAS;EAE1D,SAAS,aAEA,MADgB,EAAc,oBAAoB,CAAS,GAClD;CAEpB,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useEvaluation.js","names":[],"sources":["../../../src/synapse-queries/evaluation/useEvaluation.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { EvaluationRoundListResponse } from '@sage-bionetworks/synapse-client'\nimport {\n Evaluation,\n GetEvaluationParameters,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetEvaluation(\n evaluationId: string,\n options?: Partial<UseQueryOptions<Evaluation, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getEvaluationByIdQueryKey(evaluationId),\n queryFn: () => SynapseClient.getEvaluation(evaluationId, accessToken),\n })\n}\n\nexport function useGetEvaluationsInfinite<\n TData = InfiniteData<PaginatedResults<Evaluation>>,\n>(\n request: GetEvaluationParameters = {},\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<Evaluation>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const LIMIT = 100\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useInfiniteQuery<\n PaginatedResults<Evaluation>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getEvaluationsQueryKey(request),\n queryFn: async context => {\n const responsePage = await SynapseClient.getEvaluations(\n { ...request, limit: LIMIT, offset: context.pageParam },\n accessToken,\n )\n\n // Update the cache with each individual evaluation\n responsePage.results.forEach(evaluation => {\n queryClient.setQueryData(\n keyFactory.getEvaluationByIdQueryKey(evaluation.id!),\n evaluation,\n )\n })\n\n return responsePage\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useGetEvaluationRoundsInfinite<\n TData = InfiniteData<EvaluationRoundListResponse>,\n>(\n evaluationId: string,\n options?: Partial<\n UseInfiniteQueryOptions<\n EvaluationRoundListResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EvaluationRoundListResponse['nextPageToken']\n >\n >,\n) {\n const { synapseClient, keyFactory } = useSynapseContext()\n\n return useInfiniteQuery<\n EvaluationRoundListResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EvaluationRoundListResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getEvaluationRoundsQueryKey(evaluationId),\n queryFn: context =>\n synapseClient.evaluationServicesClient.postRepoV1EvaluationEvalIdRoundList(\n {\n evalId: evaluationId,\n evaluationRoundListRequest: {\n nextPageToken: context.pageParam,\n },\n },\n ),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n"],"mappings":";;;;;;AAmBA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,EAAa;EAC5D,eAAe,EAAc,cAAc,GAAc,EAAY;EACtE,CAAC;;AAGJ,SAAgB,EAGd,IAAmC,EAAE,EACrC,GASA;CACA,IACM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAc,GAAgB;AAEpC,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,uBAAuB,EAAQ;EACpD,SAAS,OAAM,MAAW;GACxB,IAAM,IAAe,MAAM,EAAc,eACvC;IAAE,GAAG;IAAS,OAAO;IAAO,QAAQ,EAAQ;IAAW,EACvD,EACD;AAUD,UAPA,EAAa,QAAQ,SAAQ,MAAc;AACzC,MAAY,aACV,EAAW,0BAA0B,EAAW,GAAI,EACpD,EACD;KACD,EAEK;;EAET,kBAAkB,KAAA;EAClB,kBAAkB;EACnB,CAAC;;AAGJ,SAAgB,EAGd,GACA,GASA;CACA,IAAM,EAAE,kBAAe,kBAAe,GAAmB;AAEzD,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,4BAA4B,EAAa;EAC9D,UAAS,MACP,EAAc,yBAAyB,oCACrC;GACE,QAAQ;GACR,4BAA4B,EAC1B,eAAe,EAAQ,WACxB;GACF,CACF;EACH,kBAAkB,KAAA;EAClB,mBAAkB,MAAQ,EAAK;EAChC,CAAC"}
1
+ {"version":3,"file":"useEvaluation.js","names":[],"sources":["../../../src/synapse-queries/evaluation/useEvaluation.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { EvaluationRoundListResponse } from '@sage-bionetworks/synapse-client'\nimport {\n Evaluation,\n GetEvaluationParameters,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetEvaluation(\n evaluationId: string,\n options?: Partial<UseQueryOptions<Evaluation, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getEvaluationByIdQueryKey(evaluationId),\n queryFn: () => SynapseClient.getEvaluation(evaluationId, accessToken),\n })\n}\n\nexport function useGetEvaluationsInfinite<\n TData = InfiniteData<PaginatedResults<Evaluation>>,\n>(\n request: GetEvaluationParameters = {},\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<Evaluation>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const LIMIT = 100\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n\n return useInfiniteQuery<\n PaginatedResults<Evaluation>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getEvaluationsQueryKey(request),\n queryFn: async context => {\n const responsePage = await SynapseClient.getEvaluations(\n { ...request, limit: LIMIT, offset: context.pageParam },\n accessToken,\n )\n\n // Update the cache with each individual evaluation\n responsePage.results.forEach(evaluation => {\n queryClient.setQueryData(\n keyFactory.getEvaluationByIdQueryKey(evaluation.id!),\n evaluation,\n )\n })\n\n return responsePage\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useGetEvaluationRoundsInfinite<\n TData = InfiniteData<EvaluationRoundListResponse>,\n>(\n evaluationId: string,\n options?: Partial<\n UseInfiniteQueryOptions<\n EvaluationRoundListResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EvaluationRoundListResponse['nextPageToken']\n >\n >,\n) {\n const { synapseClient, keyFactory } = useSynapseContext()\n\n return useInfiniteQuery<\n EvaluationRoundListResponse,\n SynapseClientError,\n TData,\n QueryKey,\n EvaluationRoundListResponse['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getEvaluationRoundsQueryKey(evaluationId),\n queryFn: context =>\n synapseClient.evaluationServicesClient.postRepoV1EvaluationEvalIdRoundList(\n {\n evalId: evaluationId,\n evaluationRoundListRequest: {\n nextPageToken: context.pageParam,\n },\n },\n ),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n"],"mappings":";;;;;;AAmBA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,0BAA0B,CAAY;EAC3D,eAAe,EAAc,cAAc,GAAc,CAAW;CACtE,CAAC;AACH;AAEA,SAAgB,EAGd,IAAmC,CAAC,GACpC,GASA;CACA,IACM,EAAE,gBAAa,kBAAe,EAAkB,GAChD,IAAc,EAAe;CAEnC,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,uBAAuB,CAAO;EACnD,SAAS,OAAM,MAAW;GACxB,IAAM,IAAe,MAAM,EAAc,eACvC;IAAE,GAAG;IAAS,OAAO;IAAO,QAAQ,EAAQ;GAAU,GACtD,CACF;GAUA,OAPA,EAAa,QAAQ,SAAQ,MAAc;IACzC,EAAY,aACV,EAAW,0BAA0B,EAAW,EAAG,GACnD,CACF;GACF,CAAC,GAEM;EACT;EACA,kBAAkB,KAAA;EAClB,kBAAkB;CACpB,CAAC;AACH;AAEA,SAAgB,EAGd,GACA,GASA;CACA,IAAM,EAAE,kBAAe,kBAAe,EAAkB;CAExD,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,4BAA4B,CAAY;EAC7D,UAAS,MACP,EAAc,yBAAyB,oCACrC;GACE,QAAQ;GACR,4BAA4B,EAC1B,eAAe,EAAQ,UACzB;EACF,CACF;EACF,kBAAkB,KAAA;EAClB,mBAAkB,MAAQ,EAAK;CACjC,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetFeatureFlag.js","names":[],"sources":["../../../src/synapse-queries/featureflags/useGetFeatureFlag.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { FeatureFlagEnum, FeatureFlags } from '@/utils/featureflag/FeatureFlags'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetFeatureFlag(\n featureFlag: FeatureFlagEnum,\n options?: Partial<UseQueryOptions<FeatureFlags, SynapseClientError>>,\n): boolean {\n const { keyFactory, isInExperimentalMode } = useSynapseContext()\n\n const { data: featureFlags } = useQuery<FeatureFlags, SynapseClientError>({\n staleTime: Infinity,\n ...options,\n queryKey: keyFactory.getFeatureFlagQueryKey(),\n queryFn: () => SynapseClient.getFeatureFlags(),\n })\n\n return isInExperimentalMode || !!featureFlags?.[featureFlag]\n}\n"],"mappings":";;;;;AAKA,SAAgB,EACd,GACA,GACS;CACT,IAAM,EAAE,eAAY,4BAAyB,GAAmB,EAE1D,EAAE,MAAM,MAAiB,EAA2C;EACxE,WAAW;EACX,GAAG;EACH,UAAU,EAAW,wBAAwB;EAC7C,eAAe,EAAc,iBAAiB;EAC/C,CAAC;AAEF,QAAO,KAAwB,CAAC,CAAC,IAAe"}
1
+ {"version":3,"file":"useGetFeatureFlag.js","names":[],"sources":["../../../src/synapse-queries/featureflags/useGetFeatureFlag.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { FeatureFlagEnum, FeatureFlags } from '@/utils/featureflag/FeatureFlags'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetFeatureFlag(\n featureFlag: FeatureFlagEnum,\n options?: Partial<UseQueryOptions<FeatureFlags, SynapseClientError>>,\n): boolean {\n const { keyFactory, isInExperimentalMode } = useSynapseContext()\n\n const { data: featureFlags } = useQuery<FeatureFlags, SynapseClientError>({\n staleTime: Infinity,\n ...options,\n queryKey: keyFactory.getFeatureFlagQueryKey(),\n queryFn: () => SynapseClient.getFeatureFlags(),\n })\n\n return isInExperimentalMode || !!featureFlags?.[featureFlag]\n}\n"],"mappings":";;;;;AAKA,SAAgB,EACd,GACA,GACS;CACT,IAAM,EAAE,eAAY,4BAAyB,EAAkB,GAEzD,EAAE,MAAM,MAAiB,EAA2C;EACxE,WAAW;EACX,GAAG;EACH,UAAU,EAAW,uBAAuB;EAC5C,eAAe,EAAc,gBAAgB;CAC/C,CAAC;CAED,OAAO,KAAwB,CAAC,CAAC,IAAe;AAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"UploadToS3.js","names":[],"sources":["../../../src/synapse-queries/file/UploadToS3.ts"],"sourcesContent":["import { ProgressCallback } from '@/synapse-client/index'\nimport { S3 } from '@aws-sdk/client-s3'\nimport { Upload } from '@aws-sdk/lib-storage'\n\n/**\n * Directly (from the client runtime, e.g. browser) uploads a file to an\n * S3-compatible storage service.\n */\nexport async function uploadToS3(\n blob: Blob,\n fileKey: string,\n endpoint: string,\n accessKey: string,\n secretKey: string,\n bucketName: string,\n contentType: string,\n abortController: AbortController | undefined,\n progressCallback: ((progress: ProgressCallback) => void) | undefined,\n) {\n const s3Client = new S3({\n endpoint,\n region: 'us-east-1',\n credentials: {\n accessKeyId: accessKey,\n secretAccessKey: secretKey,\n },\n forcePathStyle: true,\n })\n\n const upload = new Upload({\n client: s3Client,\n params: {\n Bucket: bucketName,\n Key: fileKey,\n ContentType: contentType,\n Body: blob,\n },\n abortController,\n leavePartsOnError: true,\n })\n\n upload.on('httpUploadProgress', progress => {\n if (progressCallback) {\n progressCallback({\n value: progress.loaded || 0,\n total: progress.total || 1,\n })\n }\n })\n\n await upload.done()\n}\n"],"mappings":";;;AAQA,eAAsB,EACpB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA;CAWA,IAAM,IAAS,IAAI,EAAO;EACxB,QAAQ,IAXW,EAAG;GACtB;GACA,QAAQ;GACR,aAAa;IACX,aAAa;IACb,iBAAiB;IAClB;GACD,gBAAgB;GACjB,CAGS;EACR,QAAQ;GACN,QAAQ;GACR,KAAK;GACL,aAAa;GACb,MAAM;GACP;EACD;EACA,mBAAmB;EACpB,CAAC;AAWF,CATA,EAAO,GAAG,uBAAsB,MAAY;AAC1C,EAAI,KACF,EAAiB;GACf,OAAO,EAAS,UAAU;GAC1B,OAAO,EAAS,SAAS;GAC1B,CAAC;GAEJ,EAEF,MAAM,EAAO,MAAM"}
1
+ {"version":3,"file":"UploadToS3.js","names":[],"sources":["../../../src/synapse-queries/file/UploadToS3.ts"],"sourcesContent":["import { ProgressCallback } from '@/synapse-client/index'\nimport { S3 } from '@aws-sdk/client-s3'\nimport { Upload } from '@aws-sdk/lib-storage'\n\n/**\n * Directly (from the client runtime, e.g. browser) uploads a file to an\n * S3-compatible storage service.\n */\nexport async function uploadToS3(\n blob: Blob,\n fileKey: string,\n endpoint: string,\n accessKey: string,\n secretKey: string,\n bucketName: string,\n contentType: string,\n abortController: AbortController | undefined,\n progressCallback: ((progress: ProgressCallback) => void) | undefined,\n) {\n const s3Client = new S3({\n endpoint,\n region: 'us-east-1',\n credentials: {\n accessKeyId: accessKey,\n secretAccessKey: secretKey,\n },\n forcePathStyle: true,\n })\n\n const upload = new Upload({\n client: s3Client,\n params: {\n Bucket: bucketName,\n Key: fileKey,\n ContentType: contentType,\n Body: blob,\n },\n abortController,\n leavePartsOnError: true,\n })\n\n upload.on('httpUploadProgress', progress => {\n if (progressCallback) {\n progressCallback({\n value: progress.loaded || 0,\n total: progress.total || 1,\n })\n }\n })\n\n await upload.done()\n}\n"],"mappings":";;;AAQA,eAAsB,EACpB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA;CAWA,IAAM,IAAS,IAAI,EAAO;EACxB,QAAQ,IAXW,EAAG;GACtB;GACA,QAAQ;GACR,aAAa;IACX,aAAa;IACb,iBAAiB;GACnB;GACA,gBAAgB;EAClB,CAGU;EACR,QAAQ;GACN,QAAQ;GACR,KAAK;GACL,aAAa;GACb,MAAM;EACR;EACA;EACA,mBAAmB;CACrB,CAAC;CAWD,AATA,EAAO,GAAG,uBAAsB,MAAY;EAC1C,AAAI,KACF,EAAiB;GACf,OAAO,EAAS,UAAU;GAC1B,OAAO,EAAS,SAAS;EAC3B,CAAC;CAEL,CAAC,GAED,MAAM,EAAO,KAAK;AACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDirectUploadToS3.js","names":[],"sources":["../../../src/synapse-queries/file/useDirectUploadToS3.ts"],"sourcesContent":["import { calculateMd5 } from '@/synapse-client/SynapseClient'\nimport { ExternalObjectStoreFileHandle } from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { FileUploadArgs } from './FileUploadArgs'\nimport { uploadToS3 } from './UploadToS3'\nimport { useCreateExternalFileHandle } from './useFileHandle'\n\ntype UseDirectUploadToS3Args = FileUploadArgs & {\n readonly accessKey: string\n readonly secretKey: string\n readonly bucketName: string\n readonly endpoint: string\n readonly keyPrefixUUID: string\n}\n\n/**\n * Mutation used to directly upload a file to an S3-compatible API and create a\n * Synapse ExternalObjectStoreFileHandle pointing to the uploaded file.\n */\nexport function useDirectUploadToS3(\n options?: UseMutationOptions<\n ExternalObjectStoreFileHandle,\n unknown,\n UseDirectUploadToS3Args\n >,\n) {\n const { mutateAsync: createExternalFileHandle } =\n useCreateExternalFileHandle()\n return useMutation({\n ...options,\n mutationFn: async (args: UseDirectUploadToS3Args) => {\n const {\n accessKey,\n secretKey,\n bucketName,\n endpoint,\n fileName,\n contentType,\n blob,\n progressCallback,\n keyPrefixUUID,\n storageLocationId,\n onMd5Computed,\n abortController,\n } = args\n const md5 = await calculateMd5(blob)\n if (onMd5Computed) {\n onMd5Computed()\n }\n\n const fileKey = `${keyPrefixUUID}/${fileName}`\n\n await uploadToS3(\n blob,\n fileKey,\n endpoint,\n accessKey,\n secretKey,\n bucketName,\n contentType,\n abortController,\n progressCallback,\n )\n\n const newFileHandle = (await createExternalFileHandle({\n externalFileHandleInterface: {\n concreteType:\n 'org.sagebionetworks.repo.model.file.ExternalObjectStoreFileHandle',\n contentMd5: md5,\n contentSize: blob.size,\n contentType,\n fileKey,\n fileName,\n storageLocationId,\n },\n })) as ExternalObjectStoreFileHandle\n\n return newFileHandle\n },\n })\n}\n"],"mappings":";;;;;AAmBA,SAAgB,EACd,GAKA;CACA,IAAM,EAAE,aAAa,MACnB,GAA6B;AAC/B,QAAO,EAAY;EACjB,GAAG;EACH,YAAY,OAAO,MAAkC;GACnD,IAAM,EACJ,cACA,cACA,eACA,aACA,aACA,gBACA,SACA,qBACA,kBACA,sBACA,kBACA,uBACE,GACE,IAAM,MAAM,EAAa,EAAK;AACpC,GAAI,KACF,GAAe;GAGjB,IAAM,IAAU,GAAG,EAAc,GAAG;AA2BpC,UAzBA,MAAM,EACJ,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACD,EAeM,MAbsB,EAAyB,EACpD,6BAA6B;IAC3B,cACE;IACF,YAAY;IACZ,aAAa,EAAK;IAClB;IACA;IACA;IACA;IACD,EACF,CAAC;;EAIL,CAAC"}
1
+ {"version":3,"file":"useDirectUploadToS3.js","names":[],"sources":["../../../src/synapse-queries/file/useDirectUploadToS3.ts"],"sourcesContent":["import { calculateMd5 } from '@/synapse-client/SynapseClient'\nimport { ExternalObjectStoreFileHandle } from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { FileUploadArgs } from './FileUploadArgs'\nimport { uploadToS3 } from './UploadToS3'\nimport { useCreateExternalFileHandle } from './useFileHandle'\n\ntype UseDirectUploadToS3Args = FileUploadArgs & {\n readonly accessKey: string\n readonly secretKey: string\n readonly bucketName: string\n readonly endpoint: string\n readonly keyPrefixUUID: string\n}\n\n/**\n * Mutation used to directly upload a file to an S3-compatible API and create a\n * Synapse ExternalObjectStoreFileHandle pointing to the uploaded file.\n */\nexport function useDirectUploadToS3(\n options?: UseMutationOptions<\n ExternalObjectStoreFileHandle,\n unknown,\n UseDirectUploadToS3Args\n >,\n) {\n const { mutateAsync: createExternalFileHandle } =\n useCreateExternalFileHandle()\n return useMutation({\n ...options,\n mutationFn: async (args: UseDirectUploadToS3Args) => {\n const {\n accessKey,\n secretKey,\n bucketName,\n endpoint,\n fileName,\n contentType,\n blob,\n progressCallback,\n keyPrefixUUID,\n storageLocationId,\n onMd5Computed,\n abortController,\n } = args\n const md5 = await calculateMd5(blob)\n if (onMd5Computed) {\n onMd5Computed()\n }\n\n const fileKey = `${keyPrefixUUID}/${fileName}`\n\n await uploadToS3(\n blob,\n fileKey,\n endpoint,\n accessKey,\n secretKey,\n bucketName,\n contentType,\n abortController,\n progressCallback,\n )\n\n const newFileHandle = (await createExternalFileHandle({\n externalFileHandleInterface: {\n concreteType:\n 'org.sagebionetworks.repo.model.file.ExternalObjectStoreFileHandle',\n contentMd5: md5,\n contentSize: blob.size,\n contentType,\n fileKey,\n fileName,\n storageLocationId,\n },\n })) as ExternalObjectStoreFileHandle\n\n return newFileHandle\n },\n })\n}\n"],"mappings":";;;;;AAmBA,SAAgB,EACd,GAKA;CACA,IAAM,EAAE,aAAa,MACnB,EAA4B;CAC9B,OAAO,EAAY;EACjB,GAAG;EACH,YAAY,OAAO,MAAkC;GACnD,IAAM,EACJ,cACA,cACA,eACA,aACA,aACA,gBACA,SACA,qBACA,kBACA,sBACA,kBACA,uBACE,GACE,IAAM,MAAM,EAAa,CAAI;GACnC,AAAI,KACF,EAAc;GAGhB,IAAM,IAAU,GAAG,EAAc,GAAG;GA2BpC,OAzBA,MAAM,EACJ,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,CACF,GAeO,MAbsB,EAAyB,EACpD,6BAA6B;IAC3B,cACE;IACF,YAAY;IACZ,aAAa,EAAK;IAClB;IACA;IACA;IACA;GACF,EACF,CAAC;EAGH;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFileHandle.js","names":[],"sources":["../../../src/synapse-queries/file/useFileHandle.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport { PostFileV1ExternalFileHandleRequest } from '@sage-bionetworks/synapse-client'\nimport { useMutation } from '@tanstack/react-query'\n\nexport function useCreateExternalFileHandle() {\n const { synapseClient } = useSynapseContext()\n\n return useMutation({\n mutationFn: (args: PostFileV1ExternalFileHandleRequest) =>\n synapseClient.fileServicesClient.postFileV1ExternalFileHandle(args),\n })\n}\n"],"mappings":";;;;AAIA,SAAgB,IAA8B;CAC5C,IAAM,EAAE,qBAAkB,GAAmB;AAE7C,QAAO,EAAY,EACjB,aAAa,MACX,EAAc,mBAAmB,6BAA6B,EAAK,EACtE,CAAC"}
1
+ {"version":3,"file":"useFileHandle.js","names":[],"sources":["../../../src/synapse-queries/file/useFileHandle.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport { PostFileV1ExternalFileHandleRequest } from '@sage-bionetworks/synapse-client'\nimport { useMutation } from '@tanstack/react-query'\n\nexport function useCreateExternalFileHandle() {\n const { synapseClient } = useSynapseContext()\n\n return useMutation({\n mutationFn: (args: PostFileV1ExternalFileHandleRequest) =>\n synapseClient.fileServicesClient.postFileV1ExternalFileHandle(args),\n })\n}\n"],"mappings":";;;;AAIA,SAAgB,IAA8B;CAC5C,IAAM,EAAE,qBAAkB,EAAkB;CAE5C,OAAO,EAAY,EACjB,aAAa,MACX,EAAc,mBAAmB,6BAA6B,CAAI,EACtE,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFiles.js","names":[],"sources":["../../../src/synapse-queries/file/useFiles.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { fetchBlob, useCreateUrlForData } from '@/utils/hooks'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n BatchFileRequest,\n BatchFileResult,\n FileHandle,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n useQueryClient,\n UseQueryOptions,\n UseQueryResult,\n} from '@tanstack/react-query'\nimport { cloneDeep } from 'lodash-es'\nimport { useEffect } from 'react'\n\nexport type StablePresignedUrl = {\n dataUrl?: string\n queryResult: UseQueryResult<Blob, SynapseClientError>\n}\n\nexport function useGetStablePresignedUrl(\n fileHandleAssociation: FileHandleAssociation,\n forceAnonymous: boolean = false,\n options?: Partial<\n Omit<UseQueryOptions<Blob, SynapseClientError>, 'staleTime'>\n >,\n): StablePresignedUrl | undefined {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const batchFileResult = await SynapseClient.getFiles(\n {\n requestedFiles: [fileHandleAssociation],\n includeFileHandles: false,\n includePreSignedURLs: true,\n includePreviewPreSignedURLs: false,\n },\n forceAnonymous ? undefined : accessToken,\n )\n return await fetchBlob(batchFileResult.requestedFiles[0].preSignedURL!)\n }\n const queryResult = useQuery({\n ...options,\n queryKey: keyFactory.getStablePresignedUrlFromFHAQueryKey(\n fileHandleAssociation,\n forceAnonymous,\n ),\n queryFn,\n staleTime: Infinity,\n })\n const { data: blob, error } = queryResult\n\n useEffect(() => {\n if (error) {\n console.error(\n `Failed to fetch file object. See network log for details: FileHandleAssociation=${JSON.stringify(\n fileHandleAssociation,\n )}`,\n )\n }\n }, [error, fileHandleAssociation])\n return { dataUrl: useCreateUrlForData(blob), queryResult }\n}\n\nexport function useGetPresignedUrlContent(\n fileHandle: FileHandle,\n request: BatchFileRequest,\n maxFileSizeBytes?: number,\n options?: Partial<\n Omit<UseQueryOptions<string, SynapseClientError>, 'staleTime'>\n >,\n) {\n if (request.requestedFiles.length !== 1) {\n console.warn('useGetPresignedUrlContent only supports one file at a time')\n }\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const batchFileResult = await SynapseClient.getFiles(request, accessToken)\n const data = await SynapseClient.getFileHandleContent(\n fileHandle,\n batchFileResult.requestedFiles[0].preSignedURL!,\n maxFileSizeBytes,\n )\n return data\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getPresignedUrlContentQueryKey(\n fileHandle,\n request,\n maxFileSizeBytes,\n ),\n queryFn,\n staleTime: Infinity,\n })\n}\n\nexport function useGetPresignedUrlContentFromFHA(\n fileHandleAssociation: FileHandleAssociation,\n forceAnonymous: boolean = false,\n options?: Partial<\n Omit<UseQueryOptions<string, SynapseClientError>, 'staleTime'>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const batchFileResult = await SynapseClient.getFiles(\n {\n requestedFiles: [fileHandleAssociation],\n includeFileHandles: true,\n includePreSignedURLs: true,\n includePreviewPreSignedURLs: false,\n },\n forceAnonymous ? undefined : accessToken,\n )\n\n const data = await SynapseClient.getFileHandleContent(\n batchFileResult.requestedFiles[0].fileHandle!,\n batchFileResult.requestedFiles[0].preSignedURL!,\n )\n return data\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getPresignedUrlFromFHAContentQueryKey(\n fileHandleAssociation,\n forceAnonymous,\n ),\n queryFn,\n staleTime: Infinity,\n })\n}\n\n/**\n * Get a blob containing the image data for the avatar of a Synapse user. Returns null if the user does not have a profile image.\n */\nexport function useGetProfileImage(\n userId: string,\n options?: Partial<\n Omit<UseQueryOptions<Blob | null, SynapseClientError>, 'staleTime'>\n >,\n) {\n const { keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const presignedUrl =\n await SynapseClient.getProfilePicPreviewPresignedUrl(userId)\n if (presignedUrl) {\n // Fetch the presigned URL right away because it will expire\n const data = await fetch(presignedUrl, {\n method: 'GET',\n mode: 'cors',\n cache: 'no-cache',\n })\n return await data.blob()\n }\n return null\n }\n return useQuery<Blob | null, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getProfileImageQueryKey(userId),\n queryFn,\n staleTime: Infinity,\n })\n}\n\n/**\n * Get a batch of file handle data from the backend.\n *\n * This hook does not support fetching pre-signed URLs. In most web UI cases, you will want to either request the presigned\n * URL upon an invoked action (e.g. a \"download\" button is clicked) or use {@link SynapseClient#getPortalFileHandleServletUrl}\n * @param request\n * @param options\n */\nexport function useGetFileBatch(\n request: BatchFileRequest,\n options?: Partial<UseQueryOptions<BatchFileResult, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n const queryFn = async () => {\n const response = await SynapseClient.getFiles(request, accessToken)\n\n // Update the cache with the individual file handle results, in case this was a batch\n response.requestedFiles.forEach(fileResult => {\n const requestedItem = request.requestedFiles.find(\n fha => fha.fileHandleId === fileResult.fileHandleId,\n )!\n const atomicRequest: BatchFileRequest = {\n ...cloneDeep(request),\n requestedFiles: [requestedItem],\n }\n const atomicResult: BatchFileResult = {\n requestedFiles: [fileResult],\n }\n queryClient.setQueryData(\n keyFactory.getBatchOfFiles(atomicRequest),\n atomicResult,\n )\n })\n return response\n }\n\n if (request.includePreSignedURLs || request.includePreviewPreSignedURLs) {\n // Don't use this hook if you need pre-signed URLs. They expire every 30 seconds, so you will either end up giving the\n // user an expired URL, or making requests to the backend more frequently than necessary.\n throw new Error('useGetFileBatch does not support pre-signed URLs.')\n }\n\n return useQuery<BatchFileResult, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getBatchOfFiles(request),\n queryFn,\n })\n}\n\nexport function useFileContent(\n fileURL: string,\n options?: Partial<UseQueryOptions<string>>,\n) {\n const { keyFactory } = useSynapseContext()\n const queryFn = async () => {\n try {\n if (!fileURL) {\n throw new Error(`File URL must be set`)\n }\n // Fetch the raw file contents from the latest tag\n const fileResponse = await fetch(fileURL)\n if (!fileResponse.ok) {\n throw new Error(`Error fetching file: ${fileResponse.statusText}`)\n }\n\n return await fileResponse.text()\n } catch (error) {\n console.error(error)\n }\n return ''\n }\n return useQuery<string>({\n ...options,\n queryKey: keyFactory.getFileContentKey(fileURL),\n queryFn,\n })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useFiles.js","names":[],"sources":["../../../src/synapse-queries/file/useFiles.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { fetchBlob, useCreateUrlForData } from '@/utils/hooks'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n BatchFileRequest,\n BatchFileResult,\n FileHandle,\n FileHandleAssociation,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n useQueryClient,\n UseQueryOptions,\n UseQueryResult,\n} from '@tanstack/react-query'\nimport { cloneDeep } from 'lodash-es'\nimport { useEffect } from 'react'\n\nexport type StablePresignedUrl = {\n dataUrl?: string\n queryResult: UseQueryResult<Blob, SynapseClientError>\n}\n\nexport function useGetStablePresignedUrl(\n fileHandleAssociation: FileHandleAssociation,\n forceAnonymous: boolean = false,\n options?: Partial<\n Omit<UseQueryOptions<Blob, SynapseClientError>, 'staleTime'>\n >,\n): StablePresignedUrl | undefined {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const batchFileResult = await SynapseClient.getFiles(\n {\n requestedFiles: [fileHandleAssociation],\n includeFileHandles: false,\n includePreSignedURLs: true,\n includePreviewPreSignedURLs: false,\n },\n forceAnonymous ? undefined : accessToken,\n )\n return await fetchBlob(batchFileResult.requestedFiles[0].preSignedURL!)\n }\n const queryResult = useQuery({\n ...options,\n queryKey: keyFactory.getStablePresignedUrlFromFHAQueryKey(\n fileHandleAssociation,\n forceAnonymous,\n ),\n queryFn,\n staleTime: Infinity,\n })\n const { data: blob, error } = queryResult\n\n useEffect(() => {\n if (error) {\n console.error(\n `Failed to fetch file object. See network log for details: FileHandleAssociation=${JSON.stringify(\n fileHandleAssociation,\n )}`,\n )\n }\n }, [error, fileHandleAssociation])\n return { dataUrl: useCreateUrlForData(blob), queryResult }\n}\n\nexport function useGetPresignedUrlContent(\n fileHandle: FileHandle,\n request: BatchFileRequest,\n maxFileSizeBytes?: number,\n options?: Partial<\n Omit<UseQueryOptions<string, SynapseClientError>, 'staleTime'>\n >,\n) {\n if (request.requestedFiles.length !== 1) {\n console.warn('useGetPresignedUrlContent only supports one file at a time')\n }\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const batchFileResult = await SynapseClient.getFiles(request, accessToken)\n const data = await SynapseClient.getFileHandleContent(\n fileHandle,\n batchFileResult.requestedFiles[0].preSignedURL!,\n maxFileSizeBytes,\n )\n return data\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getPresignedUrlContentQueryKey(\n fileHandle,\n request,\n maxFileSizeBytes,\n ),\n queryFn,\n staleTime: Infinity,\n })\n}\n\nexport function useGetPresignedUrlContentFromFHA(\n fileHandleAssociation: FileHandleAssociation,\n forceAnonymous: boolean = false,\n options?: Partial<\n Omit<UseQueryOptions<string, SynapseClientError>, 'staleTime'>\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const batchFileResult = await SynapseClient.getFiles(\n {\n requestedFiles: [fileHandleAssociation],\n includeFileHandles: true,\n includePreSignedURLs: true,\n includePreviewPreSignedURLs: false,\n },\n forceAnonymous ? undefined : accessToken,\n )\n\n const data = await SynapseClient.getFileHandleContent(\n batchFileResult.requestedFiles[0].fileHandle!,\n batchFileResult.requestedFiles[0].preSignedURL!,\n )\n return data\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getPresignedUrlFromFHAContentQueryKey(\n fileHandleAssociation,\n forceAnonymous,\n ),\n queryFn,\n staleTime: Infinity,\n })\n}\n\n/**\n * Get a blob containing the image data for the avatar of a Synapse user. Returns null if the user does not have a profile image.\n */\nexport function useGetProfileImage(\n userId: string,\n options?: Partial<\n Omit<UseQueryOptions<Blob | null, SynapseClientError>, 'staleTime'>\n >,\n) {\n const { keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const presignedUrl =\n await SynapseClient.getProfilePicPreviewPresignedUrl(userId)\n if (presignedUrl) {\n // Fetch the presigned URL right away because it will expire\n const data = await fetch(presignedUrl, {\n method: 'GET',\n mode: 'cors',\n cache: 'no-cache',\n })\n return await data.blob()\n }\n return null\n }\n return useQuery<Blob | null, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getProfileImageQueryKey(userId),\n queryFn,\n staleTime: Infinity,\n })\n}\n\n/**\n * Get a batch of file handle data from the backend.\n *\n * This hook does not support fetching pre-signed URLs. In most web UI cases, you will want to either request the presigned\n * URL upon an invoked action (e.g. a \"download\" button is clicked) or use {@link SynapseClient#getPortalFileHandleServletUrl}\n * @param request\n * @param options\n */\nexport function useGetFileBatch(\n request: BatchFileRequest,\n options?: Partial<UseQueryOptions<BatchFileResult, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n const queryClient = useQueryClient()\n const queryFn = async () => {\n const response = await SynapseClient.getFiles(request, accessToken)\n\n // Update the cache with the individual file handle results, in case this was a batch\n response.requestedFiles.forEach(fileResult => {\n const requestedItem = request.requestedFiles.find(\n fha => fha.fileHandleId === fileResult.fileHandleId,\n )!\n const atomicRequest: BatchFileRequest = {\n ...cloneDeep(request),\n requestedFiles: [requestedItem],\n }\n const atomicResult: BatchFileResult = {\n requestedFiles: [fileResult],\n }\n queryClient.setQueryData(\n keyFactory.getBatchOfFiles(atomicRequest),\n atomicResult,\n )\n })\n return response\n }\n\n if (request.includePreSignedURLs || request.includePreviewPreSignedURLs) {\n // Don't use this hook if you need pre-signed URLs. They expire every 30 seconds, so you will either end up giving the\n // user an expired URL, or making requests to the backend more frequently than necessary.\n throw new Error('useGetFileBatch does not support pre-signed URLs.')\n }\n\n return useQuery<BatchFileResult, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getBatchOfFiles(request),\n queryFn,\n })\n}\n\nexport function useFileContent(\n fileURL: string,\n options?: Partial<UseQueryOptions<string>>,\n) {\n const { keyFactory } = useSynapseContext()\n const queryFn = async () => {\n try {\n if (!fileURL) {\n throw new Error(`File URL must be set`)\n }\n // Fetch the raw file contents from the latest tag\n const fileResponse = await fetch(fileURL)\n if (!fileResponse.ok) {\n throw new Error(`Error fetching file: ${fileResponse.statusText}`)\n }\n\n return await fileResponse.text()\n } catch (error) {\n console.error(error)\n }\n return ''\n }\n return useQuery<string>({\n ...options,\n queryKey: keyFactory.getFileContentKey(fileURL),\n queryFn,\n })\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSynapseMultipartUpload.js","names":[],"sources":["../../../src/synapse-queries/file/useSynapseMultipartUpload.ts"],"sourcesContent":["import { uploadFile } from '@/synapse-client/SynapseClient'\nimport { useSynapseContext } from '@/utils/index'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { FileUploadComplete } from '@sage-bionetworks/synapse-types'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { FileUploadArgs } from './FileUploadArgs'\n\ntype UseSynapseMultipartUploadArgs = FileUploadArgs & {\n readonly storageLocationId: number | undefined\n}\n\nexport function useSynapseMultipartUpload(\n options?: UseMutationOptions<\n FileUploadComplete,\n SynapseClientError,\n UseSynapseMultipartUploadArgs\n >,\n) {\n const { accessToken } = useSynapseContext()\n return useMutation({\n ...options,\n mutationFn: (args: UseSynapseMultipartUploadArgs) => {\n const {\n blob,\n fileName,\n storageLocationId,\n contentType,\n progressCallback,\n abortController,\n onMd5Computed,\n } = args\n\n return uploadFile(\n accessToken,\n fileName,\n blob,\n storageLocationId,\n contentType,\n progressCallback,\n undefined,\n onMd5Computed,\n abortController,\n )\n },\n })\n}\n"],"mappings":";;;;;AAWA,SAAgB,EACd,GAKA;CACA,IAAM,EAAE,mBAAgB,GAAmB;AAC3C,QAAO,EAAY;EACjB,GAAG;EACH,aAAa,MAAwC;GACnD,IAAM,EACJ,SACA,aACA,sBACA,gBACA,qBACA,oBACA,qBACE;AAEJ,UAAO,EACL,GACA,GACA,GACA,GACA,GACA,GACA,KAAA,GACA,GACA,EACD;;EAEJ,CAAC"}
1
+ {"version":3,"file":"useSynapseMultipartUpload.js","names":[],"sources":["../../../src/synapse-queries/file/useSynapseMultipartUpload.ts"],"sourcesContent":["import { uploadFile } from '@/synapse-client/SynapseClient'\nimport { useSynapseContext } from '@/utils/index'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { FileUploadComplete } from '@sage-bionetworks/synapse-types'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { FileUploadArgs } from './FileUploadArgs'\n\ntype UseSynapseMultipartUploadArgs = FileUploadArgs & {\n readonly storageLocationId: number | undefined\n}\n\nexport function useSynapseMultipartUpload(\n options?: UseMutationOptions<\n FileUploadComplete,\n SynapseClientError,\n UseSynapseMultipartUploadArgs\n >,\n) {\n const { accessToken } = useSynapseContext()\n return useMutation({\n ...options,\n mutationFn: (args: UseSynapseMultipartUploadArgs) => {\n const {\n blob,\n fileName,\n storageLocationId,\n contentType,\n progressCallback,\n abortController,\n onMd5Computed,\n } = args\n\n return uploadFile(\n accessToken,\n fileName,\n blob,\n storageLocationId,\n contentType,\n progressCallback,\n undefined,\n onMd5Computed,\n abortController,\n )\n },\n })\n}\n"],"mappings":";;;;;AAWA,SAAgB,EACd,GAKA;CACA,IAAM,EAAE,mBAAgB,EAAkB;CAC1C,OAAO,EAAY;EACjB,GAAG;EACH,aAAa,MAAwC;GACnD,IAAM,EACJ,SACA,aACA,sBACA,gBACA,qBACA,oBACA,qBACE;GAEJ,OAAO,EACL,GACA,GACA,GACA,GACA,GACA,GACA,KAAA,GACA,GACA,CACF;EACF;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useUploadDestination.js","names":[],"sources":["../../../src/synapse-queries/file/useUploadDestination.ts"],"sourcesContent":["import { SynapseClientError, useSynapseContext } from '@/utils'\nimport { UploadDestination } from '@sage-bionetworks/synapse-client'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetDefaultUploadDestination(\n containerEntityId: string,\n options?: Partial<UseQueryOptions<UploadDestination, SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getDefaultUploadDestinationQueryKey(containerEntityId),\n queryFn: () =>\n synapseClient.fileServicesClient.getFileV1EntityIdUploadDestination({\n id: containerEntityId,\n }),\n })\n}\n\nexport function useGetUploadDestinationForStorageLocation(\n parentId: string,\n storageLocationId: number,\n options?: Partial<UseQueryOptions<UploadDestination, SynapseClientError>>,\n) {\n const { synapseClient, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getUploadDestinationForStorageLocationQueryKey(\n parentId,\n storageLocationId,\n ),\n\n queryFn: () =>\n synapseClient.fileServicesClient.getFileV1EntityIdUploadDestinationStorageLocationId(\n { id: parentId, storageLocationId },\n ),\n })\n}\n"],"mappings":";;;;AAIA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,eAAY,qBAAkB,GAAmB;AACzD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,oCAAoC,EAAkB;EAC3E,eACE,EAAc,mBAAmB,mCAAmC,EAClE,IAAI,GACL,CAAC;EACL,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,EAAE,kBAAe,kBAAe,GAAmB;AACzD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,+CACnB,GACA,EACD;EAED,eACE,EAAc,mBAAmB,oDAC/B;GAAE,IAAI;GAAU;GAAmB,CACpC;EACJ,CAAC"}
1
+ {"version":3,"file":"useUploadDestination.js","names":[],"sources":["../../../src/synapse-queries/file/useUploadDestination.ts"],"sourcesContent":["import { SynapseClientError, useSynapseContext } from '@/utils'\nimport { UploadDestination } from '@sage-bionetworks/synapse-client'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nexport function useGetDefaultUploadDestination(\n containerEntityId: string,\n options?: Partial<UseQueryOptions<UploadDestination, SynapseClientError>>,\n) {\n const { keyFactory, synapseClient } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getDefaultUploadDestinationQueryKey(containerEntityId),\n queryFn: () =>\n synapseClient.fileServicesClient.getFileV1EntityIdUploadDestination({\n id: containerEntityId,\n }),\n })\n}\n\nexport function useGetUploadDestinationForStorageLocation(\n parentId: string,\n storageLocationId: number,\n options?: Partial<UseQueryOptions<UploadDestination, SynapseClientError>>,\n) {\n const { synapseClient, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getUploadDestinationForStorageLocationQueryKey(\n parentId,\n storageLocationId,\n ),\n\n queryFn: () =>\n synapseClient.fileServicesClient.getFileV1EntityIdUploadDestinationStorageLocationId(\n { id: parentId, storageLocationId },\n ),\n })\n}\n"],"mappings":";;;;AAIA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,eAAY,qBAAkB,EAAkB;CACxD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,oCAAoC,CAAiB;EAC1E,eACE,EAAc,mBAAmB,mCAAmC,EAClE,IAAI,EACN,CAAC;CACL,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,EAAE,kBAAe,kBAAe,EAAkB;CACxD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,+CACnB,GACA,CACF;EAEA,eACE,EAAc,mBAAmB,oDAC/B;GAAE,IAAI;GAAU;EAAkB,CACpC;CACJ,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useForum.js","names":[],"sources":["../../../src/synapse-queries/forum/useForum.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport {\n DiscussionSearchRequest,\n DiscussionSearchResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n DiscussionFilter,\n DiscussionThreadBundle,\n DiscussionThreadOrder,\n Forum,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetModerators(\n forumId: string,\n options?: Partial<UseQueryOptions<string[], SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getForumModeratorsQueryKey(forumId),\n queryFn: () => SynapseClient.getAllModerators(accessToken, forumId),\n })\n}\n\nexport function useGetForumMetadata(\n forumId: string,\n options?: Partial<UseQueryOptions<Forum, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getForumMetadataQueryKey(forumId),\n queryFn: () => SynapseClient.getForumMetadata(accessToken, forumId),\n })\n}\n\nexport function useGetForumThreadsInfinite<\n TData = InfiniteData<PaginatedResults<DiscussionThreadBundle>>,\n>(\n forumId: string,\n limit: number,\n sort: DiscussionThreadOrder,\n ascending: boolean,\n filter?: DiscussionFilter,\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<DiscussionThreadBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n PaginatedResults<DiscussionThreadBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getForumThreadsQueryKey(\n forumId,\n limit,\n sort,\n ascending,\n filter,\n ),\n queryFn: async context => {\n return SynapseClient.getForumThreads(\n accessToken,\n forumId,\n context.pageParam,\n limit,\n sort,\n ascending,\n filter,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useSearchForumInfinite<\n TData = InfiniteData<DiscussionSearchResponse>,\n>(\n forumId: string,\n discussionSearchRequest: Omit<DiscussionSearchRequest, 'nextPageToken'>,\n options?: Partial<\n UseInfiniteQueryOptions<\n DiscussionSearchResponse,\n SynapseClientError,\n TData,\n QueryKey,\n DiscussionSearchRequest['nextPageToken']\n >\n >,\n) {\n const { synapseClient, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n DiscussionSearchResponse,\n SynapseClientError,\n TData,\n QueryKey,\n DiscussionSearchRequest['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getForumSearchQueryKey(\n forumId,\n discussionSearchRequest,\n ),\n queryFn: context =>\n synapseClient.discussionServicesClient.postRepoV1ForumForumIdSearch({\n forumId,\n discussionSearchRequest: {\n ...discussionSearchRequest,\n nextPageToken: context.pageParam,\n },\n }),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n"],"mappings":";;;;;;AAwBA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,2BAA2B,EAAQ;EACxD,eAAe,EAAc,iBAAiB,GAAa,EAAQ;EACpE,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,yBAAyB,EAAQ;EACtD,eAAe,EAAc,iBAAiB,GAAa,EAAQ;EACpE,CAAC;;AAGJ,SAAgB,EAGd,GACA,GACA,GACA,GACA,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,wBACnB,GACA,GACA,GACA,GACA,EACD;EACD,SAAS,OAAM,MACN,EAAc,gBACnB,GACA,GACA,EAAQ,WACR,GACA,GACA,GACA,EACD;EAEH,kBAAkB,KAAA;EAClB,kBAAkB;EACnB,CAAC;;AAGJ,SAAgB,EAGd,GACA,GACA,GASA;CACA,IAAM,EAAE,kBAAe,kBAAe,GAAmB;AACzD,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,uBACnB,GACA,EACD;EACD,UAAS,MACP,EAAc,yBAAyB,6BAA6B;GAClE;GACA,yBAAyB;IACvB,GAAG;IACH,eAAe,EAAQ;IACxB;GACF,CAAC;EACJ,kBAAkB,KAAA;EAClB,mBAAkB,MAAQ,EAAK;EAChC,CAAC"}
1
+ {"version":3,"file":"useForum.js","names":[],"sources":["../../../src/synapse-queries/forum/useForum.ts"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport {\n DiscussionSearchRequest,\n DiscussionSearchResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n DiscussionFilter,\n DiscussionThreadBundle,\n DiscussionThreadOrder,\n Forum,\n PaginatedResults,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n useQuery,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { getNextPageParamForPaginatedResults } from '../InfiniteQueryUtils'\n\nexport function useGetModerators(\n forumId: string,\n options?: Partial<UseQueryOptions<string[], SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getForumModeratorsQueryKey(forumId),\n queryFn: () => SynapseClient.getAllModerators(accessToken, forumId),\n })\n}\n\nexport function useGetForumMetadata(\n forumId: string,\n options?: Partial<UseQueryOptions<Forum, SynapseClientError>>,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useQuery({\n ...options,\n queryKey: keyFactory.getForumMetadataQueryKey(forumId),\n queryFn: () => SynapseClient.getForumMetadata(accessToken, forumId),\n })\n}\n\nexport function useGetForumThreadsInfinite<\n TData = InfiniteData<PaginatedResults<DiscussionThreadBundle>>,\n>(\n forumId: string,\n limit: number,\n sort: DiscussionThreadOrder,\n ascending: boolean,\n filter?: DiscussionFilter,\n options?: Partial<\n UseInfiniteQueryOptions<\n PaginatedResults<DiscussionThreadBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >\n >,\n) {\n const { accessToken, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n PaginatedResults<DiscussionThreadBundle>,\n SynapseClientError,\n TData,\n QueryKey,\n number | undefined\n >({\n ...options,\n queryKey: keyFactory.getForumThreadsQueryKey(\n forumId,\n limit,\n sort,\n ascending,\n filter,\n ),\n queryFn: async context => {\n return SynapseClient.getForumThreads(\n accessToken,\n forumId,\n context.pageParam,\n limit,\n sort,\n ascending,\n filter,\n )\n },\n initialPageParam: undefined,\n getNextPageParam: getNextPageParamForPaginatedResults,\n })\n}\n\nexport function useSearchForumInfinite<\n TData = InfiniteData<DiscussionSearchResponse>,\n>(\n forumId: string,\n discussionSearchRequest: Omit<DiscussionSearchRequest, 'nextPageToken'>,\n options?: Partial<\n UseInfiniteQueryOptions<\n DiscussionSearchResponse,\n SynapseClientError,\n TData,\n QueryKey,\n DiscussionSearchRequest['nextPageToken']\n >\n >,\n) {\n const { synapseClient, keyFactory } = useSynapseContext()\n return useInfiniteQuery<\n DiscussionSearchResponse,\n SynapseClientError,\n TData,\n QueryKey,\n DiscussionSearchRequest['nextPageToken']\n >({\n ...options,\n queryKey: keyFactory.getForumSearchQueryKey(\n forumId,\n discussionSearchRequest,\n ),\n queryFn: context =>\n synapseClient.discussionServicesClient.postRepoV1ForumForumIdSearch({\n forumId,\n discussionSearchRequest: {\n ...discussionSearchRequest,\n nextPageToken: context.pageParam,\n },\n }),\n initialPageParam: undefined,\n getNextPageParam: page => page.nextPageToken,\n })\n}\n"],"mappings":";;;;;;AAwBA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,2BAA2B,CAAO;EACvD,eAAe,EAAc,iBAAiB,GAAa,CAAO;CACpE,CAAC;AACH;AAEA,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAAS;EACd,GAAG;EACH,UAAU,EAAW,yBAAyB,CAAO;EACrD,eAAe,EAAc,iBAAiB,GAAa,CAAO;CACpE,CAAC;AACH;AAEA,SAAgB,EAGd,GACA,GACA,GACA,GACA,GACA,GASA;CACA,IAAM,EAAE,gBAAa,kBAAe,EAAkB;CACtD,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,wBACnB,GACA,GACA,GACA,GACA,CACF;EACA,SAAS,OAAM,MACN,EAAc,gBACnB,GACA,GACA,EAAQ,WACR,GACA,GACA,GACA,CACF;EAEF,kBAAkB,KAAA;EAClB,kBAAkB;CACpB,CAAC;AACH;AAEA,SAAgB,EAGd,GACA,GACA,GASA;CACA,IAAM,EAAE,kBAAe,kBAAe,EAAkB;CACxD,OAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,uBACnB,GACA,CACF;EACA,UAAS,MACP,EAAc,yBAAyB,6BAA6B;GAClE;GACA,yBAAyB;IACvB,GAAG;IACH,eAAe,EAAQ;GACzB;EACF,CAAC;EACH,kBAAkB,KAAA;EAClB,mBAAkB,MAAQ,EAAK;CACjC,CAAC;AACH"}
@@ -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,GAAmB;AACvD,QAAO,EAML;EACA,GAAG;EACH,UAAU,EAAW,mBACnB,GACA,GACA,GACA,GACA,EACD;EACD,SAAS,OAAM,MACN,EAAc,WACnB,GACA,GACA,GACA,EAAQ,WACR,GACA,GACA,EACD;EAEH,kBAAkB,KAAA;EAClB,kBAAkB;EACnB,CAAC;;AAGJ,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,gBAAa,kBAAe,GAAmB,EACjD,IAAU,YAAY;EAC1B,IAAM,IAAa,MAAM,EAAc,mBACrC,EAAM,YACN,EACD;AASD,UAAO,MARY,MAAM,EAAW,YAAY;GAC9C,QAAQ;GACR,SAAS;IACP,QAAQ;IACR,kCAAkC;IAClC,gBAAgB;IACjB;GACF,CAAC,EACU,MAAM;;AAEpB,QAAO,EAAqC;EAC1C,GAAG;EACH,UAAU,EAAW,iBACnB,EAAM,UACN,EAAM,IACN,EAAM,WACP;EACD;EACD,CAAC;;AAGJ,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AACvD,QAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,UAAU,GAAS,EAAY;EAC/C,WAAW,OAAO,GAAU,GAAW,MAAQ;AAa7C,GAZA,MAAM,QAAQ,IAAI,CAChB,EAAY,kBAAkB,EAC5B,UAAU,EAAW,sBAAsB,EAAS,SAAS,EAC9D,CAAC,EAEF,EAAY,kBAAkB,EAC5B,UAAU,EAAW,uBACnB,EAAS,UACT,EAAuB,OACxB,EACF,CAAC,CACH,CAAC,EACE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,EAAI;;EAGtD,CAAC;;AAGJ,SAAgB,EACd,GAKA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAIL;EACA,GAAG;EACH,aAAa,MACX,EAAc,SAAS,GAAS,EAAY;EAC9C,WAAW,OAAO,GAAU,GAAW,MAAQ;AAK7C,GAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAS,SAAS,EAC9D,CAAC,EAEE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAU,GAAW,EAAI;;EAGtD,CAAC;;AAGJ,SAAgB,EACd,GACA;CACA,IAAM,IAAc,GAAgB,EAC9B,EAAE,gBAAa,kBAAe,GAAmB;AAEvD,QAAO,EAA6C;EAClD,GAAG;EACH,aAAa,MACX,EAAc,YAAY,GAAa,EAAM,QAAQ;EACvD,WAAW,OAAO,GAAc,GAAW,MAAQ;AAKjD,GAJA,MAAM,EAAY,kBAAkB,EAClC,UAAU,EAAW,sBAAsB,EAAU,SAAS,EAC/D,CAAC,EAEE,GAAS,aACX,MAAM,EAAQ,UAAU,GAAc,GAAW,EAAI;;EAG1D,CAAC"}
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 +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) => {\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 +1 @@
1
- {"version":3,"file":"useGithub.js","names":[],"sources":["../../../src/synapse-queries/github/useGithub.ts"],"sourcesContent":["import { SynapseClientError, useSynapseContext } from '@/utils'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nconst GITHUB_API_URL = 'https://api.github.com/repos'\n\nexport function useLatestTag(\n repoOwner: string,\n repoName: string,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const response = await fetch(\n `${GITHUB_API_URL}/${repoOwner}/${repoName}/tags`,\n )\n if (!response.ok) {\n throw new Error(`Error fetching tags: ${response.statusText}`)\n }\n const tags = await response.json()\n if (tags.length === 0) {\n throw new Error('No tags found.')\n }\n\n const latestTag = tags[0].name\n return latestTag\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getGithubLatestTagKey(repoOwner, repoName),\n queryFn,\n })\n}\n"],"mappings":";;;;AAGA,IAAM,IAAiB;AAEvB,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,EAAE,kBAAe,GAAmB,EACpC,IAAU,YAAY;EAC1B,IAAM,IAAW,MAAM,MACrB,GAAG,EAAe,GAAG,EAAU,GAAG,EAAS,OAC5C;AACD,MAAI,CAAC,EAAS,GACZ,OAAU,MAAM,wBAAwB,EAAS,aAAa;EAEhE,IAAM,IAAO,MAAM,EAAS,MAAM;AAClC,MAAI,EAAK,WAAW,EAClB,OAAU,MAAM,iBAAiB;AAInC,SADkB,EAAK,GAAG;;AAG5B,QAAO,EAAqC;EAC1C,GAAG;EACH,UAAU,EAAW,sBAAsB,GAAW,EAAS;EAC/D;EACD,CAAC"}
1
+ {"version":3,"file":"useGithub.js","names":[],"sources":["../../../src/synapse-queries/github/useGithub.ts"],"sourcesContent":["import { SynapseClientError, useSynapseContext } from '@/utils'\nimport { useQuery, UseQueryOptions } from '@tanstack/react-query'\n\nconst GITHUB_API_URL = 'https://api.github.com/repos'\n\nexport function useLatestTag(\n repoOwner: string,\n repoName: string,\n options?: Partial<UseQueryOptions<string, SynapseClientError>>,\n) {\n const { keyFactory } = useSynapseContext()\n const queryFn = async () => {\n const response = await fetch(\n `${GITHUB_API_URL}/${repoOwner}/${repoName}/tags`,\n )\n if (!response.ok) {\n throw new Error(`Error fetching tags: ${response.statusText}`)\n }\n const tags = await response.json()\n if (tags.length === 0) {\n throw new Error('No tags found.')\n }\n\n const latestTag = tags[0].name\n return latestTag\n }\n return useQuery<string, SynapseClientError>({\n ...options,\n queryKey: keyFactory.getGithubLatestTagKey(repoOwner, repoName),\n queryFn,\n })\n}\n"],"mappings":";;;;AAGA,IAAM,IAAiB;AAEvB,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,EAAE,kBAAe,EAAkB,GACnC,IAAU,YAAY;EAC1B,IAAM,IAAW,MAAM,MACrB,GAAG,EAAe,GAAG,EAAU,GAAG,EAAS,MAC7C;EACA,IAAI,CAAC,EAAS,IACZ,MAAU,MAAM,wBAAwB,EAAS,YAAY;EAE/D,IAAM,IAAO,MAAM,EAAS,KAAK;EACjC,IAAI,EAAK,WAAW,GAClB,MAAU,MAAM,gBAAgB;EAIlC,OADkB,EAAK,GAAG;CAE5B;CACA,OAAO,EAAqC;EAC1C,GAAG;EACH,UAAU,EAAW,sBAAsB,GAAW,CAAQ;EAC9D;CACF,CAAC;AACH"}
@@ -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 { 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 }\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":";;;;;AAyBA,SAAgB,EACd,GAGA;CACA,IAAM,EAAE,aAAa,MAAsB,GAAqB,EAC1D,CAAC,GAAc,KAAmB,EAAwB,KAAK,EAE/D,IAAoB,QAAkB;AAC1C,IAAgB,KAAK;IACpB,EAAE,CAAC;AAwBN,QAAO;EAAE,GAtBQ,EAAY;GAC3B,OAAO;GACP,aAAY,MACV,KAAK,IAAI,IAAU,IAAI,KAAK,IAAU,MAAO,KAAM,KAAK,IAAK;GAC/D,YAAY,OAAO,EACjB,cACA,cACA,0BAC8B;AAC9B,QAAI,CAAC,EAAW,OAAU,MAAM,wBAAwB;IACxD,IAAM,IAAM,MAAM,EAAkB;KAAE;KAAW;KAAW,CAAC;AAG7D,WAFA,EAAgB,EAAI,EAEb,IAAI,EAAkB;KAC3B;KACA;KACA,GAAI,KAAoB,EAAE;KAC3B,CAAC;;GAEJ,GAAG;GACJ,CAEW;EAAU;EAAc;EAAmB"}
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 { 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 }\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":";;;;;AAyBA,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 +1 @@
1
- {"version":3,"file":"useExportGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useExportGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n DownloadFromGridRequest,\n DownloadFromGridResult,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useExportGridAsCsv(\n options?: Partial<\n UseMutationOptions<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >({\n ...options,\n mutationFn: async downloadFromGridRequest => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridDownloadCsvAsyncStart(\n {\n downloadFromGridRequest,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as DownloadFromGridResult\n },\n })\n}\n"],"mappings":";;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,GAAmB;AAE7C,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAA2B;GAC3C,IAAM,IACJ,MAAM,EAAc,mBAAmB,oCACrC,EACE,4BACD,CACF;AASH,WAAO,MAPwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,OACnB,CACF,CACF,EACuB;;EAE3B,CAAC"}
1
+ {"version":3,"file":"useExportGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useExportGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n DownloadFromGridRequest,\n DownloadFromGridResult,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useExportGridAsCsv(\n options?: Partial<\n UseMutationOptions<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n DownloadFromGridResult,\n SynapseClientError,\n DownloadFromGridRequest\n >({\n ...options,\n mutationFn: async downloadFromGridRequest => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridDownloadCsvAsyncStart(\n {\n downloadFromGridRequest,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as DownloadFromGridResult\n },\n })\n}\n"],"mappings":";;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,EAAkB;CAE5C,OAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAA2B;GAC3C,IAAM,IACJ,MAAM,EAAc,mBAAmB,oCACrC,EACE,2BACF,CACF;GASF,QAAO,MAPwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,MACpB,CACF,CACF,GACwB;EAC1B;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGridPresignedUrl.js","names":[],"sources":["../../../src/synapse-queries/grid/useGridPresignedUrl.ts"],"sourcesContent":["import { useMutation } from '@tanstack/react-query'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\n\nexport function useGridPresignedUrl() {\n const { synapseClient } = useSynapseContext()\n return useMutation<string, unknown, { sessionId: string; replicaId: number }>(\n {\n mutationFn: async ({ sessionId, replicaId }) => {\n const { presignedUrl } =\n await synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdPresignedUrl(\n {\n sessionId,\n createGridPresignedUrlRequest: {\n gridSessionId: sessionId,\n replicaId,\n },\n },\n )\n return presignedUrl!\n },\n },\n )\n}\n\nexport default useGridPresignedUrl\n"],"mappings":";;;AAGA,SAAgB,IAAsB;CACpC,IAAM,EAAE,qBAAkB,GAAmB;AAC7C,QAAO,EACL,EACE,YAAY,OAAO,EAAE,cAAW,mBAAgB;EAC9C,IAAM,EAAE,oBACN,MAAM,EAAc,mBAAmB,2CACrC;GACE;GACA,+BAA+B;IAC7B,eAAe;IACf;IACD;GACF,CACF;AACH,SAAO;IAEV,CACF"}
1
+ {"version":3,"file":"useGridPresignedUrl.js","names":[],"sources":["../../../src/synapse-queries/grid/useGridPresignedUrl.ts"],"sourcesContent":["import { useMutation } from '@tanstack/react-query'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\n\nexport function useGridPresignedUrl() {\n const { synapseClient } = useSynapseContext()\n return useMutation<string, unknown, { sessionId: string; replicaId: number }>(\n {\n mutationFn: async ({ sessionId, replicaId }) => {\n const { presignedUrl } =\n await synapseClient.gridServicesClient.postRepoV1GridSessionSessionIdPresignedUrl(\n {\n sessionId,\n createGridPresignedUrlRequest: {\n gridSessionId: sessionId,\n replicaId,\n },\n },\n )\n return presignedUrl!\n },\n },\n )\n}\n\nexport default useGridPresignedUrl\n"],"mappings":";;;AAGA,SAAgB,IAAsB;CACpC,IAAM,EAAE,qBAAkB,EAAkB;CAC5C,OAAO,EACL,EACE,YAAY,OAAO,EAAE,cAAW,mBAAgB;EAC9C,IAAM,EAAE,oBACN,MAAM,EAAc,mBAAmB,2CACrC;GACE;GACA,+BAA+B;IAC7B,eAAe;IACf;GACF;EACF,CACF;EACF,OAAO;CACT,EACF,CACF;AACF"}
@@ -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":"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"}
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useImportCsvIntoGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useImportCsvIntoGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport {\n GridCsvImportRequest,\n GridCsvImportResponse,\n SynapseClientError,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useImportCsvIntoGrid(\n options?: Partial<\n UseMutationOptions<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >({\n ...options,\n mutationFn: async request => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridImportCsvAsyncStart(\n {\n gridCsvImportRequest: request,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as unknown as GridCsvImportResponse\n },\n })\n}\n"],"mappings":";;;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,GAAmB;AAE7C,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAAW;GAC3B,IAAM,IACJ,MAAM,EAAc,mBAAmB,kCACrC,EACE,sBAAsB,GACvB,CACF;AASH,WAAO,MAPwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,OACnB,CACF,CACF,EACuB;;EAE3B,CAAC"}
1
+ {"version":3,"file":"useImportCsvIntoGrid.js","names":[],"sources":["../../../src/synapse-queries/grid/useImportCsvIntoGrid.ts"],"sourcesContent":["import { useSynapseContext } from '@/utils/index'\nimport {\n GridCsvImportRequest,\n GridCsvImportResponse,\n SynapseClientError,\n waitForAsyncResult,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\n\nexport function useImportCsvIntoGrid(\n options?: Partial<\n UseMutationOptions<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >\n >,\n) {\n const { synapseClient } = useSynapseContext()\n\n return useMutation<\n GridCsvImportResponse,\n SynapseClientError,\n GridCsvImportRequest\n >({\n ...options,\n mutationFn: async request => {\n const asyncJobId =\n await synapseClient.gridServicesClient.postRepoV1GridImportCsvAsyncStart(\n {\n gridCsvImportRequest: request,\n },\n )\n\n const asyncJobResponse = await waitForAsyncResult(() =>\n synapseClient.asynchronousJobServicesClient.getRepoV1AsynchronousJobJobId(\n {\n jobId: asyncJobId.token!,\n },\n ),\n )\n return asyncJobResponse.responseBody as unknown as GridCsvImportResponse\n },\n })\n}\n"],"mappings":";;;;;AASA,SAAgB,EACd,GAOA;CACA,IAAM,EAAE,qBAAkB,EAAkB;CAE5C,OAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAM,MAAW;GAC3B,IAAM,IACJ,MAAM,EAAc,mBAAmB,kCACrC,EACE,sBAAsB,EACxB,CACF;GASF,QAAO,MAPwB,QAC7B,EAAc,8BAA8B,8BAC1C,EACE,OAAO,EAAW,MACpB,CACF,CACF,GACwB;EAC1B;CACF,CAAC;AACH"}