synapse-react-client 4.0.19 → 4.0.21

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 (1619) 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/CardConfiguration.d.ts +2 -0
  300. package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
  301. package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
  302. package/dist/components/CardContainer/CardContainer.js +3 -3
  303. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  304. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +1 -0
  305. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  306. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  307. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  308. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  309. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  310. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  311. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  312. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  313. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  314. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  315. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  316. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  317. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  321. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  322. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  323. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  324. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  325. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  326. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  330. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  331. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  332. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  333. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  334. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  335. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  336. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  337. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  338. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  339. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  340. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  341. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  342. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  343. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  344. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  345. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  346. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  347. package/dist/components/ComponentCollapse.js.map +1 -1
  348. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  349. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  350. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  351. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  352. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  353. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  354. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  355. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  356. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  357. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  358. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  359. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  360. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  361. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  362. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  363. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  364. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  365. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  366. package/dist/components/DataExplorer/DataExplorer.css +1 -1
  367. package/dist/components/DataExplorer/DataExplorer.js +28 -31
  368. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  369. package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
  370. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
  371. package/dist/components/DataExplorer/DataExplorer.module.scss +26 -6
  372. package/dist/components/DataGrid/DataGrid.js +72 -72
  373. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  374. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  375. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  376. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  377. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  378. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  379. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  380. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  381. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  382. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  383. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  384. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  385. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  386. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  387. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  388. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  389. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  390. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts +5 -3
  391. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  392. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +46 -47
  393. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  394. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  395. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  396. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  397. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  398. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  399. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  400. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  401. package/dist/components/DataGrid/hooks/useColumnResizeHandles.d.ts.map +1 -1
  402. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +3 -1
  403. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  404. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  405. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  406. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  407. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  408. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  409. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  410. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  411. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  412. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  413. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  414. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  415. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  416. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  417. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  418. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  419. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  420. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  421. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  422. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  423. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  424. package/dist/components/DataGrid/utils/columnFactory.js +1 -0
  425. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  426. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  427. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  428. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  429. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  430. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  431. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  432. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  433. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  434. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  435. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  436. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  437. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  438. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  439. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  440. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  441. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  442. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  443. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  444. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  445. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  446. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  447. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  448. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  449. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  450. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  451. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  452. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  453. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  454. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  455. package/dist/components/DialogBase.js.map +1 -1
  456. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  457. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  458. package/dist/components/DirectDownloadButton.js.map +1 -1
  459. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  460. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  461. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  462. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  463. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  464. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  465. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  466. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  467. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  468. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  469. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  470. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  471. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  472. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  473. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  474. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  475. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  476. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  477. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  478. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  479. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  480. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  481. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  482. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  483. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  484. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  485. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  486. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  487. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  488. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  489. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  490. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  491. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  492. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  493. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  494. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  495. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  496. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  497. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  498. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  499. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  500. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  501. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  502. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  503. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  504. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  505. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  506. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  507. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  508. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  509. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  510. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  511. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  513. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  514. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  515. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  516. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  517. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  518. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  519. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  520. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  521. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  522. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  523. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  524. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  525. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  526. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  527. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  528. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  529. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  530. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  531. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  532. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  533. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  534. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  535. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  536. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  537. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  538. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  539. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  540. package/dist/components/EntityIcon.js.map +1 -1
  541. package/dist/components/EntityLink.js.map +1 -1
  542. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  543. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  544. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  545. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  546. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  547. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  548. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  549. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  550. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  551. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  552. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  553. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  554. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  555. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  556. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  557. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  558. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  559. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  560. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  561. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  562. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  563. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  564. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  565. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  566. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  567. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  568. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  569. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  570. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  571. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  572. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  573. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  574. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  575. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  576. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  577. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  578. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  579. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  580. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  581. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  582. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  583. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  584. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  585. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  586. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  587. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  588. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  589. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  590. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  591. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  592. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  593. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  594. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  595. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  596. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  597. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  598. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  599. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  600. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  601. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  602. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  603. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  604. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  605. package/dist/components/Forum/ForumPage.js.map +1 -1
  606. package/dist/components/Forum/ForumTable.js.map +1 -1
  607. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  608. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  609. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  610. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  611. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  612. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  613. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  614. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  615. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  616. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  617. package/dist/components/GenericCard/GenericCard.d.ts +2 -0
  618. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  619. package/dist/components/GenericCard/GenericCard.js +76 -64
  620. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  621. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  622. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  623. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  624. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  625. package/dist/components/GenericCard/Linkify.js.map +1 -1
  626. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  627. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  628. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  629. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  630. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  631. package/dist/components/GenericCard/TableRowGenericCard.js +33 -25
  632. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  633. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  634. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  635. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  636. package/dist/components/Goals/Goals.js +25 -27
  637. package/dist/components/Goals/Goals.js.map +1 -1
  638. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  639. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  640. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  641. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  642. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  643. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  644. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  645. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  646. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  647. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  648. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  649. package/dist/components/HasAccess/AccessIcon.js +10 -10
  650. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  651. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  652. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  653. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  654. package/dist/components/HeaderCard.js.map +1 -1
  655. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  656. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  657. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  658. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  659. package/dist/components/Icon/Icon.js.map +1 -1
  660. package/dist/components/IconList.js.map +1 -1
  661. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  662. package/dist/components/IconSvgButton.js.map +1 -1
  663. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  664. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  665. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  666. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  667. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  668. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  669. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  670. package/dist/components/JsonLdScript.js.map +1 -1
  671. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  672. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  673. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  674. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  675. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  676. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  677. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  678. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  679. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  680. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  681. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  682. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  683. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  684. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  685. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  686. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  687. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  688. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  689. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  690. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  691. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  692. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  693. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  694. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  695. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  696. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  697. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  698. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  699. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  700. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  701. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  702. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  703. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  704. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  705. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  706. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  707. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  708. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  709. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  710. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  711. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  712. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  713. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  714. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  715. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  716. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  717. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  718. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  719. package/dist/components/MuiContainer.js.map +1 -1
  720. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  721. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  722. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  723. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  724. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  725. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  726. package/dist/components/Plot/BarPlot.js.map +1 -1
  727. package/dist/components/Plot/DotPlot.js.map +1 -1
  728. package/dist/components/Plot/Plot.d.ts +12 -1
  729. package/dist/components/Plot/Plot.d.ts.map +1 -1
  730. package/dist/components/Plot/Plot.js +5 -1
  731. package/dist/components/Plot/Plot.js.map +1 -1
  732. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  733. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  734. package/dist/components/Plot/SynapseSankeyPlot.css +1 -0
  735. package/dist/components/Plot/SynapseSankeyPlot.d.ts +54 -0
  736. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  737. package/dist/components/Plot/SynapseSankeyPlot.js +359 -0
  738. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  739. package/dist/components/Plot/SynapseSankeyPlot.module.js +15 -0
  740. package/dist/components/Plot/SynapseSankeyPlot.module.js.map +1 -0
  741. package/dist/components/Plot/SynapseSankeyPlot.module.scss +63 -0
  742. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  743. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  744. package/dist/components/Plot/index.d.ts +3 -1
  745. package/dist/components/Plot/index.d.ts.map +1 -1
  746. package/dist/components/Plot/index.js +2 -1
  747. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  748. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  749. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  750. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  751. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  752. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  753. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  754. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  755. package/dist/components/PortalList/PortalCard.js.map +1 -1
  756. package/dist/components/PortalList/PortalList.js.map +1 -1
  757. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  758. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  759. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  760. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  761. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  762. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  763. package/dist/components/Programs/Programs.js.map +1 -1
  764. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  765. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  766. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  767. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  768. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  769. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  770. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  771. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  772. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  773. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  774. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  775. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  776. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  777. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  778. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  779. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  780. package/dist/components/QuerySortSelector.js.map +1 -1
  781. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  782. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  783. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  784. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  785. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  786. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  787. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  788. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  789. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  790. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  791. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  792. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  793. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  794. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  795. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  796. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  797. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  798. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  799. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  800. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  801. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  802. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  803. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  804. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  805. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  806. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  807. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  808. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  809. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  810. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  811. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  812. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  813. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  814. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  815. package/dist/components/Resources/Resources.js +8 -11
  816. package/dist/components/Resources/Resources.js.map +1 -1
  817. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  818. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  819. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  820. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  821. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  822. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  823. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  824. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  825. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  826. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  827. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  828. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  829. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +13 -12
  830. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  831. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +88 -77
  832. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  833. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  834. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  835. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  836. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  837. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  838. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  839. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  840. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  841. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  842. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  843. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  844. package/dist/components/SignInButton.js.map +1 -1
  845. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  846. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  847. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  848. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  849. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  850. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  851. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  852. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  853. package/dist/components/SourceAppImage.js.map +1 -1
  854. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  855. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  856. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  857. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  858. package/dist/components/StatisticsPlot.js.map +1 -1
  859. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  860. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  861. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  862. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  863. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  864. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  865. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  866. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  867. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  868. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  869. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  870. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  871. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  872. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  873. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  874. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  875. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  876. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  877. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  878. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  879. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  880. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  881. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  882. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  883. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  884. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  885. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  886. package/dist/components/SynapseForm/Header.js.map +1 -1
  887. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  888. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  889. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  890. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  891. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  892. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  893. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  894. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  895. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  896. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  897. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  898. package/dist/components/SynapseForm/types.js.map +1 -1
  899. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  900. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  901. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  902. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  903. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  904. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  905. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  906. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  907. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  908. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  909. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  910. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  911. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  912. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  913. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  914. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  915. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  916. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  917. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  918. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  919. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  920. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  921. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  922. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  923. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  924. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  925. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  926. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  927. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  928. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  929. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  930. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  931. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  932. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  933. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  934. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  935. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  936. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  937. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  938. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  939. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  940. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  941. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  942. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  943. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  944. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  945. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  946. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  947. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  948. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  949. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  950. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  951. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  952. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  953. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  954. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  955. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  956. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  957. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  958. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  959. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  960. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  961. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  962. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  963. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  964. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  965. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  966. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  967. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  968. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  969. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  970. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  971. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  972. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +63 -74
  973. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  974. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  975. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  976. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  977. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  978. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  979. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  980. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  981. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  982. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  983. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  984. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  985. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  986. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  987. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  988. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  989. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  990. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  991. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  992. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  993. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  994. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.d.ts.map +1 -1
  995. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +72 -68
  996. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  997. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  998. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  999. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  1000. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  1001. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  1002. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  1003. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +27 -1
  1004. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  1005. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +47 -36
  1006. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  1007. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +10 -10
  1008. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  1009. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  1010. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.d.ts +12 -12
  1011. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  1012. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts +4 -1
  1013. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts.map +1 -1
  1014. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  1015. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts +167 -517
  1016. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts.map +1 -1
  1017. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js +65 -65
  1018. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  1019. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts +1 -1
  1020. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts.map +1 -1
  1021. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  1022. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  1023. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts +1 -1
  1024. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts.map +1 -1
  1025. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js +6 -13
  1026. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  1027. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts +1 -1
  1028. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts.map +1 -1
  1029. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  1030. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  1031. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts +1 -1
  1032. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts.map +1 -1
  1033. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js +2 -2
  1034. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  1035. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts +1 -1
  1036. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts.map +1 -1
  1037. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  1038. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts +2 -2
  1039. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts.map +1 -1
  1040. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js +15 -16
  1041. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  1042. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  1043. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  1044. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  1045. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  1046. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  1047. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  1048. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  1049. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  1050. package/dist/components/TeamBadge.js.map +1 -1
  1051. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  1052. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  1053. package/dist/components/TemplateComponent.js.map +1 -1
  1054. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1055. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1056. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1057. package/dist/components/TextField/TextField.js.map +1 -1
  1058. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1059. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1060. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1061. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1062. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1063. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1064. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1065. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1066. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1067. package/dist/components/TotalQueryResults.js.map +1 -1
  1068. package/dist/components/UserCard/Avatar.js.map +1 -1
  1069. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1070. package/dist/components/UserCard/UserCard.js.map +1 -1
  1071. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1072. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1073. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1074. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1075. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1076. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1077. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1078. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1079. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1080. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1081. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1082. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1083. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1084. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1085. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1086. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1087. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1088. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1089. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1090. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1091. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1092. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1093. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1094. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1095. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1096. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1097. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1098. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1099. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1100. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1101. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1102. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1103. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1104. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1105. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1106. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1107. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1108. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1109. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1110. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1111. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1112. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1113. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1114. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1115. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1116. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1117. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1118. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1119. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1120. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1121. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1122. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1123. package/dist/components/download_list/index.js.map +1 -1
  1124. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1125. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1126. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1127. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1128. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1129. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1130. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1131. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1132. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1133. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1134. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1135. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1136. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1137. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1138. package/dist/components/error/ErrorBanner.js.map +1 -1
  1139. package/dist/components/error/ErrorChip.js.map +1 -1
  1140. package/dist/components/error/ErrorPage.js +24 -24
  1141. package/dist/components/error/ErrorPage.js.map +1 -1
  1142. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1143. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1144. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1145. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1146. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1147. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1148. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1149. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1150. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1151. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1152. package/dist/components/index.js +48 -47
  1153. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1154. package/dist/components/layout/SWCHeader.js.map +1 -1
  1155. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1156. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1157. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1158. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1159. package/dist/components/row_renderers/Funder.js.map +1 -1
  1160. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1161. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1162. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1163. package/dist/components/styled/HoverPopover.js.map +1 -1
  1164. package/dist/components/styled/InlineBadge.js.map +1 -1
  1165. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1166. package/dist/components/styled/LargeButton.js.map +1 -1
  1167. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1168. package/dist/components/styled/LightTooltip.js.map +1 -1
  1169. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1170. package/dist/components/styled/StyledPopover.js.map +1 -1
  1171. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1172. package/dist/components/styled/WideButton.js.map +1 -1
  1173. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
  1174. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
  1175. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1176. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1177. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  1178. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
  1179. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
  1180. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
  1181. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
  1182. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
  1183. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
  1184. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1185. package/dist/components/trash/TrashCanList.js.map +1 -1
  1186. package/dist/components/utils/Blocker.js.map +1 -1
  1187. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1188. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1189. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1190. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1191. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1192. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1193. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1194. package/dist/components/widgets/Range.js.map +1 -1
  1195. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1196. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1197. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1198. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1199. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1200. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1201. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1202. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1203. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1204. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1205. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1206. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1207. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1208. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1209. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1210. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1211. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1212. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1213. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1214. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1215. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1216. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1217. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1218. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1219. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1220. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1221. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1222. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1223. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1224. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1225. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1226. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1227. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1228. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1229. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1230. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1231. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1232. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1233. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1234. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1235. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1236. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1237. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1238. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1239. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1240. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1241. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1242. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1243. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1244. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1245. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1246. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1247. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1248. package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
  1249. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1250. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1251. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1252. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1253. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1254. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1255. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1256. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1257. package/dist/index.js +54 -53
  1258. package/dist/index.js.map +1 -1
  1259. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1260. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1261. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1262. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1263. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1264. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1265. package/dist/mocks/chat/mockChat.js.map +1 -1
  1266. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1267. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1268. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1269. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1270. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1271. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1272. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1273. package/dist/mocks/entity/index.js.map +1 -1
  1274. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1275. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1276. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1277. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1278. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1279. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1280. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1281. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1282. package/dist/mocks/entity/mockProject.js.map +1 -1
  1283. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1284. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1285. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1286. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1287. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1288. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1289. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1290. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1291. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1292. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1293. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1294. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1295. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1296. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1297. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1298. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1299. package/dist/mocks/mockSchema.js.map +1 -1
  1300. package/dist/mocks/mockSearchQueryData.js +2 -2
  1301. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1302. package/dist/mocks/mockShortIo.js.map +1 -1
  1303. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1304. package/dist/mocks/mockSubscription.js.map +1 -1
  1305. package/dist/mocks/mockWiki.js.map +1 -1
  1306. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1307. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1308. package/dist/mocks/mock_file_handle.js.map +1 -1
  1309. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1310. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1311. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1312. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1313. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1314. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1315. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1316. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1317. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1318. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1319. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1320. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1321. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1322. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1323. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1324. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1325. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1326. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1327. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1328. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1329. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1330. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1331. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1332. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1333. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1334. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1335. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1336. package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts +1 -1
  1337. package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
  1338. package/dist/mocks/msw/handlers/searchQueryHandlers.js +6 -3
  1339. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1340. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1341. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1342. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1343. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1344. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1345. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1346. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1347. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1348. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1349. package/dist/mocks/msw/handlers.js.map +1 -1
  1350. package/dist/mocks/msw/server.d.ts +1 -1
  1351. package/dist/mocks/msw/server.d.ts.map +1 -1
  1352. package/dist/mocks/msw/server.js.map +1 -1
  1353. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1354. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1355. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1356. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1357. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1358. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1359. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1360. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1361. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1362. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1363. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1364. package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts +13 -0
  1365. package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts.map +1 -1
  1366. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js +27 -0
  1367. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1368. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1369. package/dist/mocks/query/syn16787123.js.map +1 -1
  1370. package/dist/mocks/query/syn17328596.js.map +1 -1
  1371. package/dist/mocks/query/syn51735464.js.map +1 -1
  1372. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1373. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1374. package/dist/mocks/team/mockTeam.js.map +1 -1
  1375. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1376. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1377. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1378. package/dist/ror-client/index.js.map +1 -1
  1379. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1380. package/dist/stories/ToastDemo.js.map +1 -1
  1381. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1382. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1383. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1384. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1385. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1386. package/dist/style/components/_cards.scss +10 -0
  1387. package/dist/style/components/_data-grid-extra.css +1 -1
  1388. package/dist/style/components/_data-grid-extra.scss +7 -1
  1389. package/dist/style/main.css +1 -1
  1390. package/dist/synapse-client/HttpClient.js.map +1 -1
  1391. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1392. package/dist/synapse-client/SynapseClient.js +499 -505
  1393. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1394. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1395. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1396. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1397. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1398. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1399. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1400. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1401. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1402. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1403. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1404. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1405. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1406. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1407. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1408. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1409. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1410. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1411. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1412. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1413. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1414. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1415. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1416. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1417. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1418. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1419. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1420. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1421. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1422. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1423. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1424. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1425. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1426. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1427. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1428. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1429. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1430. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1431. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1432. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1433. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1434. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1435. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1436. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1437. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1438. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1439. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1440. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1441. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1442. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1443. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1444. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1445. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1446. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1447. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1448. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1449. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1450. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1451. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1452. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1453. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1454. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1455. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1456. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1457. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1458. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1459. package/dist/synapse-queries/ror/index.js.map +1 -1
  1460. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1461. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1462. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1463. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1464. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1465. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1466. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1467. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1468. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1469. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1470. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1471. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1472. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1473. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1474. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1475. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1476. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1477. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1478. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1479. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1480. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1481. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1482. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1483. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1484. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1485. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1486. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1487. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1488. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1489. package/dist/testutils/LocationTracker.js.map +1 -1
  1490. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1491. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1492. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1493. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1494. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1495. package/dist/testutils/vitest.setup.js.map +1 -1
  1496. package/dist/theme/DefaultTheme.js.map +1 -1
  1497. package/dist/theme/ThemeProvider.js.map +1 -1
  1498. package/dist/theme/mergeTheme.js.map +1 -1
  1499. package/dist/theme/palette/Palettes.js.map +1 -1
  1500. package/dist/theme/spreadSx.js.map +1 -1
  1501. package/dist/theme/typography/Link.js.map +1 -1
  1502. package/dist/theme/typography/Typography.js.map +1 -1
  1503. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1504. package/dist/utils/APIConstants.js.map +1 -1
  1505. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1506. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1507. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1508. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1509. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1510. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1511. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1512. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1513. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1514. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1515. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1516. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1517. package/dist/utils/SynapseConstants.js.map +1 -1
  1518. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1519. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1520. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1521. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1522. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1523. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1524. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1525. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1526. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1527. package/dist/utils/context/SynapseContext.js.map +1 -1
  1528. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1529. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1530. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1531. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1532. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1533. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1534. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1535. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1536. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1537. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1538. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1539. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1540. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1541. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1542. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1543. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1544. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1545. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1546. package/dist/utils/functions/StringUtils.js.map +1 -1
  1547. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1548. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1549. package/dist/utils/functions/colorPalette.js.map +1 -1
  1550. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1551. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1552. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1553. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1554. package/dist/utils/functions/getEndpoint.js +3 -3
  1555. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1556. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1557. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1558. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1559. package/dist/utils/functions/getUserData.js.map +1 -1
  1560. package/dist/utils/functions/queryUtils.js.map +1 -1
  1561. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1562. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1563. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1564. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1565. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1566. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1567. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1568. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1569. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1570. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1571. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1572. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1573. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1574. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1575. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1576. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1577. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1578. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1579. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1580. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1581. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1582. package/dist/utils/hooks/useListState.js.map +1 -1
  1583. package/dist/utils/hooks/useLogin.js.map +1 -1
  1584. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1585. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1586. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1587. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1588. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1589. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1590. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1591. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1592. package/dist/utils/hooks/useSet.js.map +1 -1
  1593. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1594. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1595. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1596. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1597. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1598. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1599. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1600. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1601. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1602. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1603. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1604. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1605. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1606. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1607. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1608. package/dist/utils/html/TargetEnum.js.map +1 -1
  1609. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1610. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1611. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1612. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1613. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1614. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1615. package/dist/utils/jsonschema/getType.js.map +1 -1
  1616. package/dist/utils/searchDefaults.js.map +1 -1
  1617. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1618. package/dist/utils/types/IsType.js.map +1 -1
  1619. package/package.json +68 -65
@@ -1 +1 @@
1
- {"version":3,"file":"QueryCountButton.js","names":[],"sources":["../../../src/components/QueryCountButton/QueryCountButton.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { BUNDLE_MASK_QUERY_COUNT } from '@/utils/SynapseConstants'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { Box, Button, ButtonProps } from '@mui/material'\nimport { NavigateNext } from '@mui/icons-material'\nimport React from 'react'\nimport { Link as RouterLink, useInRouterContext } from 'react-router'\n\nexport type QueryCountButtonProps = {\n /**\n * The SQL query to execute to get the count\n */\n sql: string\n /**\n * The target URL when the button is clicked\n */\n href: string\n /**\n * Text to display before the count (e.g., \"Explore\")\n */\n prefixText?: string\n /**\n * Text to display after the count (e.g., \"files\")\n */\n suffixText?: string\n /**\n * Additional MUI Button props\n */\n} & Omit<ButtonProps, 'children'>\n\n/**\n * A button component that displays text with an inline count.\n * The count is fetched by executing a SQL query against a Synapse table.\n * Example: \"Explore 42 files\"\n */\nexport function QueryCountButton(props: QueryCountButtonProps) {\n const { sql, href, prefixText = '', suffixText = '', ...buttonProps } = props\n const entityId = parseEntityIdFromSqlStatement(sql)\n const inRouterContext = useInRouterContext()\n\n const request: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: { sql },\n entityId,\n partMask: BUNDLE_MASK_QUERY_COUNT,\n }\n\n const { data: queryResult, isLoading } = useGetQueryResultBundle(request)\n\n const count = queryResult?.queryCount\n\n const isExternalLink =\n href?.startsWith('http://') || href?.startsWith('https://')\n\n // Determine the appropriate link props based on context\n let linkProps: Partial<ButtonProps> & { target?: string; to?: string } = {}\n\n if (isExternalLink) {\n linkProps = {\n href,\n target: '_blank',\n rel: 'noopener noreferrer',\n component: 'a',\n }\n } else if (inRouterContext) {\n // For internal links, if we are in a react-router context, use RouterLink\n linkProps = {\n to: href,\n component: RouterLink,\n }\n } else {\n linkProps = {\n href,\n component: 'a',\n }\n }\n\n // Build the button text: \"prefixText count suffixText\"\n const buttonText = React.useMemo(() => {\n const parts: string[] = []\n\n if (prefixText) {\n parts.push(prefixText)\n }\n\n if (!isLoading && count !== undefined) {\n parts.push(count.toLocaleString())\n }\n\n if (suffixText) {\n parts.push(suffixText)\n }\n\n return parts.join(' ')\n }, [prefixText, count, suffixText, isLoading])\n\n // Icon with theme-aware circular background\n const endIcon = (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'background.paper',\n borderRadius: '50%',\n width: 24,\n height: 24,\n }}\n >\n <NavigateNext sx={{ color: 'primary.main', fontSize: 20 }} />\n </Box>\n )\n\n return (\n <Button\n {...buttonProps}\n {...linkProps}\n endIcon={endIcon}\n loading={isLoading}\n >\n {buttonText}\n </Button>\n )\n}\n\nexport default QueryCountButton\n"],"mappings":";;;;;;;;;AAoCA,SAAgB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,QAAK,SAAM,gBAAa,IAAI,gBAAa,IAAI,GAAG,MAAgB,GAClE,IAAW,EAA8B,EAAI,EAC7C,IAAkB,GAAoB,EAStC,EAAE,MAAM,GAAa,iBAAc,EAAwB;EAN/D,cAAc;EACd,OAAO,EAAE,QAAK;EACd;EACA,UAAA;EAG+D,CAAQ,EAEnE,IAAQ,GAAa,YAErB,IACJ,GAAM,WAAW,UAAU,IAAI,GAAM,WAAW,WAAW,EAGzD,IAAqE,EAAE;AAE3E,CAcE,IAdE,IACU;EACV;EACA,QAAQ;EACR,KAAK;EACL,WAAW;EACZ,GACQ,IAEG;EACV,IAAI;EACJ,WAAW;EACZ,GAEW;EACV;EACA,WAAW;EACZ;CAIH,IAAM,IAAa,EAAM,cAAc;EACrC,IAAM,IAAkB,EAAE;AAc1B,SAZI,KACF,EAAM,KAAK,EAAW,EAGpB,CAAC,KAAa,MAAU,KAAA,KAC1B,EAAM,KAAK,EAAM,gBAAgB,CAAC,EAGhC,KACF,EAAM,KAAK,EAAW,EAGjB,EAAM,KAAK,IAAI;IACrB;EAAC;EAAY;EAAO;EAAY;EAAU,CAAC,EAGxC,IACJ,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,iBAAiB;GACjB,cAAc;GACd,OAAO;GACP,QAAQ;GACT;YAED,kBAAC,GAAD,EAAc,IAAI;GAAE,OAAO;GAAgB,UAAU;GAAI,EAAI,CAAA;EACzD,CAAA;AAGR,QACE,kBAAC,GAAD;EACE,GAAI;EACJ,GAAI;EACK;EACT,SAAS;YAER;EACM,CAAA"}
1
+ {"version":3,"file":"QueryCountButton.js","names":[],"sources":["../../../src/components/QueryCountButton/QueryCountButton.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { BUNDLE_MASK_QUERY_COUNT } from '@/utils/SynapseConstants'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { Box, Button, ButtonProps } from '@mui/material'\nimport { NavigateNext } from '@mui/icons-material'\nimport React from 'react'\nimport { Link as RouterLink, useInRouterContext } from 'react-router'\n\nexport type QueryCountButtonProps = {\n /**\n * The SQL query to execute to get the count\n */\n sql: string\n /**\n * The target URL when the button is clicked\n */\n href: string\n /**\n * Text to display before the count (e.g., \"Explore\")\n */\n prefixText?: string\n /**\n * Text to display after the count (e.g., \"files\")\n */\n suffixText?: string\n /**\n * Additional MUI Button props\n */\n} & Omit<ButtonProps, 'children'>\n\n/**\n * A button component that displays text with an inline count.\n * The count is fetched by executing a SQL query against a Synapse table.\n * Example: \"Explore 42 files\"\n */\nexport function QueryCountButton(props: QueryCountButtonProps) {\n const { sql, href, prefixText = '', suffixText = '', ...buttonProps } = props\n const entityId = parseEntityIdFromSqlStatement(sql)\n const inRouterContext = useInRouterContext()\n\n const request: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: { sql },\n entityId,\n partMask: BUNDLE_MASK_QUERY_COUNT,\n }\n\n const { data: queryResult, isLoading } = useGetQueryResultBundle(request)\n\n const count = queryResult?.queryCount\n\n const isExternalLink =\n href?.startsWith('http://') || href?.startsWith('https://')\n\n // Determine the appropriate link props based on context\n let linkProps: Partial<ButtonProps> & { target?: string; to?: string } = {}\n\n if (isExternalLink) {\n linkProps = {\n href,\n target: '_blank',\n rel: 'noopener noreferrer',\n component: 'a',\n }\n } else if (inRouterContext) {\n // For internal links, if we are in a react-router context, use RouterLink\n linkProps = {\n to: href,\n component: RouterLink,\n }\n } else {\n linkProps = {\n href,\n component: 'a',\n }\n }\n\n // Build the button text: \"prefixText count suffixText\"\n const buttonText = React.useMemo(() => {\n const parts: string[] = []\n\n if (prefixText) {\n parts.push(prefixText)\n }\n\n if (!isLoading && count !== undefined) {\n parts.push(count.toLocaleString())\n }\n\n if (suffixText) {\n parts.push(suffixText)\n }\n\n return parts.join(' ')\n }, [prefixText, count, suffixText, isLoading])\n\n // Icon with theme-aware circular background\n const endIcon = (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'background.paper',\n borderRadius: '50%',\n width: 24,\n height: 24,\n }}\n >\n <NavigateNext sx={{ color: 'primary.main', fontSize: 20 }} />\n </Box>\n )\n\n return (\n <Button\n {...buttonProps}\n {...linkProps}\n endIcon={endIcon}\n loading={isLoading}\n >\n {buttonText}\n </Button>\n )\n}\n\nexport default QueryCountButton\n"],"mappings":";;;;;;;;;AAoCA,SAAgB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,QAAK,SAAM,gBAAa,IAAI,gBAAa,IAAI,GAAG,MAAgB,GAClE,IAAW,EAA8B,CAAG,GAC5C,IAAkB,EAAmB,GASrC,EAAE,MAAM,GAAa,iBAAc,EAAwB;EAN/D,cAAc;EACd,OAAO,EAAE,OAAI;EACb;EACA,UAAA;CAG+D,CAAO,GAElE,IAAQ,GAAa,YAErB,IACJ,GAAM,WAAW,SAAS,KAAK,GAAM,WAAW,UAAU,GAGxD,IAAqE,CAAC;CAE1E,AAcE,IAdE,IACU;EACV;EACA,QAAQ;EACR,KAAK;EACL,WAAW;CACb,IACS,IAEG;EACV,IAAI;EACJ,WAAW;CACb,IAEY;EACV;EACA,WAAW;CACb;CAIF,IAAM,IAAa,EAAM,cAAc;EACrC,IAAM,IAAkB,CAAC;EAczB,OAZI,KACF,EAAM,KAAK,CAAU,GAGnB,CAAC,KAAa,MAAU,KAAA,KAC1B,EAAM,KAAK,EAAM,eAAe,CAAC,GAG/B,KACF,EAAM,KAAK,CAAU,GAGhB,EAAM,KAAK,GAAG;CACvB,GAAG;EAAC;EAAY;EAAO;EAAY;CAAS,CAAC,GAGvC,IACJ,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,iBAAiB;GACjB,cAAc;GACd,OAAO;GACP,QAAQ;EACV;YAEA,kBAAC,GAAD,EAAc,IAAI;GAAE,OAAO;GAAgB,UAAU;EAAG,EAAI,CAAA;CACzD,CAAA;CAGP,OACE,kBAAC,GAAD;EACE,GAAI;EACJ,GAAI;EACK;EACT,SAAS;YAER;CACK,CAAA;AAEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"QuerySortSelector.js","names":[],"sources":["../../src/components/QuerySortSelector.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport { SortDirection } from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport Select from 'react-select'\nimport { SortConfiguration } from './CardContainerLogic'\nimport { useQueryContext } from './QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from './QueryVisualizationWrapper'\nimport { findValueOption } from './JsonSchemaForm/widgets/SelectWidget'\n\nexport type QuerySortSelectorProps = {\n sortConfig: SortConfiguration\n}\n\nexport type EnumOption = { value: string; label: string }\n\nfunction QuerySortSelector({ sortConfig }: QuerySortSelectorProps) {\n const { defaultColumn, defaultDirection, sortableColumns } = sortConfig\n const { executeQueryRequest } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const [sortColumn, setSortColumn] = useState<string | undefined>(\n defaultColumn,\n )\n const [sortDirection, setSortDirection] = useState(defaultDirection)\n\n const enumOptions: EnumOption[] = sortableColumns.map(sortableColumn => {\n return {\n value: sortableColumn,\n label: getColumnDisplayName(sortableColumn),\n }\n })\n\n const onChange = (value?: string) => {\n executeQueryRequest(request => {\n let newSortDirection: SortDirection = 'ASC'\n if (value === sortColumn) {\n // flip sort direction\n newSortDirection = sortDirection === 'ASC' ? 'DESC' : 'ASC'\n }\n\n request.query.sort = value\n ? [\n {\n column: value,\n direction: newSortDirection,\n },\n ]\n : undefined\n\n setSortColumn(value)\n setSortDirection(newSortDirection)\n\n return request\n })\n }\n\n return (\n <div className=\"QuerySortSelector\">\n <Typography variant=\"label\" className=\"sort-by-label SRC-inlineBlock\">\n Sort by\n </Typography>\n <Select\n className=\"react-select-container SRC-inlineBlock\"\n value={findValueOption(sortColumn, enumOptions)}\n options={enumOptions}\n onChange={option => onChange((option as EnumOption | null)?.value)}\n styles={{\n control: provided => ({\n ...provided,\n marginLeft: '15px',\n }),\n }}\n />\n </div>\n )\n}\n\nexport default QuerySortSelector\n"],"mappings":";;;;;;;;;AAeA,SAAS,EAAkB,EAAE,iBAAsC;CACjE,IAAM,EAAE,kBAAe,qBAAkB,uBAAoB,GACvD,EAAE,2BAAwB,GAAiB,EAC3C,EAAE,4BAAyB,GAA8B,EACzD,CAAC,GAAY,KAAiB,EAClC,EACD,EACK,CAAC,GAAe,KAAoB,EAAS,EAAiB,EAE9D,IAA4B,EAAgB,KAAI,OAC7C;EACL,OAAO;EACP,OAAO,EAAqB,EAAe;EAC5C,EACD,EAEI,KAAY,MAAmB;AACnC,KAAoB,MAAW;GAC7B,IAAI,IAAkC;AAkBtC,UAjBI,MAAU,MAEZ,IAAmB,MAAkB,QAAQ,SAAS,QAGxD,EAAQ,MAAM,OAAO,IACjB,CACE;IACE,QAAQ;IACR,WAAW;IACZ,CACF,GACD,KAAA,GAEJ,EAAc,EAAM,EACpB,EAAiB,EAAiB,EAE3B;IACP;;AAGJ,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD;GAAY,SAAQ;GAAQ,WAAU;aAAgC;GAEzD,CAAA,EACb,kBAAC,GAAD;GACE,WAAU;GACV,OAAO,EAAgB,GAAY,EAAY;GAC/C,SAAS;GACT,WAAU,MAAU,EAAU,GAA8B,MAAM;GAClE,QAAQ,EACN,UAAS,OAAa;IACpB,GAAG;IACH,YAAY;IACb,GACF;GACD,CAAA,CACE"}
1
+ {"version":3,"file":"QuerySortSelector.js","names":[],"sources":["../../src/components/QuerySortSelector.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport { SortDirection } from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport Select from 'react-select'\nimport { SortConfiguration } from './CardContainerLogic'\nimport { useQueryContext } from './QueryContext/QueryContext'\nimport { useQueryVisualizationContext } from './QueryVisualizationWrapper'\nimport { findValueOption } from './JsonSchemaForm/widgets/SelectWidget'\n\nexport type QuerySortSelectorProps = {\n sortConfig: SortConfiguration\n}\n\nexport type EnumOption = { value: string; label: string }\n\nfunction QuerySortSelector({ sortConfig }: QuerySortSelectorProps) {\n const { defaultColumn, defaultDirection, sortableColumns } = sortConfig\n const { executeQueryRequest } = useQueryContext()\n const { getColumnDisplayName } = useQueryVisualizationContext()\n const [sortColumn, setSortColumn] = useState<string | undefined>(\n defaultColumn,\n )\n const [sortDirection, setSortDirection] = useState(defaultDirection)\n\n const enumOptions: EnumOption[] = sortableColumns.map(sortableColumn => {\n return {\n value: sortableColumn,\n label: getColumnDisplayName(sortableColumn),\n }\n })\n\n const onChange = (value?: string) => {\n executeQueryRequest(request => {\n let newSortDirection: SortDirection = 'ASC'\n if (value === sortColumn) {\n // flip sort direction\n newSortDirection = sortDirection === 'ASC' ? 'DESC' : 'ASC'\n }\n\n request.query.sort = value\n ? [\n {\n column: value,\n direction: newSortDirection,\n },\n ]\n : undefined\n\n setSortColumn(value)\n setSortDirection(newSortDirection)\n\n return request\n })\n }\n\n return (\n <div className=\"QuerySortSelector\">\n <Typography variant=\"label\" className=\"sort-by-label SRC-inlineBlock\">\n Sort by\n </Typography>\n <Select\n className=\"react-select-container SRC-inlineBlock\"\n value={findValueOption(sortColumn, enumOptions)}\n options={enumOptions}\n onChange={option => onChange((option as EnumOption | null)?.value)}\n styles={{\n control: provided => ({\n ...provided,\n marginLeft: '15px',\n }),\n }}\n />\n </div>\n )\n}\n\nexport default QuerySortSelector\n"],"mappings":";;;;;;;;;AAeA,SAAS,EAAkB,EAAE,iBAAsC;CACjE,IAAM,EAAE,kBAAe,qBAAkB,uBAAoB,GACvD,EAAE,2BAAwB,EAAgB,GAC1C,EAAE,4BAAyB,EAA6B,GACxD,CAAC,GAAY,KAAiB,EAClC,CACF,GACM,CAAC,GAAe,KAAoB,EAAS,CAAgB,GAE7D,IAA4B,EAAgB,KAAI,OAC7C;EACL,OAAO;EACP,OAAO,EAAqB,CAAc;CAC5C,EACD,GAEK,KAAY,MAAmB;EACnC,GAAoB,MAAW;GAC7B,IAAI,IAAkC;GAkBtC,OAjBI,MAAU,MAEZ,IAAmB,MAAkB,QAAQ,SAAS,QAGxD,EAAQ,MAAM,OAAO,IACjB,CACE;IACE,QAAQ;IACR,WAAW;GACb,CACF,IACA,KAAA,GAEJ,EAAc,CAAK,GACnB,EAAiB,CAAgB,GAE1B;EACT,CAAC;CACH;CAEA,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD;GAAY,SAAQ;GAAQ,WAAU;aAAgC;EAE1D,CAAA,GACZ,kBAAC,GAAD;GACE,WAAU;GACV,OAAO,EAAgB,GAAY,CAAW;GAC9C,SAAS;GACT,WAAU,MAAU,EAAU,GAA8B,KAAK;GACjE,QAAQ,EACN,UAAS,OAAa;IACpB,GAAG;IACH,YAAY;GACd,GACF;EACD,CAAA,CACE;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"NoContentPlaceholder.js","names":[],"sources":["../../../src/components/QueryVisualizationWrapper/NoContentPlaceholder.tsx"],"sourcesContent":["import { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\nimport SearchResultsNotFound from '../SynapseTable/SearchResultsNotFound'\nimport ThisTableIsEmpty from '../SynapseTable/TableIsEmpty'\nimport NoContentAvailable from '../SynapseTable/NoContentAvailable'\n\ntype NoContentPlaceholderProps = {\n type: NoContentPlaceholderType\n hasResettableFilters: boolean\n}\n\nexport default function NoContentPlaceholder(props: NoContentPlaceholderProps) {\n const { type, hasResettableFilters } = props\n switch (type) {\n case NoContentPlaceholderType.INTERACTIVE:\n if (hasResettableFilters) {\n return <SearchResultsNotFound />\n } else {\n return <ThisTableIsEmpty />\n }\n case NoContentPlaceholderType.HIDDEN:\n return <></>\n case NoContentPlaceholderType.STATIC:\n default:\n return <NoContentAvailable />\n }\n}\n"],"mappings":";;;;;;AAUA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,SAAM,4BAAyB;AACvC,SAAQ,GAAR;EACE,KAAK,EAAyB,YAI1B,QAFO,EADL,IACM,IAEA,GAFD,EAAyB,CAEL;EAE/B,KAAK,EAAyB,OAC5B,QAAO,kBAAA,GAAA,EAAK,CAAA;EACd,KAAK,EAAyB;EAC9B,QACE,QAAO,kBAAC,GAAD,EAAsB,CAAA"}
1
+ {"version":3,"file":"NoContentPlaceholder.js","names":[],"sources":["../../../src/components/QueryVisualizationWrapper/NoContentPlaceholder.tsx"],"sourcesContent":["import { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\nimport SearchResultsNotFound from '../SynapseTable/SearchResultsNotFound'\nimport ThisTableIsEmpty from '../SynapseTable/TableIsEmpty'\nimport NoContentAvailable from '../SynapseTable/NoContentAvailable'\n\ntype NoContentPlaceholderProps = {\n type: NoContentPlaceholderType\n hasResettableFilters: boolean\n}\n\nexport default function NoContentPlaceholder(props: NoContentPlaceholderProps) {\n const { type, hasResettableFilters } = props\n switch (type) {\n case NoContentPlaceholderType.INTERACTIVE:\n if (hasResettableFilters) {\n return <SearchResultsNotFound />\n } else {\n return <ThisTableIsEmpty />\n }\n case NoContentPlaceholderType.HIDDEN:\n return <></>\n case NoContentPlaceholderType.STATIC:\n default:\n return <NoContentAvailable />\n }\n}\n"],"mappings":";;;;;;AAUA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,SAAM,4BAAyB;CACvC,QAAQ,GAAR;EACE,KAAK,EAAyB,aAI1B,OAFO,EADL,IACM,IAEA,GAFD,CAAwB,CAEL;EAE9B,KAAK,EAAyB,QAC5B,OAAO,kBAAA,GAAA,CAAI,CAAA;EACb,KAAK,EAAyB;EAC9B,SACE,OAAO,kBAAC,GAAD,CAAqB,CAAA;CAChC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryVisualizationContext.js","names":[],"sources":["../../../src/components/QueryVisualizationWrapper/QueryVisualizationContext.tsx"],"sourcesContent":["import React from 'react'\nimport { ColumnType } from '@sage-bionetworks/synapse-types'\nimport {\n createContext,\n Dispatch,\n PropsWithChildren,\n ReactNode,\n SetStateAction,\n useContext,\n} from 'react'\nimport { ExternalAnalysisPlatform } from '../SynapseTable/export/ExternalAnalysisPlatformsConstants'\n\nexport type QueryVisualizationContextType = {\n columnsToShowInTable: string[]\n setColumnsToShowInTable: (newState: string[]) => void\n rgbIndex?: number\n unitDescription: string\n /** Whether to show when the table or view was last updated. */\n showLastUpdatedOn?: boolean\n /** Given a column name, return the display name for the column */\n getColumnDisplayName: (columnName: string, jsonPath?: string) => string\n /** Given a column name or JSON facet, return the configured help text */\n getHelpText: (columnName: string, jsonPath?: string) => string | undefined\n /** Given a cell value and a column type, returns the displayed value for the data */\n getDisplayValue: (value: string, columnType: ColumnType) => string\n /** React node to display in place of cards/table when there are no results. */\n NoContentPlaceholder: () => ReactNode\n /** The set of external analysis platforms where this component allows users to export data. If this list is empty, then\n * controls will not be shown. */\n enabledExternalAnalysisPlatforms: ExternalAnalysisPlatform[]\n /** If true, a dialog guiding the user through exporting table query data to an external platform is shown. If this\n * is true, enabledExternalAnalysisPlatforms must be non-empty */\n isShowingExportToAnalysisPlatformModal: boolean\n /** Allows toggling isShowingExportToAnalysisPlatformModal */\n setIsShowingExportToAnalysisPlatformModal: Dispatch<SetStateAction<boolean>>\n showFacetFilter: boolean\n setShowFacetFilter: Dispatch<SetStateAction<boolean>>\n hideSearchBarControl: boolean\n /** When true, the text matches filter pill is shown but cannot be removed. Defaults to true. */\n lockTextMatchesQueryFilterPill: boolean\n showSearchBar: boolean\n setShowSearchBar: Dispatch<SetStateAction<boolean>>\n showDownloadConfirmation: boolean\n setShowDownloadConfirmation: Dispatch<SetStateAction<boolean>>\n showSqlEditor: boolean\n setShowSqlEditor: Dispatch<SetStateAction<boolean>>\n showCopyToClipboard: boolean\n setShowCopyToClipboard: Dispatch<SetStateAction<boolean>>\n showPlots: boolean\n setShowPlots: Dispatch<SetStateAction<boolean>>\n}\n/**\n * This must be exported to use the context in class components.\n */\nexport const QueryVisualizationContext = createContext<\n QueryVisualizationContextType | undefined\n>(undefined)\nexport type QueryVisualizationContextProviderProps = PropsWithChildren<{\n queryVisualizationContext: QueryVisualizationContextType\n}>\n/**\n * Provides fields and functions related to visualizing a Synapse table query. For actual query data, see QueryContextProvider.\n */\nexport const QueryVisualizationContextProvider = ({\n children,\n queryVisualizationContext,\n}: QueryVisualizationContextProviderProps): React.ReactNode => {\n return (\n <QueryVisualizationContext.Provider value={queryVisualizationContext}>\n {children}\n </QueryVisualizationContext.Provider>\n )\n}\n\nexport function useQueryVisualizationContext(): QueryVisualizationContextType {\n const context = useContext(QueryVisualizationContext)\n if (context === undefined) {\n throw new Error(\n 'useQueryVisualizationContext must be used within a QueryVisualizationWrapper',\n )\n }\n return context\n}\n\nexport const QueryVisualizationContextConsumer =\n QueryVisualizationContext.Consumer\n"],"mappings":";;;AAsDA,IAAa,IAA4B,EAEvC,KAAA,EAAU,EAOC,KAAqC,EAChD,aACA,mCAGE,kBAAC,EAA0B,UAA3B;CAAoC,OAAO;CACxC;CACkC,CAAA;AAIzC,SAAgB,IAA8D;CAC5E,IAAM,IAAU,EAAW,EAA0B;AACrD,KAAI,MAAY,KAAA,EACd,OAAU,MACR,+EACD;AAEH,QAAO;;AAGT,IAAa,IACX,EAA0B"}
1
+ {"version":3,"file":"QueryVisualizationContext.js","names":[],"sources":["../../../src/components/QueryVisualizationWrapper/QueryVisualizationContext.tsx"],"sourcesContent":["import React from 'react'\nimport { ColumnType } from '@sage-bionetworks/synapse-types'\nimport {\n createContext,\n Dispatch,\n PropsWithChildren,\n ReactNode,\n SetStateAction,\n useContext,\n} from 'react'\nimport { ExternalAnalysisPlatform } from '../SynapseTable/export/ExternalAnalysisPlatformsConstants'\n\nexport type QueryVisualizationContextType = {\n columnsToShowInTable: string[]\n setColumnsToShowInTable: (newState: string[]) => void\n rgbIndex?: number\n unitDescription: string\n /** Whether to show when the table or view was last updated. */\n showLastUpdatedOn?: boolean\n /** Given a column name, return the display name for the column */\n getColumnDisplayName: (columnName: string, jsonPath?: string) => string\n /** Given a column name or JSON facet, return the configured help text */\n getHelpText: (columnName: string, jsonPath?: string) => string | undefined\n /** Given a cell value and a column type, returns the displayed value for the data */\n getDisplayValue: (value: string, columnType: ColumnType) => string\n /** React node to display in place of cards/table when there are no results. */\n NoContentPlaceholder: () => ReactNode\n /** The set of external analysis platforms where this component allows users to export data. If this list is empty, then\n * controls will not be shown. */\n enabledExternalAnalysisPlatforms: ExternalAnalysisPlatform[]\n /** If true, a dialog guiding the user through exporting table query data to an external platform is shown. If this\n * is true, enabledExternalAnalysisPlatforms must be non-empty */\n isShowingExportToAnalysisPlatformModal: boolean\n /** Allows toggling isShowingExportToAnalysisPlatformModal */\n setIsShowingExportToAnalysisPlatformModal: Dispatch<SetStateAction<boolean>>\n showFacetFilter: boolean\n setShowFacetFilter: Dispatch<SetStateAction<boolean>>\n hideSearchBarControl: boolean\n /** When true, the text matches filter pill is shown but cannot be removed. Defaults to true. */\n lockTextMatchesQueryFilterPill: boolean\n showSearchBar: boolean\n setShowSearchBar: Dispatch<SetStateAction<boolean>>\n showDownloadConfirmation: boolean\n setShowDownloadConfirmation: Dispatch<SetStateAction<boolean>>\n showSqlEditor: boolean\n setShowSqlEditor: Dispatch<SetStateAction<boolean>>\n showCopyToClipboard: boolean\n setShowCopyToClipboard: Dispatch<SetStateAction<boolean>>\n showPlots: boolean\n setShowPlots: Dispatch<SetStateAction<boolean>>\n}\n/**\n * This must be exported to use the context in class components.\n */\nexport const QueryVisualizationContext = createContext<\n QueryVisualizationContextType | undefined\n>(undefined)\nexport type QueryVisualizationContextProviderProps = PropsWithChildren<{\n queryVisualizationContext: QueryVisualizationContextType\n}>\n/**\n * Provides fields and functions related to visualizing a Synapse table query. For actual query data, see QueryContextProvider.\n */\nexport const QueryVisualizationContextProvider = ({\n children,\n queryVisualizationContext,\n}: QueryVisualizationContextProviderProps): React.ReactNode => {\n return (\n <QueryVisualizationContext.Provider value={queryVisualizationContext}>\n {children}\n </QueryVisualizationContext.Provider>\n )\n}\n\nexport function useQueryVisualizationContext(): QueryVisualizationContextType {\n const context = useContext(QueryVisualizationContext)\n if (context === undefined) {\n throw new Error(\n 'useQueryVisualizationContext must be used within a QueryVisualizationWrapper',\n )\n }\n return context\n}\n\nexport const QueryVisualizationContextConsumer =\n QueryVisualizationContext.Consumer\n"],"mappings":";;;AAsDA,IAAa,IAA4B,EAEvC,KAAA,CAAS,GAOE,KAAqC,EAChD,aACA,mCAGE,kBAAC,EAA0B,UAA3B;CAAoC,OAAO;CACxC;AACiC,CAAA;AAIxC,SAAgB,IAA8D;CAC5E,IAAM,IAAU,EAAW,CAAyB;CACpD,IAAI,MAAY,KAAA,GACd,MAAU,MACR,8EACF;CAEF,OAAO;AACT;AAEA,IAAa,IACX,EAA0B"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryVisualizationWrapper.js","names":[],"sources":["../../../src/components/QueryVisualizationWrapper/QueryVisualizationWrapper.tsx"],"sourcesContent":["import { getDisplayValue } from '@/utils/functions/getDataFromFromStorage'\nimport { unCamelCase } from '@/utils/functions/unCamelCase'\nimport useMutuallyExclusiveState from '@/utils/hooks/useMutuallyExclusiveState'\nimport { useQuery } from '@tanstack/react-query'\nimport { ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport { useQueryContext } from '../QueryContext'\nimport { useGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\nimport { ExternalAnalysisPlatform } from '../SynapseTable/export/ExternalAnalysisPlatformsConstants'\nimport NoContentPlaceholderComponent from './NoContentPlaceholder'\nimport {\n QueryVisualizationContextProvider,\n QueryVisualizationContextType,\n} from './QueryVisualizationContext'\n\n// By default, show no external analysis platforms.\nconst DEFAULT_ENABLED_ANALYSIS_PLATFORMS: ExternalAnalysisPlatform[] = []\n\ntype ColumnOrFacetHelpConfig = {\n /** Text that describes the column or facet */\n helpText: string\n /** The name of the column for which the markdown applies */\n columnName: string\n /** The JSON path matching a described JSON Column facet */\n jsonPath?: string\n}\n\nexport type QueryVisualizationWrapperProps = {\n children: ReactNode | ReactNode[]\n rgbIndex?: number\n /** The singular word to use to describe a what a row represents (e.g. \"file\"). Defaults to \"result\" */\n unitDescription?: string\n /** Mapping from column name to the name that should be shown for the column */\n columnAliases?: Record<string, string>\n visibleColumnCount?: number\n hiddenColumns?: string[]\n defaultShowPlots?: boolean\n hideCopyToClipboard?: boolean\n hideSearchBarControl?: boolean\n /** When true, the text matches filter pill is shown but cannot be removed. Defaults to true. */\n lockTextMatchesQueryFilterPill?: boolean\n defaultShowSearchBar?: boolean\n showLastUpdatedOn?: boolean\n /** Default is INTERACTIVE */\n noContentPlaceholderType?: NoContentPlaceholderType\n isRowSelectionVisible?: boolean\n /** The set of columns that defines a uniqueness constraint on the table for the purposes of filtering based on row selection.\n * Note that Synapse tables have no internal concept of a primary key.\n */\n rowSelectionPrimaryKey?: string[]\n /** Look for additional filters using the given key. If not provided, the entity ID will be used.\n * @deprecated - configure the filter before passing a query */\n additionalFiltersSessionStorageKey?: string\n /** Configuration to add a help popover to each corresponding column header */\n helpConfiguration?: ColumnOrFacetHelpConfig[]\n hasCustomPlots?: boolean\n /** The set of external analysis platform to which the UI will support exporting data.\n * @default [] (no platforms are enabled) */\n enabledExternalAnalysisPlatforms?: ExternalAnalysisPlatform[]\n hideVisualizationsControl?: boolean\n}\n\n/**\n * QueryVisualizationWrapper manages UI state for components that query tables in Synapse. That state can be accessed\n * or updated using QueryVisualizationContext. A QueryVisualizationWrapper must be used within a QueryWrapper.\n */\nexport function QueryVisualizationWrapper(\n props: QueryVisualizationWrapperProps,\n) {\n const {\n noContentPlaceholderType = NoContentPlaceholderType.INTERACTIVE,\n defaultShowSearchBar = false,\n defaultShowPlots = true,\n hideCopyToClipboard = false,\n hideSearchBarControl = false,\n lockTextMatchesQueryFilterPill = true,\n unitDescription = 'result',\n helpConfiguration,\n hasCustomPlots = false,\n visibleColumnCount = Infinity,\n enabledExternalAnalysisPlatforms = DEFAULT_ENABLED_ANALYSIS_PLATFORMS,\n } = props\n\n const columnAliases = useMemo(\n () => props.columnAliases ?? {},\n [props.columnAliases],\n )\n\n const {\n getCurrentQueryRequest,\n hasFacetedSelectColumn,\n hasResettableFilters,\n rowDataQueryOptions,\n } = useQueryContext()\n const { data: queryMetadata } = useGetQueryMetadata()\n\n // Get the selectColumns from either query so that creating the context isn't bottlenecked by one or the other\n // Use the previous result as placeholder data so we don't reset the selectColumns unless they have actually changed.\n const { data: selectColumnsFromRowData } = useQuery({\n ...rowDataQueryOptions,\n select: data => data.responseBody?.queryResult?.queryResults.headers,\n placeholderData: prevData => prevData,\n })\n const { data: selectColumnsFromMetadata } = useGetQueryMetadata({\n select: data => data.responseBody?.selectColumns,\n placeholderData: prevData => prevData,\n })\n // We deep-compare-memoize the selectColumns so we don't reset visible columns if the reference changes, but not the contents (e.g. on page change)\n const selectColumns = useDeepCompareMemoize(\n selectColumnsFromRowData ?? selectColumnsFromMetadata ?? [],\n )\n\n const [showSqlEditor, setShowSqlEditor] = useState(false)\n const [showPlots, setShowPlots] = useState(defaultShowPlots)\n const [showCopyToClipboard, setShowCopyToClipboard] =\n useState(!hideCopyToClipboard)\n const [showFacetFilter, setShowFacetFilter] = useState(true)\n\n // The search bar and download confirmation should not be shown at the same time.\n const [\n showSearchBar,\n setShowSearchBar,\n showDownloadConfirmation,\n setShowDownloadConfirmation,\n ] = useMutuallyExclusiveState(\n defaultShowSearchBar && !hideSearchBarControl,\n false,\n )\n\n const [\n isShowingExportToAnalysisPlatformModal,\n setIsShowingExportToAnalysisPlatformModal,\n ] = useState<boolean>(false)\n\n const [visibleColumns, setVisibleColumns] = useState<string[]>([])\n\n const lastQueryRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n // Deep-compare-memoize so callers passing a fresh array literal\n // (e.g. `hiddenColumns={['topic']}`) don't reset visible columns on every\n // parent render.\n const hiddenColumns = useDeepCompareMemoize(props.hiddenColumns ?? [])\n useEffect(() => {\n // SWC-6030: If sql changes, reset what columns are visible\n const hidden = new Set(hiddenColumns)\n setVisibleColumns(\n selectColumns\n .filter(el => !hidden.has(el.name))\n .slice(0, visibleColumnCount)\n .map(el => el.name),\n )\n }, [\n selectColumns,\n lastQueryRequest.query.sql,\n visibleColumnCount,\n hiddenColumns,\n ])\n\n const getColumnDisplayName = useCallback(\n (columnName: string, jsonPath?: string) => {\n // SWC-5982: if force-display-original-column-names is set, then just return the string\n const forceDisplayOriginalColumnName =\n localStorage.getItem('force-display-original-column-names') === 'true'\n\n if (!columnName || (forceDisplayOriginalColumnName && !jsonPath)) {\n return columnName\n }\n if (columnAliases[columnName]) {\n return columnAliases[columnName]\n }\n if (jsonPath) {\n const columnModel = queryMetadata?.columnModels?.find(\n cm => cm.name === columnName,\n )\n if (columnModel?.jsonSubColumns) {\n const jsonSubColumn = columnModel.jsonSubColumns.find(\n jsc => jsc.jsonPath === jsonPath,\n )\n if (jsonSubColumn) {\n return jsonSubColumn.name\n }\n }\n }\n return unCamelCase(columnName)\n },\n [columnAliases, queryMetadata?.columnModels],\n )\n\n const getHelpText = useCallback(\n (columnName: string, jsonPath?: string): string | undefined => {\n if (Array.isArray(helpConfiguration)) {\n const helpConfig = helpConfiguration.find(\n config =>\n config.columnName === columnName && config.jsonPath === jsonPath,\n )\n return helpConfig?.helpText\n }\n return undefined\n },\n [helpConfiguration],\n )\n\n const NoContentPlaceholder = useCallback(\n () => (\n <NoContentPlaceholderComponent\n type={noContentPlaceholderType}\n hasResettableFilters={hasResettableFilters}\n />\n ),\n [noContentPlaceholderType, hasResettableFilters],\n )\n\n const context: QueryVisualizationContextType = useMemo(\n () => ({\n columnsToShowInTable: visibleColumns,\n setColumnsToShowInTable: setVisibleColumns,\n rgbIndex: props.rgbIndex,\n unitDescription: unitDescription,\n showLastUpdatedOn: props.showLastUpdatedOn,\n getColumnDisplayName,\n getDisplayValue,\n getHelpText,\n NoContentPlaceholder,\n isShowingExportToAnalysisPlatformModal:\n isShowingExportToAnalysisPlatformModal,\n setIsShowingExportToAnalysisPlatformModal:\n setIsShowingExportToAnalysisPlatformModal,\n showFacetFilter: hasFacetedSelectColumn ? showFacetFilter : false,\n setShowFacetFilter,\n hideSearchBarControl,\n lockTextMatchesQueryFilterPill,\n showSearchBar,\n setShowSearchBar,\n showDownloadConfirmation,\n setShowDownloadConfirmation,\n showSqlEditor,\n setShowSqlEditor,\n showPlots: hasCustomPlots || hasFacetedSelectColumn ? showPlots : false,\n setShowPlots,\n showCopyToClipboard,\n setShowCopyToClipboard,\n enabledExternalAnalysisPlatforms,\n }),\n [\n NoContentPlaceholder,\n getColumnDisplayName,\n getHelpText,\n hasFacetedSelectColumn,\n isShowingExportToAnalysisPlatformModal,\n props.rgbIndex,\n props.showLastUpdatedOn,\n setShowDownloadConfirmation,\n setShowSearchBar,\n showCopyToClipboard,\n showDownloadConfirmation,\n showFacetFilter,\n showPlots,\n showSearchBar,\n showSqlEditor,\n unitDescription,\n visibleColumns,\n hasCustomPlots,\n enabledExternalAnalysisPlatforms,\n hideSearchBarControl,\n lockTextMatchesQueryFilterPill,\n ],\n )\n /**\n * Render the children without any formatting\n */\n const { children } = props\n return (\n <QueryVisualizationContextProvider queryVisualizationContext={context}>\n {children}\n </QueryVisualizationContextProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,IAAM,IAAiE,EAAE;AAkDzE,SAAgB,EACd,GACA;CACA,IAAM,EACJ,8BAA2B,EAAyB,aACpD,0BAAuB,IACvB,sBAAmB,IACnB,0BAAsB,IACtB,0BAAuB,IACvB,oCAAiC,IACjC,qBAAkB,UAClB,sBACA,oBAAiB,IACjB,wBAAqB,UACrB,sCAAmC,MACjC,GAEE,IAAgB,QACd,EAAM,iBAAiB,EAAE,EAC/B,CAAC,EAAM,cAAc,CACtB,EAEK,EACJ,2BACA,2BACA,yBACA,2BACE,GAAiB,EACf,EAAE,MAAM,MAAkB,GAAqB,EAI/C,EAAE,MAAM,MAA6B,EAAS;EAClD,GAAG;EACH,SAAQ,MAAQ,EAAK,cAAc,aAAa,aAAa;EAC7D,kBAAiB,MAAY;EAC9B,CAAC,EACI,EAAE,MAAM,MAA8B,EAAoB;EAC9D,SAAQ,MAAQ,EAAK,cAAc;EACnC,kBAAiB,MAAY;EAC9B,CAAC,EAEI,IAAgB,EACpB,KAA4B,KAA6B,EAAE,CAC5D,EAEK,CAAC,GAAe,MAAoB,EAAS,GAAM,EACnD,CAAC,GAAW,KAAgB,EAAS,EAAiB,EACtD,CAAC,GAAqB,KAC1B,EAAS,CAAC,GAAoB,EAC1B,CAAC,GAAiB,KAAsB,EAAS,GAAK,EAGtD,CACJ,GACA,GACA,GACA,KACE,EACF,KAAwB,CAAC,GACzB,GACD,EAEK,CACJ,GACA,KACE,EAAkB,GAAM,EAEtB,CAAC,GAAgB,KAAqB,EAAmB,EAAE,CAAC,EAE5D,IAAmB,QACjB,GAAwB,EAC9B,CAAC,EAAuB,CACzB,EAKK,IAAgB,EAAsB,EAAM,iBAAiB,EAAE,CAAC;AACtE,UAAgB;EAEd,IAAM,IAAS,IAAI,IAAI,EAAc;AACrC,IACE,EACG,QAAO,MAAM,CAAC,EAAO,IAAI,EAAG,KAAK,CAAC,CAClC,MAAM,GAAG,EAAmB,CAC5B,KAAI,MAAM,EAAG,KAAK,CACtB;IACA;EACD;EACA,EAAiB,MAAM;EACvB;EACA;EACD,CAAC;CAEF,IAAM,IAAuB,GAC1B,GAAoB,MAAsB;EAEzC,IAAM,IACJ,aAAa,QAAQ,sCAAsC,KAAK;AAElE,MAAI,CAAC,KAAe,KAAkC,CAAC,EACrD,QAAO;AAET,MAAI,EAAc,GAChB,QAAO,EAAc;AAEvB,MAAI,GAAU;GACZ,IAAM,IAAc,GAAe,cAAc,MAC/C,MAAM,EAAG,SAAS,EACnB;AACD,OAAI,GAAa,gBAAgB;IAC/B,IAAM,IAAgB,EAAY,eAAe,MAC/C,MAAO,EAAI,aAAa,EACzB;AACD,QAAI,EACF,QAAO,EAAc;;;AAI3B,SAAO,EAAY,EAAW;IAEhC,CAAC,GAAe,GAAe,aAAa,CAC7C,EAEK,IAAc,GACjB,GAAoB,MAA0C;AAC7D,MAAI,MAAM,QAAQ,EAAkB,CAKlC,QAJmB,EAAkB,MACnC,MACE,EAAO,eAAe,KAAc,EAAO,aAAa,EAErD,EAAY;IAIvB,CAAC,EAAkB,CACpB,EAEK,IAAuB,QAEzB,kBAAC,GAAD;EACE,MAAM;EACgB;EACtB,CAAA,EAEJ,CAAC,GAA0B,EAAqB,CACjD,EAEK,KAAyC,SACtC;EACL,sBAAsB;EACtB,yBAAyB;EACzB,UAAU,EAAM;EACC;EACjB,mBAAmB,EAAM;EACzB;EACA;EACA;EACA,sBAAA;EAEE;EAEA;EACF,iBAAiB,IAAyB,IAAkB;EAC5D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW,KAAkB,IAAyB,IAAY;EAClE;EACA;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA,EAAM;EACN,EAAM;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF,EAIK,EAAE,iBAAa;AACrB,QACE,kBAAC,IAAD;EAAmC,2BAA2B;EAC3D;EACiC,CAAA"}
1
+ {"version":3,"file":"QueryVisualizationWrapper.js","names":[],"sources":["../../../src/components/QueryVisualizationWrapper/QueryVisualizationWrapper.tsx"],"sourcesContent":["import { getDisplayValue } from '@/utils/functions/getDataFromFromStorage'\nimport { unCamelCase } from '@/utils/functions/unCamelCase'\nimport useMutuallyExclusiveState from '@/utils/hooks/useMutuallyExclusiveState'\nimport { useQuery } from '@tanstack/react-query'\nimport { ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport { useQueryContext } from '../QueryContext'\nimport { useGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport { NoContentPlaceholderType } from '../SynapseTable/NoContentPlaceholderType'\nimport { ExternalAnalysisPlatform } from '../SynapseTable/export/ExternalAnalysisPlatformsConstants'\nimport NoContentPlaceholderComponent from './NoContentPlaceholder'\nimport {\n QueryVisualizationContextProvider,\n QueryVisualizationContextType,\n} from './QueryVisualizationContext'\n\n// By default, show no external analysis platforms.\nconst DEFAULT_ENABLED_ANALYSIS_PLATFORMS: ExternalAnalysisPlatform[] = []\n\ntype ColumnOrFacetHelpConfig = {\n /** Text that describes the column or facet */\n helpText: string\n /** The name of the column for which the markdown applies */\n columnName: string\n /** The JSON path matching a described JSON Column facet */\n jsonPath?: string\n}\n\nexport type QueryVisualizationWrapperProps = {\n children: ReactNode | ReactNode[]\n rgbIndex?: number\n /** The singular word to use to describe a what a row represents (e.g. \"file\"). Defaults to \"result\" */\n unitDescription?: string\n /** Mapping from column name to the name that should be shown for the column */\n columnAliases?: Record<string, string>\n visibleColumnCount?: number\n hiddenColumns?: string[]\n defaultShowPlots?: boolean\n hideCopyToClipboard?: boolean\n hideSearchBarControl?: boolean\n /** When true, the text matches filter pill is shown but cannot be removed. Defaults to true. */\n lockTextMatchesQueryFilterPill?: boolean\n defaultShowSearchBar?: boolean\n showLastUpdatedOn?: boolean\n /** Default is INTERACTIVE */\n noContentPlaceholderType?: NoContentPlaceholderType\n isRowSelectionVisible?: boolean\n /** The set of columns that defines a uniqueness constraint on the table for the purposes of filtering based on row selection.\n * Note that Synapse tables have no internal concept of a primary key.\n */\n rowSelectionPrimaryKey?: string[]\n /** Look for additional filters using the given key. If not provided, the entity ID will be used.\n * @deprecated - configure the filter before passing a query */\n additionalFiltersSessionStorageKey?: string\n /** Configuration to add a help popover to each corresponding column header */\n helpConfiguration?: ColumnOrFacetHelpConfig[]\n hasCustomPlots?: boolean\n /** The set of external analysis platform to which the UI will support exporting data.\n * @default [] (no platforms are enabled) */\n enabledExternalAnalysisPlatforms?: ExternalAnalysisPlatform[]\n hideVisualizationsControl?: boolean\n}\n\n/**\n * QueryVisualizationWrapper manages UI state for components that query tables in Synapse. That state can be accessed\n * or updated using QueryVisualizationContext. A QueryVisualizationWrapper must be used within a QueryWrapper.\n */\nexport function QueryVisualizationWrapper(\n props: QueryVisualizationWrapperProps,\n) {\n const {\n noContentPlaceholderType = NoContentPlaceholderType.INTERACTIVE,\n defaultShowSearchBar = false,\n defaultShowPlots = true,\n hideCopyToClipboard = false,\n hideSearchBarControl = false,\n lockTextMatchesQueryFilterPill = true,\n unitDescription = 'result',\n helpConfiguration,\n hasCustomPlots = false,\n visibleColumnCount = Infinity,\n enabledExternalAnalysisPlatforms = DEFAULT_ENABLED_ANALYSIS_PLATFORMS,\n } = props\n\n const columnAliases = useMemo(\n () => props.columnAliases ?? {},\n [props.columnAliases],\n )\n\n const {\n getCurrentQueryRequest,\n hasFacetedSelectColumn,\n hasResettableFilters,\n rowDataQueryOptions,\n } = useQueryContext()\n const { data: queryMetadata } = useGetQueryMetadata()\n\n // Get the selectColumns from either query so that creating the context isn't bottlenecked by one or the other\n // Use the previous result as placeholder data so we don't reset the selectColumns unless they have actually changed.\n const { data: selectColumnsFromRowData } = useQuery({\n ...rowDataQueryOptions,\n select: data => data.responseBody?.queryResult?.queryResults.headers,\n placeholderData: prevData => prevData,\n })\n const { data: selectColumnsFromMetadata } = useGetQueryMetadata({\n select: data => data.responseBody?.selectColumns,\n placeholderData: prevData => prevData,\n })\n // We deep-compare-memoize the selectColumns so we don't reset visible columns if the reference changes, but not the contents (e.g. on page change)\n const selectColumns = useDeepCompareMemoize(\n selectColumnsFromRowData ?? selectColumnsFromMetadata ?? [],\n )\n\n const [showSqlEditor, setShowSqlEditor] = useState(false)\n const [showPlots, setShowPlots] = useState(defaultShowPlots)\n const [showCopyToClipboard, setShowCopyToClipboard] =\n useState(!hideCopyToClipboard)\n const [showFacetFilter, setShowFacetFilter] = useState(true)\n\n // The search bar and download confirmation should not be shown at the same time.\n const [\n showSearchBar,\n setShowSearchBar,\n showDownloadConfirmation,\n setShowDownloadConfirmation,\n ] = useMutuallyExclusiveState(\n defaultShowSearchBar && !hideSearchBarControl,\n false,\n )\n\n const [\n isShowingExportToAnalysisPlatformModal,\n setIsShowingExportToAnalysisPlatformModal,\n ] = useState<boolean>(false)\n\n const [visibleColumns, setVisibleColumns] = useState<string[]>([])\n\n const lastQueryRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n // Deep-compare-memoize so callers passing a fresh array literal\n // (e.g. `hiddenColumns={['topic']}`) don't reset visible columns on every\n // parent render.\n const hiddenColumns = useDeepCompareMemoize(props.hiddenColumns ?? [])\n useEffect(() => {\n // SWC-6030: If sql changes, reset what columns are visible\n const hidden = new Set(hiddenColumns)\n setVisibleColumns(\n selectColumns\n .filter(el => !hidden.has(el.name))\n .slice(0, visibleColumnCount)\n .map(el => el.name),\n )\n }, [\n selectColumns,\n lastQueryRequest.query.sql,\n visibleColumnCount,\n hiddenColumns,\n ])\n\n const getColumnDisplayName = useCallback(\n (columnName: string, jsonPath?: string) => {\n // SWC-5982: if force-display-original-column-names is set, then just return the string\n const forceDisplayOriginalColumnName =\n localStorage.getItem('force-display-original-column-names') === 'true'\n\n if (!columnName || (forceDisplayOriginalColumnName && !jsonPath)) {\n return columnName\n }\n if (columnAliases[columnName]) {\n return columnAliases[columnName]\n }\n if (jsonPath) {\n const columnModel = queryMetadata?.columnModels?.find(\n cm => cm.name === columnName,\n )\n if (columnModel?.jsonSubColumns) {\n const jsonSubColumn = columnModel.jsonSubColumns.find(\n jsc => jsc.jsonPath === jsonPath,\n )\n if (jsonSubColumn) {\n return jsonSubColumn.name\n }\n }\n }\n return unCamelCase(columnName)\n },\n [columnAliases, queryMetadata?.columnModels],\n )\n\n const getHelpText = useCallback(\n (columnName: string, jsonPath?: string): string | undefined => {\n if (Array.isArray(helpConfiguration)) {\n const helpConfig = helpConfiguration.find(\n config =>\n config.columnName === columnName && config.jsonPath === jsonPath,\n )\n return helpConfig?.helpText\n }\n return undefined\n },\n [helpConfiguration],\n )\n\n const NoContentPlaceholder = useCallback(\n () => (\n <NoContentPlaceholderComponent\n type={noContentPlaceholderType}\n hasResettableFilters={hasResettableFilters}\n />\n ),\n [noContentPlaceholderType, hasResettableFilters],\n )\n\n const context: QueryVisualizationContextType = useMemo(\n () => ({\n columnsToShowInTable: visibleColumns,\n setColumnsToShowInTable: setVisibleColumns,\n rgbIndex: props.rgbIndex,\n unitDescription: unitDescription,\n showLastUpdatedOn: props.showLastUpdatedOn,\n getColumnDisplayName,\n getDisplayValue,\n getHelpText,\n NoContentPlaceholder,\n isShowingExportToAnalysisPlatformModal:\n isShowingExportToAnalysisPlatformModal,\n setIsShowingExportToAnalysisPlatformModal:\n setIsShowingExportToAnalysisPlatformModal,\n showFacetFilter: hasFacetedSelectColumn ? showFacetFilter : false,\n setShowFacetFilter,\n hideSearchBarControl,\n lockTextMatchesQueryFilterPill,\n showSearchBar,\n setShowSearchBar,\n showDownloadConfirmation,\n setShowDownloadConfirmation,\n showSqlEditor,\n setShowSqlEditor,\n showPlots: hasCustomPlots || hasFacetedSelectColumn ? showPlots : false,\n setShowPlots,\n showCopyToClipboard,\n setShowCopyToClipboard,\n enabledExternalAnalysisPlatforms,\n }),\n [\n NoContentPlaceholder,\n getColumnDisplayName,\n getHelpText,\n hasFacetedSelectColumn,\n isShowingExportToAnalysisPlatformModal,\n props.rgbIndex,\n props.showLastUpdatedOn,\n setShowDownloadConfirmation,\n setShowSearchBar,\n showCopyToClipboard,\n showDownloadConfirmation,\n showFacetFilter,\n showPlots,\n showSearchBar,\n showSqlEditor,\n unitDescription,\n visibleColumns,\n hasCustomPlots,\n enabledExternalAnalysisPlatforms,\n hideSearchBarControl,\n lockTextMatchesQueryFilterPill,\n ],\n )\n /**\n * Render the children without any formatting\n */\n const { children } = props\n return (\n <QueryVisualizationContextProvider queryVisualizationContext={context}>\n {children}\n </QueryVisualizationContextProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAiBA,IAAM,IAAiE,CAAC;AAkDxE,SAAgB,EACd,GACA;CACA,IAAM,EACJ,8BAA2B,EAAyB,aACpD,0BAAuB,IACvB,sBAAmB,IACnB,0BAAsB,IACtB,0BAAuB,IACvB,oCAAiC,IACjC,qBAAkB,UAClB,sBACA,oBAAiB,IACjB,wBAAqB,UACrB,sCAAmC,MACjC,GAEE,IAAgB,QACd,EAAM,iBAAiB,CAAC,GAC9B,CAAC,EAAM,aAAa,CACtB,GAEM,EACJ,2BACA,2BACA,yBACA,2BACE,EAAgB,GACd,EAAE,MAAM,MAAkB,EAAoB,GAI9C,EAAE,MAAM,MAA6B,EAAS;EAClD,GAAG;EACH,SAAQ,MAAQ,EAAK,cAAc,aAAa,aAAa;EAC7D,kBAAiB,MAAY;CAC/B,CAAC,GACK,EAAE,MAAM,MAA8B,EAAoB;EAC9D,SAAQ,MAAQ,EAAK,cAAc;EACnC,kBAAiB,MAAY;CAC/B,CAAC,GAEK,IAAgB,EACpB,KAA4B,KAA6B,CAAC,CAC5D,GAEM,CAAC,GAAe,MAAoB,EAAS,EAAK,GAClD,CAAC,GAAW,KAAgB,EAAS,CAAgB,GACrD,CAAC,GAAqB,KAC1B,EAAS,CAAC,EAAmB,GACzB,CAAC,GAAiB,KAAsB,EAAS,EAAI,GAGrD,CACJ,GACA,GACA,GACA,KACE,EACF,KAAwB,CAAC,GACzB,EACF,GAEM,CACJ,GACA,KACE,EAAkB,EAAK,GAErB,CAAC,GAAgB,KAAqB,EAAmB,CAAC,CAAC,GAE3D,IAAmB,QACjB,EAAuB,GAC7B,CAAC,CAAsB,CACzB,GAKM,IAAgB,EAAsB,EAAM,iBAAiB,CAAC,CAAC;CACrE,SAAgB;EAEd,IAAM,IAAS,IAAI,IAAI,CAAa;EACpC,EACE,EACG,QAAO,MAAM,CAAC,EAAO,IAAI,EAAG,IAAI,CAAC,EACjC,MAAM,GAAG,CAAkB,EAC3B,KAAI,MAAM,EAAG,IAAI,CACtB;CACF,GAAG;EACD;EACA,EAAiB,MAAM;EACvB;EACA;CACF,CAAC;CAED,IAAM,IAAuB,GAC1B,GAAoB,MAAsB;EAEzC,IAAM,IACJ,aAAa,QAAQ,qCAAqC,MAAM;EAElE,IAAI,CAAC,KAAe,KAAkC,CAAC,GACrD,OAAO;EAET,IAAI,EAAc,IAChB,OAAO,EAAc;EAEvB,IAAI,GAAU;GACZ,IAAM,IAAc,GAAe,cAAc,MAC/C,MAAM,EAAG,SAAS,CACpB;GACA,IAAI,GAAa,gBAAgB;IAC/B,IAAM,IAAgB,EAAY,eAAe,MAC/C,MAAO,EAAI,aAAa,CAC1B;IACA,IAAI,GACF,OAAO,EAAc;GAEzB;EACF;EACA,OAAO,EAAY,CAAU;CAC/B,GACA,CAAC,GAAe,GAAe,YAAY,CAC7C,GAEM,IAAc,GACjB,GAAoB,MAA0C;EAC7D,IAAI,MAAM,QAAQ,CAAiB,GAKjC,OAJmB,EAAkB,MACnC,MACE,EAAO,eAAe,KAAc,EAAO,aAAa,CAErD,GAAY;CAGvB,GACA,CAAC,CAAiB,CACpB,GAEM,IAAuB,QAEzB,kBAAC,GAAD;EACE,MAAM;EACgB;CACvB,CAAA,GAEH,CAAC,GAA0B,CAAoB,CACjD,GAEM,KAAyC,SACtC;EACL,sBAAsB;EACtB,yBAAyB;EACzB,UAAU,EAAM;EACC;EACjB,mBAAmB,EAAM;EACzB;EACA;EACA;EACA,sBAAA;EAEE;EAEA;EACF,iBAAiB,IAAyB,IAAkB;EAC5D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW,KAAkB,IAAyB,IAAY;EAClE;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA,EAAM;EACN,EAAM;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF,GAIM,EAAE,iBAAa;CACrB,OACE,kBAAC,IAAD;EAAmC,2BAA2B;EAC3D;CACgC,CAAA;AAEvC"}
@@ -4,50 +4,50 @@ import { ConfirmationDialog as n } from "../ConfirmationDialog/ConfirmationDialo
4
4
  import "../ConfirmationDialog/index.js";
5
5
  import { QueryContextProvider as ee } from "../QueryContext/QueryContext.js";
6
6
  import te from "../../utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js";
7
- import { useTableQueryUseQueryOptions as ne } from "./TableQueryUseQueryOptions.js";
8
- import { isRowSelectionUIFloatingAtom as r, isRowSelectionVisibleAtom as i, rowSelectionPrimaryKeyAtom as a, selectedRowsAtom as o, useHasSelectedRowsAtomValue as s } from "./TableRowSelectionState.js";
9
- import c from "./useComputeRowSelectionPrimaryKey.js";
10
- import l from "./useHasFacetedSelectColumn.js";
11
- import u from "./useOnQueryDataChange.js";
12
- import { useCallback as d, useEffect as f, useMemo as p } from "react";
13
- import { jsx as m, jsxs as re } from "react/jsx-runtime";
14
- import { useDeepCompareMemoize as ie } from "use-deep-compare-effect";
15
- import { Provider as h, useSetAtom as g } from "jotai";
16
- import _ from "lodash-es/noop";
7
+ import { useTableQueryUseQueryOptions as r } from "./TableQueryUseQueryOptions.js";
8
+ import { isRowSelectionUIFloatingAtom as i, isRowSelectionVisibleAtom as a, rowSelectionPrimaryKeyAtom as o, selectedRowsAtom as s, useHasSelectedRowsAtomValue as c } from "./TableRowSelectionState.js";
9
+ import l from "./useComputeRowSelectionPrimaryKey.js";
10
+ import u from "./useHasFacetedSelectColumn.js";
11
+ import d from "./useOnQueryDataChange.js";
12
+ import { useCallback as f, useEffect as p, useMemo as m } from "react";
13
+ import { jsx as h, jsxs as ne } from "react/jsx-runtime";
14
+ import { useDeepCompareMemoize as re } from "use-deep-compare-effect";
15
+ import ie from "lodash-es/noop";
16
+ import { Provider as g, useSetAtom as _ } from "jotai";
17
17
  //#region src/components/QueryWrapper/QueryWrapper.tsx
18
18
  function v(t) {
19
- return /* @__PURE__ */ m(e, { children: /* @__PURE__ */ m(y, { ...t }) });
19
+ return /* @__PURE__ */ h(e, { children: /* @__PURE__ */ h(y, { ...t }) });
20
20
  }
21
21
  function y(e) {
22
- let { initQueryRequest: h, onQueryChange: v, onQueryResultBundleChange: y = _, lockedColumn: b, componentIndex: x, shouldDeepLink: S, onViewSharingSettingsClicked: C, isRowSelectionVisible: w = !1, isRowSelectionUIFloating: T = !0, rowSelectionPrimaryKey: E, isInfinite: D = !1, combineRangeFacetConfig: O, fileIdColumnName: k, fileVersionColumnName: A, fileNameColumnName: j } = e, { entityId: M = "", versionNumber: N, getInitQueryRequest: P, getCurrentQueryRequest: F, setQuery: I, resetQuery: L, removeSelectedFacet: R, removeValueFromSelectedFacet: z, removeQueryFilter: ae, removeValueFromQueryFilter: B, onConfirmChange: V, isConfirmingChange: H, onCancelChange: U, nextQueryRequest: W, currentQueryRequest: G, addValueToSelectedFacet: K, setRangeFacetValue: q, resetDebounceTimer: J, currentPage: oe, goToPage: se, pageSize: ce, setPageSize: le } = te({
23
- initQueryRequest: h,
22
+ let { initQueryRequest: g, onQueryChange: v, onQueryResultBundleChange: y = ie, lockedColumn: b, componentIndex: x, shouldDeepLink: S, onViewSharingSettingsClicked: C, isRowSelectionVisible: w = !1, isRowSelectionUIFloating: T = !0, rowSelectionPrimaryKey: E, isInfinite: D = !1, combineRangeFacetConfig: O, fileIdColumnName: k, fileVersionColumnName: A, fileNameColumnName: j } = e, { entityId: M = "", versionNumber: N, getInitQueryRequest: P, getCurrentQueryRequest: F, setQuery: I, resetQuery: L, removeSelectedFacet: R, removeValueFromSelectedFacet: z, removeQueryFilter: ae, removeValueFromQueryFilter: B, onConfirmChange: V, isConfirmingChange: H, onCancelChange: U, nextQueryRequest: W, currentQueryRequest: G, addValueToSelectedFacet: K, setRangeFacetValue: q, resetDebounceTimer: J, currentPage: oe, goToPage: se, pageSize: ce, setPageSize: le } = te({
23
+ initQueryRequest: g,
24
24
  shouldDeepLink: S,
25
25
  componentIndex: x,
26
26
  onQueryChange: v,
27
- requireConfirmationOnChange: s()
28
- }), { rowDataQueryOptions: ue, rowDataInfiniteQueryOptions: de, queryMetadataQueryOptions: Y } = ne(p(() => F(), [F]), b), fe = l(Y), pe = p(() => t(F().query, b), [F, b]), X = g(i);
29
- f(() => {
27
+ requireConfirmationOnChange: c()
28
+ }), { rowDataQueryOptions: ue, rowDataInfiniteQueryOptions: de, queryMetadataQueryOptions: Y } = r(m(() => F(), [F]), b), fe = u(Y), pe = m(() => t(F().query, b), [F, b]), X = _(a);
29
+ p(() => {
30
30
  X(w);
31
31
  }, [w, X]);
32
- let Z = g(r);
33
- f(() => {
32
+ let Z = _(i);
33
+ p(() => {
34
34
  Z(T);
35
35
  }, [T, Z]);
36
- let Q = c({
36
+ let Q = l({
37
37
  entityId: M,
38
38
  versionNumber: N,
39
39
  rowSelectionPrimaryKeyFromProps: E,
40
40
  queryMetadataQueryOptions: Y
41
- }), $ = g(a);
42
- f(() => {
41
+ }), $ = _(o);
42
+ p(() => {
43
43
  $(Q);
44
44
  }, [Q, $]);
45
- let me = g(o), he = d((e) => y(JSON.stringify(e)), [y]);
46
- u({
45
+ let me = _(s), he = f((e) => y(JSON.stringify(e)), [y]);
46
+ d({
47
47
  queryBundleRequest: F(),
48
48
  onChange: he
49
49
  });
50
- let ge = ie({
50
+ let ge = re({
51
51
  isInfinite: D,
52
52
  entityId: M,
53
53
  versionNumber: N,
@@ -80,9 +80,9 @@ function y(e) {
80
80
  fileVersionColumnName: A,
81
81
  fileNameColumnName: j
82
82
  }), { children: _e } = e;
83
- return /* @__PURE__ */ re(ee, {
83
+ return /* @__PURE__ */ ne(ee, {
84
84
  queryContext: ge,
85
- children: [/* @__PURE__ */ m(n, {
85
+ children: [/* @__PURE__ */ h(n, {
86
86
  open: H,
87
87
  title: "Change Query and Clear Selection?",
88
88
  content: "Changing the current query will cause your current selection to be lost. Are you sure you want to proceed?",
@@ -97,7 +97,7 @@ function y(e) {
97
97
  });
98
98
  }
99
99
  function b(e) {
100
- return /* @__PURE__ */ m(h, { children: /* @__PURE__ */ m(v, { ...e }) });
100
+ return /* @__PURE__ */ h(g, { children: /* @__PURE__ */ h(v, { ...e }) });
101
101
  }
102
102
  //#endregion
103
103
  export { b as QueryWrapper };
@@ -1 +1 @@
1
- {"version":3,"file":"QueryWrapper.js","names":[],"sources":["../../../src/components/QueryWrapper/QueryWrapper.tsx"],"sourcesContent":["import { LockedColumn } from '@/utils/types/LockedColumn'\nimport { hasResettableFilters as hasResettableFiltersUtil } from '@/utils/functions/queryUtils'\nimport useImmutableTableQuery from '@/utils/hooks/useImmutableTableQuery/useImmutableTableQuery'\nimport {\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport { Provider, useSetAtom } from 'jotai'\nimport noop from 'lodash-es/noop'\nimport { PropsWithChildren, useCallback, useEffect, useMemo } from 'react'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport {\n CombineRangeFacetConfig,\n QueryContextProvider,\n QueryContextType,\n} from '../QueryContext/QueryContext'\nimport { useTableQueryUseQueryOptions } from './TableQueryUseQueryOptions'\nimport {\n isRowSelectionUIFloatingAtom,\n isRowSelectionVisibleAtom,\n rowSelectionPrimaryKeyAtom,\n selectedRowsAtom,\n useHasSelectedRowsAtomValue,\n} from './TableRowSelectionState'\nimport useComputeRowSelectionPrimaryKey from './useComputeRowSelectionPrimaryKey'\nimport useHasFacetedSelectColumn from './useHasFacetedSelectColumn'\nimport useOnQueryDataChange from './useOnQueryDataChange'\nimport { SessionInitializedGuard } from '@/utils/AppUtils/session/SessionInitializedGuard'\n\nexport type QueryWrapperProps = PropsWithChildren<{\n initQueryRequest: QueryBundleRequest\n componentIndex?: number //used for deep linking\n shouldDeepLink?: boolean\n onQueryChange?: (newQueryJson: string) => void\n /** Called when the query result rows change */\n onQueryResultBundleChange?: (newQueryResultBundleJson: string) => void\n lockedColumn?: LockedColumn\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n isRowSelectionVisible?: boolean\n /** The set of columns that defines a uniqueness constraint on the table for the purposes of filtering based on row selection.\n * Note that Synapse tables have no internal concept of a primary key.\n */\n rowSelectionPrimaryKey?: string[]\n /** By default, the row selection UI will float at the bottom of the viewport. Set to false to make it inline */\n isRowSelectionUIFloating?: boolean\n isInfinite?: boolean\n combineRangeFacetConfig?: CombineRangeFacetConfig\n /** If provided, will use the value in this column instead of the rowID for the access column, download column, etc */\n fileIdColumnName?: string\n fileNameColumnName?: string\n /** If provided, will use the value in this column instead of the row version number for the access column, download column, etc */\n fileVersionColumnName?: string\n}>\n\n/**\n * Component that manages the state of a Synapse table query. Data can be accessed via QueryContext using\n * either `useQueryContext` or `QueryContextConsumer`.\n */\nfunction QueryWrapperInternal(props: QueryWrapperProps) {\n return (\n <SessionInitializedGuard>\n <QueryWrapperInternalWithSession {...props} />\n </SessionInitializedGuard>\n )\n}\n\n/**\n * Internal component that renders after session is initialized\n */\nfunction QueryWrapperInternalWithSession(props: QueryWrapperProps) {\n const {\n initQueryRequest,\n onQueryChange,\n onQueryResultBundleChange = noop,\n lockedColumn,\n componentIndex,\n shouldDeepLink,\n onViewSharingSettingsClicked,\n isRowSelectionVisible: isRowSelectionVisibleFromProps = false,\n isRowSelectionUIFloating: isRowSelectionUIFloatingFromProps = true,\n rowSelectionPrimaryKey: rowSelectionPrimaryKeyFromProps,\n isInfinite = false,\n combineRangeFacetConfig,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n } = props\n\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const immutableTableQueryResult = useImmutableTableQuery({\n initQueryRequest,\n shouldDeepLink,\n componentIndex,\n onQueryChange,\n requireConfirmationOnChange: hasSelectedRows,\n })\n const {\n entityId = '',\n versionNumber,\n getInitQueryRequest,\n getCurrentQueryRequest,\n setQuery,\n resetQuery,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n removeQueryFilter,\n removeValueFromQueryFilter,\n onConfirmChange,\n isConfirmingChange,\n onCancelChange,\n nextQueryRequest,\n currentQueryRequest,\n addValueToSelectedFacet,\n setRangeFacetValue,\n resetDebounceTimer,\n currentPage,\n goToPage,\n pageSize,\n setPageSize,\n } = immutableTableQueryResult\n\n const lastQueryRequest = useMemo(() => {\n return getCurrentQueryRequest()\n }, [getCurrentQueryRequest])\n\n const {\n rowDataQueryOptions,\n rowDataInfiniteQueryOptions,\n queryMetadataQueryOptions,\n } = useTableQueryUseQueryOptions(lastQueryRequest, lockedColumn)\n\n const hasFacetedSelectColumn = useHasFacetedSelectColumn(\n queryMetadataQueryOptions,\n )\n\n const hasResettableFilters = useMemo(() => {\n const request = getCurrentQueryRequest()\n return hasResettableFiltersUtil(request.query, lockedColumn)\n }, [getCurrentQueryRequest, lockedColumn])\n\n const setIsRowSelectionVisible = useSetAtom(isRowSelectionVisibleAtom)\n useEffect(() => {\n setIsRowSelectionVisible(isRowSelectionVisibleFromProps)\n }, [isRowSelectionVisibleFromProps, setIsRowSelectionVisible])\n\n const setIsRowSelectionUIFloating = useSetAtom(isRowSelectionUIFloatingAtom)\n useEffect(() => {\n setIsRowSelectionUIFloating(isRowSelectionUIFloatingFromProps)\n }, [isRowSelectionUIFloatingFromProps, setIsRowSelectionUIFloating])\n\n const rowSelectionPrimaryKey = useComputeRowSelectionPrimaryKey({\n entityId,\n versionNumber,\n rowSelectionPrimaryKeyFromProps,\n queryMetadataQueryOptions,\n })\n const setRowSelectionPrimaryKey = useSetAtom(rowSelectionPrimaryKeyAtom)\n useEffect(() => {\n setRowSelectionPrimaryKey(rowSelectionPrimaryKey)\n }, [rowSelectionPrimaryKey, setRowSelectionPrimaryKey])\n\n const setSelectedRows = useSetAtom(selectedRowsAtom)\n const onChangeCallback = useCallback(\n (data: QueryResultBundle) =>\n onQueryResultBundleChange(JSON.stringify(data)),\n [onQueryResultBundleChange],\n )\n // Track changes to the query row data and propagate to callback\n useOnQueryDataChange({\n queryBundleRequest: getCurrentQueryRequest(),\n onChange: onChangeCallback,\n })\n\n const context: QueryContextType = useDeepCompareMemoize({\n isInfinite,\n entityId,\n versionNumber,\n nextQueryRequest,\n currentQueryRequest,\n getCurrentQueryRequest: getCurrentQueryRequest,\n getInitQueryRequest,\n executeQueryRequest: setQuery,\n hasFacetedSelectColumn,\n hasResettableFilters,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n resetQuery,\n removeQueryFilter,\n removeValueFromQueryFilter,\n onViewSharingSettingsClicked,\n addValueToSelectedFacet,\n combineRangeFacetConfig,\n setRangeFacetValue,\n resetDebounceTimer,\n rowDataQueryOptions,\n rowDataInfiniteQueryOptions,\n queryMetadataQueryOptions,\n currentPage,\n goToPage,\n pageSize,\n setPageSize,\n lockedColumn,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n })\n\n /**\n * Render the children without any formatting\n */\n const { children } = props\n return (\n <QueryContextProvider queryContext={context}>\n <ConfirmationDialog\n open={isConfirmingChange}\n title={'Change Query and Clear Selection?'}\n content={\n 'Changing the current query will cause your current selection to be lost. Are you sure you want to proceed?'\n }\n confirmButtonProps={{\n children: 'Clear Selection and Update Query',\n }}\n onConfirm={() => {\n setSelectedRows([])\n onConfirmChange()\n }}\n onCancel={() => {\n onCancelChange()\n }}\n />\n {children}\n </QueryContextProvider>\n )\n}\n\nexport function QueryWrapper(props: QueryWrapperProps) {\n // Wrap in a Jotai provider to ensure the Jotai atomic state is unique to this component tree\n // i.e. other instances of QueryWrapper will not share state with this instance\n return (\n <Provider>\n <QueryWrapperInternal {...props} />\n </Provider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA2DA,SAAS,EAAqB,GAA0B;AACtD,QACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAiC,GAAI,GAAS,CAAA,EACtB,CAAA;;AAO9B,SAAS,EAAgC,GAA0B;CACjE,IAAM,EACJ,qBACA,kBACA,+BAA4B,GAC5B,iBACA,mBACA,mBACA,iCACA,uBAAuB,IAAiC,IACxD,0BAA0B,IAAoC,IAC9D,wBAAwB,GACxB,gBAAa,IACb,4BACA,qBACA,0BACA,0BACE,GAWE,EACJ,cAAW,IACX,kBACA,wBACA,2BACA,aACA,eACA,wBACA,iCACA,uBACA,+BACA,oBACA,uBACA,mBACA,qBACA,wBACA,4BACA,uBACA,uBACA,iBACA,cACA,cACA,oBA7BgC,GAAuB;EACvD;EACA;EACA;EACA;EACA,6BAPsB,GAOO;EAC9B,CAwBG,EAME,EACJ,yBACA,iCACA,iCACE,GARqB,QAChB,GAAwB,EAC9B,CAAC,EAAuB,CAMM,EAAkB,EAAa,EAE1D,KAAyB,EAC7B,EACD,EAEK,KAAuB,QAEpB,EADS,GACgB,CAAQ,OAAO,EAAa,EAC3D,CAAC,GAAwB,EAAa,CAAC,EAEpC,IAA2B,EAAW,EAA0B;AACtE,SAAgB;AACd,IAAyB,EAA+B;IACvD,CAAC,GAAgC,EAAyB,CAAC;CAE9D,IAAM,IAA8B,EAAW,EAA6B;AAC5E,SAAgB;AACd,IAA4B,EAAkC;IAC7D,CAAC,GAAmC,EAA4B,CAAC;CAEpE,IAAM,IAAyB,EAAiC;EAC9D;EACA;EACA;EACA;EACD,CAAC,EACI,IAA4B,EAAW,EAA2B;AACxE,SAAgB;AACd,IAA0B,EAAuB;IAChD,CAAC,GAAwB,EAA0B,CAAC;CAEvD,IAAM,KAAkB,EAAW,EAAiB,EAC9C,KAAmB,GACtB,MACC,EAA0B,KAAK,UAAU,EAAK,CAAC,EACjD,CAAC,EAA0B,CAC5B;AAED,GAAqB;EACnB,oBAAoB,GAAwB;EAC5C,UAAU;EACX,CAAC;CAEF,IAAM,KAA4B,GAAsB;EACtD;EACA;EACA;EACA;EACA;EACwB;EACxB;EACA,qBAAqB;EACrB;EACA,sBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EAKI,EAAE,iBAAa;AACrB,QACE,mBAAC,IAAD;EAAsB,cAAc;YAApC,CACE,kBAAC,GAAD;GACE,MAAM;GACN,OAAO;GACP,SACE;GAEF,oBAAoB,EAClB,UAAU,oCACX;GACD,iBAAiB;AAEf,IADA,GAAgB,EAAE,CAAC,EACnB,GAAiB;;GAEnB,gBAAgB;AACd,OAAgB;;GAElB,CAAA,EACD,GACoB;;;AAI3B,SAAgB,EAAa,GAA0B;AAGrD,QACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAsB,GAAI,GAAS,CAAA,EAC1B,CAAA"}
1
+ {"version":3,"file":"QueryWrapper.js","names":[],"sources":["../../../src/components/QueryWrapper/QueryWrapper.tsx"],"sourcesContent":["import { LockedColumn } from '@/utils/types/LockedColumn'\nimport { hasResettableFilters as hasResettableFiltersUtil } from '@/utils/functions/queryUtils'\nimport useImmutableTableQuery from '@/utils/hooks/useImmutableTableQuery/useImmutableTableQuery'\nimport {\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport { Provider, useSetAtom } from 'jotai'\nimport noop from 'lodash-es/noop'\nimport { PropsWithChildren, useCallback, useEffect, useMemo } from 'react'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport {\n CombineRangeFacetConfig,\n QueryContextProvider,\n QueryContextType,\n} from '../QueryContext/QueryContext'\nimport { useTableQueryUseQueryOptions } from './TableQueryUseQueryOptions'\nimport {\n isRowSelectionUIFloatingAtom,\n isRowSelectionVisibleAtom,\n rowSelectionPrimaryKeyAtom,\n selectedRowsAtom,\n useHasSelectedRowsAtomValue,\n} from './TableRowSelectionState'\nimport useComputeRowSelectionPrimaryKey from './useComputeRowSelectionPrimaryKey'\nimport useHasFacetedSelectColumn from './useHasFacetedSelectColumn'\nimport useOnQueryDataChange from './useOnQueryDataChange'\nimport { SessionInitializedGuard } from '@/utils/AppUtils/session/SessionInitializedGuard'\n\nexport type QueryWrapperProps = PropsWithChildren<{\n initQueryRequest: QueryBundleRequest\n componentIndex?: number //used for deep linking\n shouldDeepLink?: boolean\n onQueryChange?: (newQueryJson: string) => void\n /** Called when the query result rows change */\n onQueryResultBundleChange?: (newQueryResultBundleJson: string) => void\n lockedColumn?: LockedColumn\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n isRowSelectionVisible?: boolean\n /** The set of columns that defines a uniqueness constraint on the table for the purposes of filtering based on row selection.\n * Note that Synapse tables have no internal concept of a primary key.\n */\n rowSelectionPrimaryKey?: string[]\n /** By default, the row selection UI will float at the bottom of the viewport. Set to false to make it inline */\n isRowSelectionUIFloating?: boolean\n isInfinite?: boolean\n combineRangeFacetConfig?: CombineRangeFacetConfig\n /** If provided, will use the value in this column instead of the rowID for the access column, download column, etc */\n fileIdColumnName?: string\n fileNameColumnName?: string\n /** If provided, will use the value in this column instead of the row version number for the access column, download column, etc */\n fileVersionColumnName?: string\n}>\n\n/**\n * Component that manages the state of a Synapse table query. Data can be accessed via QueryContext using\n * either `useQueryContext` or `QueryContextConsumer`.\n */\nfunction QueryWrapperInternal(props: QueryWrapperProps) {\n return (\n <SessionInitializedGuard>\n <QueryWrapperInternalWithSession {...props} />\n </SessionInitializedGuard>\n )\n}\n\n/**\n * Internal component that renders after session is initialized\n */\nfunction QueryWrapperInternalWithSession(props: QueryWrapperProps) {\n const {\n initQueryRequest,\n onQueryChange,\n onQueryResultBundleChange = noop,\n lockedColumn,\n componentIndex,\n shouldDeepLink,\n onViewSharingSettingsClicked,\n isRowSelectionVisible: isRowSelectionVisibleFromProps = false,\n isRowSelectionUIFloating: isRowSelectionUIFloatingFromProps = true,\n rowSelectionPrimaryKey: rowSelectionPrimaryKeyFromProps,\n isInfinite = false,\n combineRangeFacetConfig,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n } = props\n\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const immutableTableQueryResult = useImmutableTableQuery({\n initQueryRequest,\n shouldDeepLink,\n componentIndex,\n onQueryChange,\n requireConfirmationOnChange: hasSelectedRows,\n })\n const {\n entityId = '',\n versionNumber,\n getInitQueryRequest,\n getCurrentQueryRequest,\n setQuery,\n resetQuery,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n removeQueryFilter,\n removeValueFromQueryFilter,\n onConfirmChange,\n isConfirmingChange,\n onCancelChange,\n nextQueryRequest,\n currentQueryRequest,\n addValueToSelectedFacet,\n setRangeFacetValue,\n resetDebounceTimer,\n currentPage,\n goToPage,\n pageSize,\n setPageSize,\n } = immutableTableQueryResult\n\n const lastQueryRequest = useMemo(() => {\n return getCurrentQueryRequest()\n }, [getCurrentQueryRequest])\n\n const {\n rowDataQueryOptions,\n rowDataInfiniteQueryOptions,\n queryMetadataQueryOptions,\n } = useTableQueryUseQueryOptions(lastQueryRequest, lockedColumn)\n\n const hasFacetedSelectColumn = useHasFacetedSelectColumn(\n queryMetadataQueryOptions,\n )\n\n const hasResettableFilters = useMemo(() => {\n const request = getCurrentQueryRequest()\n return hasResettableFiltersUtil(request.query, lockedColumn)\n }, [getCurrentQueryRequest, lockedColumn])\n\n const setIsRowSelectionVisible = useSetAtom(isRowSelectionVisibleAtom)\n useEffect(() => {\n setIsRowSelectionVisible(isRowSelectionVisibleFromProps)\n }, [isRowSelectionVisibleFromProps, setIsRowSelectionVisible])\n\n const setIsRowSelectionUIFloating = useSetAtom(isRowSelectionUIFloatingAtom)\n useEffect(() => {\n setIsRowSelectionUIFloating(isRowSelectionUIFloatingFromProps)\n }, [isRowSelectionUIFloatingFromProps, setIsRowSelectionUIFloating])\n\n const rowSelectionPrimaryKey = useComputeRowSelectionPrimaryKey({\n entityId,\n versionNumber,\n rowSelectionPrimaryKeyFromProps,\n queryMetadataQueryOptions,\n })\n const setRowSelectionPrimaryKey = useSetAtom(rowSelectionPrimaryKeyAtom)\n useEffect(() => {\n setRowSelectionPrimaryKey(rowSelectionPrimaryKey)\n }, [rowSelectionPrimaryKey, setRowSelectionPrimaryKey])\n\n const setSelectedRows = useSetAtom(selectedRowsAtom)\n const onChangeCallback = useCallback(\n (data: QueryResultBundle) =>\n onQueryResultBundleChange(JSON.stringify(data)),\n [onQueryResultBundleChange],\n )\n // Track changes to the query row data and propagate to callback\n useOnQueryDataChange({\n queryBundleRequest: getCurrentQueryRequest(),\n onChange: onChangeCallback,\n })\n\n const context: QueryContextType = useDeepCompareMemoize({\n isInfinite,\n entityId,\n versionNumber,\n nextQueryRequest,\n currentQueryRequest,\n getCurrentQueryRequest: getCurrentQueryRequest,\n getInitQueryRequest,\n executeQueryRequest: setQuery,\n hasFacetedSelectColumn,\n hasResettableFilters,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n resetQuery,\n removeQueryFilter,\n removeValueFromQueryFilter,\n onViewSharingSettingsClicked,\n addValueToSelectedFacet,\n combineRangeFacetConfig,\n setRangeFacetValue,\n resetDebounceTimer,\n rowDataQueryOptions,\n rowDataInfiniteQueryOptions,\n queryMetadataQueryOptions,\n currentPage,\n goToPage,\n pageSize,\n setPageSize,\n lockedColumn,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n })\n\n /**\n * Render the children without any formatting\n */\n const { children } = props\n return (\n <QueryContextProvider queryContext={context}>\n <ConfirmationDialog\n open={isConfirmingChange}\n title={'Change Query and Clear Selection?'}\n content={\n 'Changing the current query will cause your current selection to be lost. Are you sure you want to proceed?'\n }\n confirmButtonProps={{\n children: 'Clear Selection and Update Query',\n }}\n onConfirm={() => {\n setSelectedRows([])\n onConfirmChange()\n }}\n onCancel={() => {\n onCancelChange()\n }}\n />\n {children}\n </QueryContextProvider>\n )\n}\n\nexport function QueryWrapper(props: QueryWrapperProps) {\n // Wrap in a Jotai provider to ensure the Jotai atomic state is unique to this component tree\n // i.e. other instances of QueryWrapper will not share state with this instance\n return (\n <Provider>\n <QueryWrapperInternal {...props} />\n </Provider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA2DA,SAAS,EAAqB,GAA0B;CACtD,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAiC,GAAI,EAAQ,CAAA,EACtB,CAAA;AAE7B;AAKA,SAAS,EAAgC,GAA0B;CACjE,IAAM,EACJ,qBACA,kBACA,+BAA4B,IAC5B,iBACA,mBACA,mBACA,iCACA,uBAAuB,IAAiC,IACxD,0BAA0B,IAAoC,IAC9D,wBAAwB,GACxB,gBAAa,IACb,4BACA,qBACA,0BACA,0BACE,GAWE,EACJ,cAAW,IACX,kBACA,wBACA,2BACA,aACA,eACA,wBACA,iCACA,uBACA,+BACA,oBACA,uBACA,mBACA,qBACA,wBACA,4BACA,uBACA,uBACA,iBACA,cACA,cACA,oBA7BgC,GAAuB;EACvD;EACA;EACA;EACA;EACA,6BAPsB,EAOO;CAC/B,CAwBI,GAME,EACJ,yBACA,iCACA,iCACE,EARqB,QAChB,EAAuB,GAC7B,CAAC,CAAsB,CAMO,GAAkB,CAAY,GAEzD,KAAyB,EAC7B,CACF,GAEM,KAAuB,QAEpB,EADS,EACgB,EAAQ,OAAO,CAAY,GAC1D,CAAC,GAAwB,CAAY,CAAC,GAEnC,IAA2B,EAAW,CAAyB;CACrE,QAAgB;EACd,EAAyB,CAA8B;CACzD,GAAG,CAAC,GAAgC,CAAwB,CAAC;CAE7D,IAAM,IAA8B,EAAW,CAA4B;CAC3E,QAAgB;EACd,EAA4B,CAAiC;CAC/D,GAAG,CAAC,GAAmC,CAA2B,CAAC;CAEnE,IAAM,IAAyB,EAAiC;EAC9D;EACA;EACA;EACA;CACF,CAAC,GACK,IAA4B,EAAW,CAA0B;CACvE,QAAgB;EACd,EAA0B,CAAsB;CAClD,GAAG,CAAC,GAAwB,CAAyB,CAAC;CAEtD,IAAM,KAAkB,EAAW,CAAgB,GAC7C,KAAmB,GACtB,MACC,EAA0B,KAAK,UAAU,CAAI,CAAC,GAChD,CAAC,CAAyB,CAC5B;CAEA,EAAqB;EACnB,oBAAoB,EAAuB;EAC3C,UAAU;CACZ,CAAC;CAED,IAAM,KAA4B,GAAsB;EACtD;EACA;EACA;EACA;EACA;EACwB;EACxB;EACA,qBAAqB;EACrB;EACA,sBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAKK,EAAE,iBAAa;CACrB,OACE,mBAAC,IAAD;EAAsB,cAAc;YAApC,CACE,kBAAC,GAAD;GACE,MAAM;GACN,OAAO;GACP,SACE;GAEF,oBAAoB,EAClB,UAAU,mCACZ;GACA,iBAAiB;IAEf,AADA,GAAgB,CAAC,CAAC,GAClB,EAAgB;GAClB;GACA,gBAAgB;IACd,EAAe;GACjB;EACD,CAAA,GACA,EACmB;;AAE1B;AAEA,SAAgB,EAAa,GAA0B;CAGrD,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAsB,GAAI,EAAQ,CAAA,EAC1B,CAAA;AAEd"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryWrapperLoadingScreen.js","names":[],"sources":["../../../src/components/QueryWrapper/QueryWrapperLoadingScreen.tsx"],"sourcesContent":["import { Box, LinearProgress, Typography } from '@mui/material'\n\ntype QueryWrapperLoadingScreenProps = { progressMessage?: string }\n\nexport default function QueryWrapperLoadingScreen(\n props: QueryWrapperLoadingScreenProps,\n) {\n const { progressMessage } = props\n return (\n <Box sx={{ my: 7.5, mx: 15 }}>\n <LinearProgress />\n {progressMessage && (\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.600',\n fontSize: '10px',\n textAlign: 'center',\n my: 1,\n }}\n >\n {progressMessage}\n </Typography>\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAIA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,uBAAoB;AAC5B,QACE,kBAAC,GAAD;EAAK,IAAI;GAAE,IAAI;GAAK,IAAI;GAAI;YAA5B,CACE,kBAAC,GAAD,EAAkB,CAAA,EACjB,KACC,kBAAC,GAAD;GACE,SAAS;GACT,IAAI;IACF,OAAO;IACP,UAAU;IACV,WAAW;IACX,IAAI;IACL;aAEA;GACU,CAAA,CAEX"}
1
+ {"version":3,"file":"QueryWrapperLoadingScreen.js","names":[],"sources":["../../../src/components/QueryWrapper/QueryWrapperLoadingScreen.tsx"],"sourcesContent":["import { Box, LinearProgress, Typography } from '@mui/material'\n\ntype QueryWrapperLoadingScreenProps = { progressMessage?: string }\n\nexport default function QueryWrapperLoadingScreen(\n props: QueryWrapperLoadingScreenProps,\n) {\n const { progressMessage } = props\n return (\n <Box sx={{ my: 7.5, mx: 15 }}>\n <LinearProgress />\n {progressMessage && (\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.600',\n fontSize: '10px',\n textAlign: 'center',\n my: 1,\n }}\n >\n {progressMessage}\n </Typography>\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAIA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,uBAAoB;CAC5B,OACE,kBAAC,GAAD;EAAK,IAAI;GAAE,IAAI;GAAK,IAAI;EAAG;YAA3B,CACE,kBAAC,GAAD,CAAiB,CAAA,GAChB,KACC,kBAAC,GAAD;GACE,SAAS;GACT,IAAI;IACF,OAAO;IACP,UAAU;IACV,WAAW;IACX,IAAI;GACN;aAEC;EACS,CAAA,CAEX;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableQueryUseQueryOptions.js","names":[],"sources":["../../../src/components/QueryWrapper/TableQueryUseQueryOptions.ts"],"sourcesContent":["import * as SynapseClient from '@/synapse-client/SynapseClient'\nimport {\n getInfiniteQueryResultBundleOptions,\n KeyFactory,\n tableQueryUseQueryDefaults,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n partitionQueryBundleRequestIntoRowsAndMetadata,\n removeLockedColumnFromFacetData,\n} from '@/utils/functions/queryUtils'\nimport { LockedColumn } from '@/utils/types/LockedColumn'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport {\n AsynchronousJobStatus,\n QueryBundleRequest,\n QueryResultBundle,\n RowSet,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n UseInfiniteQueryOptions,\n UseSuspenseQueryOptions,\n} from '@tanstack/react-query'\nimport { omit } from 'lodash-es'\nimport { useMemo } from 'react'\n\nexport type TableQueryUseQueryOptions = {\n rowDataQueryOptions: UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n RowSet | undefined\n >\n\n rowDataInfiniteQueryOptions: UseInfiniteQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n InfiniteData<AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>>,\n QueryKey,\n string | number | undefined\n >\n\n queryMetadataQueryOptions: UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n Omit<QueryResultBundle, 'queryResult'>\n >\n}\n\nexport function getTableQueryUseQueryOptions(\n queryBundleRequest: QueryBundleRequest,\n lockedColumn: LockedColumn | undefined,\n keyFactory: KeyFactory,\n accessToken: string | undefined,\n) {\n const { rowDataRequest, queryMetadataRequest } =\n partitionQueryBundleRequestIntoRowsAndMetadata(queryBundleRequest)\n const rowDataQueryOptions: TableQueryUseQueryOptions['rowDataQueryOptions'] =\n {\n ...tableQueryUseQueryDefaults,\n queryKey: keyFactory.getEntityTableQueryResultWithAsyncStatusQueryKey(\n rowDataRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getQueryTableAsyncJobResults(rowDataRequest, accessToken),\n select: data => data.responseBody?.queryResult?.queryResults,\n }\n\n const rowDataInfiniteQueryOptions: TableQueryUseQueryOptions['rowDataInfiniteQueryOptions'] =\n {\n ...getInfiniteQueryResultBundleOptions(\n rowDataRequest,\n keyFactory,\n accessToken,\n ),\n }\n\n const queryMetadataQueryOptions: TableQueryUseQueryOptions['queryMetadataQueryOptions'] =\n {\n ...tableQueryUseQueryDefaults,\n queryKey: keyFactory.getEntityTableQueryResultWithAsyncStatusQueryKey(\n queryMetadataRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getQueryTableAsyncJobResults(\n queryMetadataRequest,\n accessToken,\n ),\n\n select: data =>\n omit(\n removeLockedColumnFromFacetData(data.responseBody, lockedColumn),\n 'queryResults',\n ),\n }\n\n return {\n rowDataQueryOptions,\n rowDataInfiniteQueryOptions,\n queryMetadataQueryOptions,\n }\n}\n\n/**\n * Return the UseQueryOptions used to retrieve a table query's row data and query metadata.\n * @param queryBundleRequest\n * @param lockedColumn - remove a particular facet name (e.g. study) and all possible values based on the parameter\n * specified in the url this is to remove the facet from the charts, search and filter.\n */\nexport function useTableQueryUseQueryOptions(\n queryBundleRequest: QueryBundleRequest,\n lockedColumn?: LockedColumn,\n): TableQueryUseQueryOptions {\n const { keyFactory, accessToken } = useSynapseContext()\n\n return useMemo(\n () =>\n getTableQueryUseQueryOptions(\n queryBundleRequest,\n lockedColumn,\n keyFactory,\n accessToken,\n ),\n [keyFactory, accessToken, queryBundleRequest, lockedColumn],\n )\n}\n"],"mappings":";;;;;;;;AAkDA,SAAgB,EACd,GACA,GACA,GACA,GACA;CACA,IAAM,EAAE,mBAAgB,4BACtB,EAA+C,EAAmB;AA0CpE,QAAO;EACL,qBAAA;GAxCE,GAAG;GACH,UAAU,EAAW,iDACnB,GACA,GACD;GACD,eACE,EAA2C,GAAgB,EAAY;GACzE,SAAQ,MAAQ,EAAK,cAAc,aAAa;GAiClD;EACA,6BAAA,EA7BE,GAAG,EACD,GACA,GACA,EACD,EAyBH;EACA,2BAAA;GArBE,GAAG;GACH,UAAU,EAAW,iDACnB,GACA,GACD;GACD,eACE,EACE,GACA,EACD;GAEH,SAAQ,MACN,EACE,EAAgC,EAAK,cAAc,EAAa,EAChE,eACD;GAML;EACD;;AASH,SAAgB,EACd,GACA,GAC2B;CAC3B,IAAM,EAAE,eAAY,mBAAgB,GAAmB;AAEvD,QAAO,QAEH,EACE,GACA,GACA,GACA,EACD,EACH;EAAC;EAAY;EAAa;EAAoB;EAAa,CAC5D"}
1
+ {"version":3,"file":"TableQueryUseQueryOptions.js","names":[],"sources":["../../../src/components/QueryWrapper/TableQueryUseQueryOptions.ts"],"sourcesContent":["import * as SynapseClient from '@/synapse-client/SynapseClient'\nimport {\n getInfiniteQueryResultBundleOptions,\n KeyFactory,\n tableQueryUseQueryDefaults,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n partitionQueryBundleRequestIntoRowsAndMetadata,\n removeLockedColumnFromFacetData,\n} from '@/utils/functions/queryUtils'\nimport { LockedColumn } from '@/utils/types/LockedColumn'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport {\n AsynchronousJobStatus,\n QueryBundleRequest,\n QueryResultBundle,\n RowSet,\n} from '@sage-bionetworks/synapse-types'\nimport {\n InfiniteData,\n QueryKey,\n UseInfiniteQueryOptions,\n UseSuspenseQueryOptions,\n} from '@tanstack/react-query'\nimport { omit } from 'lodash-es'\nimport { useMemo } from 'react'\n\nexport type TableQueryUseQueryOptions = {\n rowDataQueryOptions: UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n RowSet | undefined\n >\n\n rowDataInfiniteQueryOptions: UseInfiniteQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n InfiniteData<AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>>,\n QueryKey,\n string | number | undefined\n >\n\n queryMetadataQueryOptions: UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n Omit<QueryResultBundle, 'queryResult'>\n >\n}\n\nexport function getTableQueryUseQueryOptions(\n queryBundleRequest: QueryBundleRequest,\n lockedColumn: LockedColumn | undefined,\n keyFactory: KeyFactory,\n accessToken: string | undefined,\n) {\n const { rowDataRequest, queryMetadataRequest } =\n partitionQueryBundleRequestIntoRowsAndMetadata(queryBundleRequest)\n const rowDataQueryOptions: TableQueryUseQueryOptions['rowDataQueryOptions'] =\n {\n ...tableQueryUseQueryDefaults,\n queryKey: keyFactory.getEntityTableQueryResultWithAsyncStatusQueryKey(\n rowDataRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getQueryTableAsyncJobResults(rowDataRequest, accessToken),\n select: data => data.responseBody?.queryResult?.queryResults,\n }\n\n const rowDataInfiniteQueryOptions: TableQueryUseQueryOptions['rowDataInfiniteQueryOptions'] =\n {\n ...getInfiniteQueryResultBundleOptions(\n rowDataRequest,\n keyFactory,\n accessToken,\n ),\n }\n\n const queryMetadataQueryOptions: TableQueryUseQueryOptions['queryMetadataQueryOptions'] =\n {\n ...tableQueryUseQueryDefaults,\n queryKey: keyFactory.getEntityTableQueryResultWithAsyncStatusQueryKey(\n queryMetadataRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getQueryTableAsyncJobResults(\n queryMetadataRequest,\n accessToken,\n ),\n\n select: data =>\n omit(\n removeLockedColumnFromFacetData(data.responseBody, lockedColumn),\n 'queryResults',\n ),\n }\n\n return {\n rowDataQueryOptions,\n rowDataInfiniteQueryOptions,\n queryMetadataQueryOptions,\n }\n}\n\n/**\n * Return the UseQueryOptions used to retrieve a table query's row data and query metadata.\n * @param queryBundleRequest\n * @param lockedColumn - remove a particular facet name (e.g. study) and all possible values based on the parameter\n * specified in the url this is to remove the facet from the charts, search and filter.\n */\nexport function useTableQueryUseQueryOptions(\n queryBundleRequest: QueryBundleRequest,\n lockedColumn?: LockedColumn,\n): TableQueryUseQueryOptions {\n const { keyFactory, accessToken } = useSynapseContext()\n\n return useMemo(\n () =>\n getTableQueryUseQueryOptions(\n queryBundleRequest,\n lockedColumn,\n keyFactory,\n accessToken,\n ),\n [keyFactory, accessToken, queryBundleRequest, lockedColumn],\n )\n}\n"],"mappings":";;;;;;;;AAkDA,SAAgB,EACd,GACA,GACA,GACA,GACA;CACA,IAAM,EAAE,mBAAgB,4BACtB,EAA+C,CAAkB;CA0CnE,OAAO;EACL,qBAAA;GAxCE,GAAG;GACH,UAAU,EAAW,iDACnB,GACA,EACF;GACA,eACE,EAA2C,GAAgB,CAAW;GACxE,SAAQ,MAAQ,EAAK,cAAc,aAAa;EAiClD;EACA,6BAAA,EA7BE,GAAG,EACD,GACA,GACA,CACF,EAyBF;EACA,2BAAA;GArBE,GAAG;GACH,UAAU,EAAW,iDACnB,GACA,EACF;GACA,eACE,EACE,GACA,CACF;GAEF,SAAQ,MACN,EACE,EAAgC,EAAK,cAAc,CAAY,GAC/D,cACF;EAMJ;CACF;AACF;AAQA,SAAgB,EACd,GACA,GAC2B;CAC3B,IAAM,EAAE,eAAY,mBAAgB,EAAkB;CAEtD,OAAO,QAEH,EACE,GACA,GACA,GACA,CACF,GACF;EAAC;EAAY;EAAa;EAAoB;CAAY,CAC5D;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowSelectionState.js","names":[],"sources":["../../../src/components/QueryWrapper/TableRowSelectionState.ts"],"sourcesContent":["import { Row, SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { atom, useAtomValue } from 'jotai'\nimport { isEqual } from 'lodash-es'\n\nexport function getRowSelectionEqualityComparator(\n row: Row,\n selectColumns?: SelectColumn[],\n rowSelectionPrimaryKey?: string[],\n): (r1: Row, r2: Row) => boolean {\n // Worst-case scenario, use deep equality to compare rows\n // This will fail from the user's perspective if any data changes in the rows since the last time the selection was updated.\n let comparator: (r1: Row, r2: Row) => boolean = isEqual\n if (rowSelectionPrimaryKey && selectColumns) {\n // If the `rowSelectionPrimaryKey` is defined, a row is selected if we have a PK match\n // Even this selection is not guaranteed to persist if data changes, e.g. if column order changes and the PK now has a different column index\n comparator = (r1: Row, r2: Row) => {\n const r1PrimaryKeyValues = rowSelectionPrimaryKey.map(\n key => r1.values[selectColumns.findIndex(cm => cm.name === key)]!,\n )\n const r2PrimaryKeyValues = rowSelectionPrimaryKey.map(\n key => r2.values[selectColumns.findIndex(cm => cm.name === key)]!,\n )\n return isEqual(r1PrimaryKeyValues, r2PrimaryKeyValues)\n }\n } else if (row.rowId) {\n // If there's a rowId, we can use that as a fallback\n comparator = (r1: Row, r2: Row) => r1.rowId === r2.rowId\n }\n\n return comparator\n}\n\n/**\n * Use Jotai atoms to manage table row selection state. We use Jotai instead of React context because subscribing to atoms\n * is more performant than subscribing to a frequently-changing context object, which causes undesirable re-renders.\n */\n\n/**\n * Whether row selection is visible for the current component\n */\nexport const isRowSelectionVisibleAtom = atom<boolean>(false)\n\n/**\n * Whether row selection UI should float or be shown inline\n */\nexport const isRowSelectionUIFloatingAtom = atom<boolean>(true)\n\n/**\n * A unique key that identifies a row. If two selected rows have the same key values, then they are considered equal and would both be selected/deselected together.\n */\nexport const rowSelectionPrimaryKeyAtom = atom<string[] | undefined>(undefined)\n/**\n * A unique key that identifies a row. If two selected rows have the same key values, then they are considered equal and would both be selected/deselected together.\n */\nexport function useRowSelectionPrimaryKeyAtomValue() {\n return useAtomValue(rowSelectionPrimaryKeyAtom)\n}\n\n/**\n * The set of selected rows\n */\nexport const selectedRowsAtom = atom<Row[]>([])\n/**\n * The set of selected rows\n */\nexport function useSelectedRowsAtomValue() {\n return useAtomValue(selectedRowsAtom)\n}\n\n/**\n * Can be used to determine if a row is selected. If a `rowSelectionPrimaryKey` is defined, then the row is selected if it has a matching PK.\n */\nexport const isRowSelectedAtom = atom(\n get => (row: Row, selectColumns: SelectColumn[]) => {\n const comparator = getRowSelectionEqualityComparator(\n row,\n selectColumns,\n get(rowSelectionPrimaryKeyAtom),\n )\n return get(selectedRowsAtom).some(selectedRow =>\n comparator(selectedRow, row),\n )\n },\n)\n\n/**\n * Whether rows are currently selected\n */\nexport const hasSelectedRowsAtom = atom(get => get(selectedRowsAtom).length > 0)\n/**\n * Whether rows are currently selected\n */\nexport function useHasSelectedRowsAtomValue() {\n return useAtomValue(hasSelectedRowsAtom)\n}\n"],"mappings":";;;AAIA,SAAgB,EACd,GACA,GACA,GAC+B;CAG/B,IAAI,IAA4C;AAkBhD,QAjBI,KAA0B,IAG5B,KAAc,GAAS,MAOd,EANoB,EAAuB,KAChD,MAAO,EAAG,OAAO,EAAc,WAAU,MAAM,EAAG,SAAS,EAAI,EAKlD,EAHY,EAAuB,KAChD,MAAO,EAAG,OAAO,EAAc,WAAU,MAAM,EAAG,SAAS,EAAI,EAE9B,CAAmB,GAE/C,EAAI,UAEb,KAAc,GAAS,MAAY,EAAG,UAAU,EAAG,QAG9C;;AAWT,IAAa,IAA4B,EAAc,GAAM,EAKhD,IAA+B,EAAc,GAAK,EAKlD,IAA6B,EAA2B,KAAA,EAAU;AAI/E,SAAgB,IAAqC;AACnD,QAAO,EAAa,EAA2B;;AAMjD,IAAa,IAAmB,EAAY,EAAE,CAAC;AAI/C,SAAgB,IAA2B;AACzC,QAAO,EAAa,EAAiB;;AAMvC,IAAa,IAAoB,GAC/B,OAAQ,GAAU,MAAkC;CAClD,IAAM,IAAa,EACjB,GACA,GACA,EAAI,EAA2B,CAChC;AACD,QAAO,EAAI,EAAiB,CAAC,MAAK,MAChC,EAAW,GAAa,EAAI,CAC7B;EAEJ,EAKY,IAAsB,GAAK,MAAO,EAAI,EAAiB,CAAC,SAAS,EAAE;AAIhF,SAAgB,IAA8B;AAC5C,QAAO,EAAa,EAAoB"}
1
+ {"version":3,"file":"TableRowSelectionState.js","names":[],"sources":["../../../src/components/QueryWrapper/TableRowSelectionState.ts"],"sourcesContent":["import { Row, SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { atom, useAtomValue } from 'jotai'\nimport { isEqual } from 'lodash-es'\n\nexport function getRowSelectionEqualityComparator(\n row: Row,\n selectColumns?: SelectColumn[],\n rowSelectionPrimaryKey?: string[],\n): (r1: Row, r2: Row) => boolean {\n // Worst-case scenario, use deep equality to compare rows\n // This will fail from the user's perspective if any data changes in the rows since the last time the selection was updated.\n let comparator: (r1: Row, r2: Row) => boolean = isEqual\n if (rowSelectionPrimaryKey && selectColumns) {\n // If the `rowSelectionPrimaryKey` is defined, a row is selected if we have a PK match\n // Even this selection is not guaranteed to persist if data changes, e.g. if column order changes and the PK now has a different column index\n comparator = (r1: Row, r2: Row) => {\n const r1PrimaryKeyValues = rowSelectionPrimaryKey.map(\n key => r1.values[selectColumns.findIndex(cm => cm.name === key)]!,\n )\n const r2PrimaryKeyValues = rowSelectionPrimaryKey.map(\n key => r2.values[selectColumns.findIndex(cm => cm.name === key)]!,\n )\n return isEqual(r1PrimaryKeyValues, r2PrimaryKeyValues)\n }\n } else if (row.rowId) {\n // If there's a rowId, we can use that as a fallback\n comparator = (r1: Row, r2: Row) => r1.rowId === r2.rowId\n }\n\n return comparator\n}\n\n/**\n * Use Jotai atoms to manage table row selection state. We use Jotai instead of React context because subscribing to atoms\n * is more performant than subscribing to a frequently-changing context object, which causes undesirable re-renders.\n */\n\n/**\n * Whether row selection is visible for the current component\n */\nexport const isRowSelectionVisibleAtom = atom<boolean>(false)\n\n/**\n * Whether row selection UI should float or be shown inline\n */\nexport const isRowSelectionUIFloatingAtom = atom<boolean>(true)\n\n/**\n * A unique key that identifies a row. If two selected rows have the same key values, then they are considered equal and would both be selected/deselected together.\n */\nexport const rowSelectionPrimaryKeyAtom = atom<string[] | undefined>(undefined)\n/**\n * A unique key that identifies a row. If two selected rows have the same key values, then they are considered equal and would both be selected/deselected together.\n */\nexport function useRowSelectionPrimaryKeyAtomValue() {\n return useAtomValue(rowSelectionPrimaryKeyAtom)\n}\n\n/**\n * The set of selected rows\n */\nexport const selectedRowsAtom = atom<Row[]>([])\n/**\n * The set of selected rows\n */\nexport function useSelectedRowsAtomValue() {\n return useAtomValue(selectedRowsAtom)\n}\n\n/**\n * Can be used to determine if a row is selected. If a `rowSelectionPrimaryKey` is defined, then the row is selected if it has a matching PK.\n */\nexport const isRowSelectedAtom = atom(\n get => (row: Row, selectColumns: SelectColumn[]) => {\n const comparator = getRowSelectionEqualityComparator(\n row,\n selectColumns,\n get(rowSelectionPrimaryKeyAtom),\n )\n return get(selectedRowsAtom).some(selectedRow =>\n comparator(selectedRow, row),\n )\n },\n)\n\n/**\n * Whether rows are currently selected\n */\nexport const hasSelectedRowsAtom = atom(get => get(selectedRowsAtom).length > 0)\n/**\n * Whether rows are currently selected\n */\nexport function useHasSelectedRowsAtomValue() {\n return useAtomValue(hasSelectedRowsAtom)\n}\n"],"mappings":";;;AAIA,SAAgB,EACd,GACA,GACA,GAC+B;CAG/B,IAAI,IAA4C;CAkBhD,OAjBI,KAA0B,IAG5B,KAAc,GAAS,MAOd,EANoB,EAAuB,KAChD,MAAO,EAAG,OAAO,EAAc,WAAU,MAAM,EAAG,SAAS,CAAG,EAKjD,GAHY,EAAuB,KAChD,MAAO,EAAG,OAAO,EAAc,WAAU,MAAM,EAAG,SAAS,CAAG,EAE7B,CAAkB,IAE9C,EAAI,UAEb,KAAc,GAAS,MAAY,EAAG,UAAU,EAAG,QAG9C;AACT;AAUA,IAAa,IAA4B,EAAc,EAAK,GAK/C,IAA+B,EAAc,EAAI,GAKjD,IAA6B,EAA2B,KAAA,CAAS;AAI9E,SAAgB,IAAqC;CACnD,OAAO,EAAa,CAA0B;AAChD;AAKA,IAAa,IAAmB,EAAY,CAAC,CAAC;AAI9C,SAAgB,IAA2B;CACzC,OAAO,EAAa,CAAgB;AACtC;AAKA,IAAa,IAAoB,GAC/B,OAAQ,GAAU,MAAkC;CAClD,IAAM,IAAa,EACjB,GACA,GACA,EAAI,CAA0B,CAChC;CACA,OAAO,EAAI,CAAgB,EAAE,MAAK,MAChC,EAAW,GAAa,CAAG,CAC7B;AACF,CACF,GAKa,IAAsB,GAAK,MAAO,EAAI,CAAgB,EAAE,SAAS,CAAC;AAI/E,SAAgB,IAA8B;CAC5C,OAAO,EAAa,CAAmB;AACzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewMoreQueryResultsButton.js","names":[],"sources":["../../../src/components/QueryWrapper/ViewMoreQueryResultsButton.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { Box } from '@mui/material'\nimport { useEffect } from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { useIsBot } from '@/utils/hooks/useIsBot'\nimport { useSuspenseGetQueryMetadata } from './useGetQueryMetadata'\n\nexport type ViewMoreQueryResultsButtonProps = {\n hasNextPage: boolean\n fetchNextPage: () => void\n isFetchingNextPage: boolean\n initialLimit?: number\n initialLimitIsApplied?: boolean\n onRemoveInitialLimit?: () => void\n}\n\nexport function ViewMoreQueryResultsButton(\n props: ViewMoreQueryResultsButtonProps,\n) {\n const {\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n initialLimit,\n initialLimitIsApplied,\n onRemoveInitialLimit,\n } = props\n const {\n data: { queryCount },\n } = useSuspenseGetQueryMetadata()\n const isBot = useIsBot()\n\n useEffect(() => {\n if (\n initialLimitIsApplied &&\n initialLimit != null &&\n queryCount != null &&\n onRemoveInitialLimit != null\n ) {\n if (initialLimit >= queryCount)\n // The initial limit is not necessary, so remove it.\n onRemoveInitialLimit()\n }\n }, [initialLimitIsApplied, initialLimit, queryCount, onRemoveInitialLimit])\n\n // Automatically fetch all pages for bots\n useEffect(() => {\n if (isBot && hasNextPage && !isFetchingNextPage) {\n void fetchNextPage()\n }\n }, [isBot, hasNextPage, isFetchingNextPage, fetchNextPage])\n\n const showViewMoreButton = initialLimitIsApplied || hasNextPage\n\n if (!showViewMoreButton) {\n return null\n }\n\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-start',\n }}\n >\n <WideButton\n variant=\"contained\"\n color=\"secondary\"\n size=\"large\"\n onClick={() => {\n if (initialLimitIsApplied && onRemoveInitialLimit != null) {\n onRemoveInitialLimit()\n } else {\n void fetchNextPage()\n }\n }}\n disabled={isFetchingNextPage}\n >\n {isFetchingNextPage ? <SynapseSpinner size={24} /> : 'View More'}\n </WideButton>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;AAgBA,SAAgB,EACd,GACA;CACA,IAAM,EACJ,gBACA,kBACA,uBACA,iBACA,0BACA,4BACE,GACE,EACJ,MAAM,EAAE,oBACN,GAA6B,EAC3B,IAAQ,GAAU;AA4BxB,QA1BA,QAAgB;AACd,EACE,KACA,KAAgB,QAChB,KAAc,QACd,KAAwB,QAEpB,KAAgB,KAElB,GAAsB;IAEzB;EAAC;EAAuB;EAAc;EAAY;EAAqB,CAAC,EAG3E,QAAgB;AACd,EAAI,KAAS,KAAe,CAAC,KACtB,GAAe;IAErB;EAAC;EAAO;EAAa;EAAoB;EAAc,CAAC,EAEhC,KAAyB,IAOlD,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,gBAAgB;GACjB;YAED,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,MAAK;GACL,eAAe;AACb,IAAI,KAAyB,KAAwB,OACnD,GAAsB,GAEjB,GAAe;;GAGxB,UAAU;aAET,IAAqB,kBAAC,GAAD,EAAgB,MAAM,IAAM,CAAA,GAAG;GAC1C,CAAA;EACT,CAAA,GAzBC"}
1
+ {"version":3,"file":"ViewMoreQueryResultsButton.js","names":[],"sources":["../../../src/components/QueryWrapper/ViewMoreQueryResultsButton.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { Box } from '@mui/material'\nimport { useEffect } from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { useIsBot } from '@/utils/hooks/useIsBot'\nimport { useSuspenseGetQueryMetadata } from './useGetQueryMetadata'\n\nexport type ViewMoreQueryResultsButtonProps = {\n hasNextPage: boolean\n fetchNextPage: () => void\n isFetchingNextPage: boolean\n initialLimit?: number\n initialLimitIsApplied?: boolean\n onRemoveInitialLimit?: () => void\n}\n\nexport function ViewMoreQueryResultsButton(\n props: ViewMoreQueryResultsButtonProps,\n) {\n const {\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n initialLimit,\n initialLimitIsApplied,\n onRemoveInitialLimit,\n } = props\n const {\n data: { queryCount },\n } = useSuspenseGetQueryMetadata()\n const isBot = useIsBot()\n\n useEffect(() => {\n if (\n initialLimitIsApplied &&\n initialLimit != null &&\n queryCount != null &&\n onRemoveInitialLimit != null\n ) {\n if (initialLimit >= queryCount)\n // The initial limit is not necessary, so remove it.\n onRemoveInitialLimit()\n }\n }, [initialLimitIsApplied, initialLimit, queryCount, onRemoveInitialLimit])\n\n // Automatically fetch all pages for bots\n useEffect(() => {\n if (isBot && hasNextPage && !isFetchingNextPage) {\n void fetchNextPage()\n }\n }, [isBot, hasNextPage, isFetchingNextPage, fetchNextPage])\n\n const showViewMoreButton = initialLimitIsApplied || hasNextPage\n\n if (!showViewMoreButton) {\n return null\n }\n\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-start',\n }}\n >\n <WideButton\n variant=\"contained\"\n color=\"secondary\"\n size=\"large\"\n onClick={() => {\n if (initialLimitIsApplied && onRemoveInitialLimit != null) {\n onRemoveInitialLimit()\n } else {\n void fetchNextPage()\n }\n }}\n disabled={isFetchingNextPage}\n >\n {isFetchingNextPage ? <SynapseSpinner size={24} /> : 'View More'}\n </WideButton>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;AAgBA,SAAgB,EACd,GACA;CACA,IAAM,EACJ,gBACA,kBACA,uBACA,iBACA,0BACA,4BACE,GACE,EACJ,MAAM,EAAE,oBACN,EAA4B,GAC1B,IAAQ,EAAS;CA4BvB,OA1BA,QAAgB;EACd,AACE,KACA,KAAgB,QAChB,KAAc,QACd,KAAwB,QAEpB,KAAgB,KAElB,EAAqB;CAE3B,GAAG;EAAC;EAAuB;EAAc;EAAY;CAAoB,CAAC,GAG1E,QAAgB;EACd,AAAI,KAAS,KAAe,CAAC,KAC3B,EAAmB;CAEvB,GAAG;EAAC;EAAO;EAAa;EAAoB;CAAa,CAAC,GAE/B,KAAyB,IAOlD,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,gBAAgB;EAClB;YAEA,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,MAAK;GACL,eAAe;IACb,AAAI,KAAyB,KAAwB,OACnD,EAAqB,IAErB,EAAmB;GAEvB;GACA,UAAU;aAET,IAAqB,kBAAC,GAAD,EAAgB,MAAM,GAAK,CAAA,IAAI;EAC3C,CAAA;CACT,CAAA,IAzBE;AA2BX"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateEncodedPathAndQueryForSelectedFacetURL.js","names":[],"sources":["../../../src/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.ts"],"sourcesContent":["import {\n FacetColumnValuesRequest,\n Query,\n} from '@sage-bionetworks/synapse-types'\nimport { generateCompressedQueryURL } from '../../utils/functions/deepLinkingUtils'\n\nexport type SelectedFacet = {\n facet: string\n facetValue: string\n}\n\nconst formatSelectedFacetsRequest = (\n selectedFacets: SelectedFacet[],\n): FacetColumnValuesRequest[] => {\n return selectedFacets.map(selectedFacet => {\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest',\n columnName: selectedFacet.facet,\n facetValues: [selectedFacet.facetValue],\n }\n })\n}\n\nexport const generateEncodedPathAndQueryForSelectedFacetURL = async (\n path: string,\n sql: string,\n selectedFacets: SelectedFacet[],\n): Promise<string> => {\n const currentQuery: Query = {\n sql,\n selectedFacets: formatSelectedFacetsRequest(selectedFacets),\n }\n\n const initQuery: Query = {\n sql,\n }\n\n return generateCompressedQueryURL(path, 0, currentQuery, initQuery)\n}\n"],"mappings":";;AAWA,IAAM,KACJ,MAEO,EAAe,KAAI,OACjB;CACL,cACE;CACF,YAAY,EAAc;CAC1B,aAAa,CAAC,EAAc,WAAW;CACxC,EACD,EAGS,IAAiD,OAC5D,GACA,GACA,MAWO,EAA2B,GAAM,GAAG;CARzC;CACA,gBAAgB,EAA4B,EAAe;CAOlB,EAAc,EAHvD,QAGuD,CAAU"}
1
+ {"version":3,"file":"generateEncodedPathAndQueryForSelectedFacetURL.js","names":[],"sources":["../../../src/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.ts"],"sourcesContent":["import {\n FacetColumnValuesRequest,\n Query,\n} from '@sage-bionetworks/synapse-types'\nimport { generateCompressedQueryURL } from '../../utils/functions/deepLinkingUtils'\n\nexport type SelectedFacet = {\n facet: string\n facetValue: string\n}\n\nconst formatSelectedFacetsRequest = (\n selectedFacets: SelectedFacet[],\n): FacetColumnValuesRequest[] => {\n return selectedFacets.map(selectedFacet => {\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.table.FacetColumnValuesRequest',\n columnName: selectedFacet.facet,\n facetValues: [selectedFacet.facetValue],\n }\n })\n}\n\nexport const generateEncodedPathAndQueryForSelectedFacetURL = async (\n path: string,\n sql: string,\n selectedFacets: SelectedFacet[],\n): Promise<string> => {\n const currentQuery: Query = {\n sql,\n selectedFacets: formatSelectedFacetsRequest(selectedFacets),\n }\n\n const initQuery: Query = {\n sql,\n }\n\n return generateCompressedQueryURL(path, 0, currentQuery, initQuery)\n}\n"],"mappings":";;AAWA,IAAM,KACJ,MAEO,EAAe,KAAI,OACjB;CACL,cACE;CACF,YAAY,EAAc;CAC1B,aAAa,CAAC,EAAc,UAAU;AACxC,EACD,GAGU,IAAiD,OAC5D,GACA,GACA,MAWO,EAA2B,GAAM,GAAG;CARzC;CACA,gBAAgB,EAA4B,CAAc;AAOjB,GAAc,EAHvD,OAGuD,CAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"useComputeRowSelectionPrimaryKey.js","names":[],"sources":["../../../src/components/QueryWrapper/useComputeRowSelectionPrimaryKey.ts"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useQuery } from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { QueryContextType } from '../QueryContext'\nimport { getDefaultPrimaryKey } from '../SynapseTable/SynapseTableUtils'\n\ntype UseComputeRowSelectionPrimaryKeyOptions = {\n entityId: string\n versionNumber?: number\n rowSelectionPrimaryKeyFromProps?: string[]\n queryMetadataQueryOptions: QueryContextType['queryMetadataQueryOptions']\n}\n\nexport default function useComputeRowSelectionPrimaryKey(\n options: UseComputeRowSelectionPrimaryKeyOptions,\n) {\n const {\n rowSelectionPrimaryKeyFromProps,\n entityId,\n versionNumber,\n queryMetadataQueryOptions,\n } = options\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useQuery(queryMetadataQueryOptions)\n\n return useMemo(() => {\n if (rowSelectionPrimaryKeyFromProps) {\n return rowSelectionPrimaryKeyFromProps\n } else if (entity && queryMetadata?.columnModels) {\n return getDefaultPrimaryKey(entity, queryMetadata.columnModels)\n }\n return undefined\n }, [rowSelectionPrimaryKeyFromProps, entity, queryMetadata?.columnModels])\n}\n"],"mappings":";;;;;;AAcA,SAAwB,EACtB,GACA;CACA,IAAM,EACJ,oCACA,aACA,kBACA,iCACE,GACE,EAAE,MAAM,MAAW,EAAoB,GAAU,EAAc,EAC/D,EAAE,MAAM,MAAkB,EAAS,EAA0B;AAEnE,QAAO,QAAc;AACnB,MAAI,EACF,QAAO;MACE,KAAU,GAAe,aAClC,QAAO,EAAqB,GAAQ,EAAc,aAAa;IAGhE;EAAC;EAAiC;EAAQ,GAAe;EAAa,CAAC"}
1
+ {"version":3,"file":"useComputeRowSelectionPrimaryKey.js","names":[],"sources":["../../../src/components/QueryWrapper/useComputeRowSelectionPrimaryKey.ts"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useQuery } from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { QueryContextType } from '../QueryContext'\nimport { getDefaultPrimaryKey } from '../SynapseTable/SynapseTableUtils'\n\ntype UseComputeRowSelectionPrimaryKeyOptions = {\n entityId: string\n versionNumber?: number\n rowSelectionPrimaryKeyFromProps?: string[]\n queryMetadataQueryOptions: QueryContextType['queryMetadataQueryOptions']\n}\n\nexport default function useComputeRowSelectionPrimaryKey(\n options: UseComputeRowSelectionPrimaryKeyOptions,\n) {\n const {\n rowSelectionPrimaryKeyFromProps,\n entityId,\n versionNumber,\n queryMetadataQueryOptions,\n } = options\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useQuery(queryMetadataQueryOptions)\n\n return useMemo(() => {\n if (rowSelectionPrimaryKeyFromProps) {\n return rowSelectionPrimaryKeyFromProps\n } else if (entity && queryMetadata?.columnModels) {\n return getDefaultPrimaryKey(entity, queryMetadata.columnModels)\n }\n return undefined\n }, [rowSelectionPrimaryKeyFromProps, entity, queryMetadata?.columnModels])\n}\n"],"mappings":";;;;;;AAcA,SAAwB,EACtB,GACA;CACA,IAAM,EACJ,oCACA,aACA,kBACA,iCACE,GACE,EAAE,MAAM,MAAW,EAAoB,GAAU,CAAa,GAC9D,EAAE,MAAM,MAAkB,EAAS,CAAyB;CAElE,OAAO,QAAc;EACnB,IAAI,GACF,OAAO;EACF,IAAI,KAAU,GAAe,cAClC,OAAO,EAAqB,GAAQ,EAAc,YAAY;CAGlE,GAAG;EAAC;EAAiC;EAAQ,GAAe;CAAY,CAAC;AAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetAddToDownloadListRequestForCurrentQuery.js","names":[],"sources":["../../../src/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.ts"],"sourcesContent":["import { useQueryContext } from '@/components/QueryContext'\nimport {\n useHasSelectedRowsAtomValue,\n useRowSelectionPrimaryKeyAtomValue,\n useSelectedRowsAtomValue,\n} from '@/components/QueryWrapper/TableRowSelectionState'\nimport { useSuspenseGetQueryMetadata } from '@/components/QueryWrapper/useGetQueryMetadata'\nimport { getFileColumnModelId } from '@/components/SynapseTable/SynapseTableUtils'\nimport { getPrimaryKeyINFilter } from '@/utils/functions/QueryFilterUtils'\nimport {\n AddToDownloadListRequest,\n TableQuery,\n} from '@sage-bionetworks/synapse-client'\nimport { useMemo } from 'react'\n\n/**\n * Returns an AddToDownloadListRequest object configured to add the current fileview/dataset result set to the download list\n * (loads data using QueryWrapper)\n */\nexport function useGetAddToDownloadListRequestForCurrentQuery(): AddToDownloadListRequest {\n const { getCurrentQueryRequest, fileIdColumnName, fileVersionColumnName } =\n useQueryContext()\n const { data: originalQueryMetadata } = useSuspenseGetQueryMetadata()\n\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n const selectedRows = useSelectedRowsAtomValue()\n const rowSelectionPrimaryKey = useRowSelectionPrimaryKeyAtomValue()\n\n return useMemo(() => {\n const query = getCurrentQueryRequest().query\n // set the query.selectFileColumn\n if (fileIdColumnName && fileVersionColumnName) {\n // find the column model ID and set the parameters\n const fileIdColumnModel = originalQueryMetadata.columnModels?.find(\n col => col.name == fileIdColumnName,\n )\n const fileVersionColumnModel = originalQueryMetadata.columnModels?.find(\n col => col.name == fileVersionColumnName,\n )\n\n query.selectFileColumn = fileIdColumnModel\n ? Number(fileIdColumnModel.id)\n : undefined\n query.selectFileVersionColumn = fileVersionColumnModel\n ? Number(fileVersionColumnModel.id)\n : undefined\n } else {\n const fileColumnId = getFileColumnModelId(\n originalQueryMetadata.columnModels,\n )\n if (fileColumnId) {\n query.selectFileColumn = Number(fileColumnId)\n }\n }\n\n if (\n hasSelectedRows &&\n rowSelectionPrimaryKey &&\n originalQueryMetadata.selectColumns\n ) {\n const primaryKeyINFilter = getPrimaryKeyINFilter(\n rowSelectionPrimaryKey,\n selectedRows,\n originalQueryMetadata.selectColumns,\n )\n query.additionalFilters = [\n ...(query.additionalFilters || []),\n primaryKeyINFilter,\n ]\n }\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.download.AddToDownloadListRequest',\n query: query as TableQuery,\n }\n }, [\n originalQueryMetadata.columnModels,\n originalQueryMetadata.selectColumns,\n getCurrentQueryRequest,\n hasSelectedRows,\n rowSelectionPrimaryKey,\n selectedRows,\n fileIdColumnName,\n fileVersionColumnName,\n ])\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgB,IAA0E;CACxF,IAAM,EAAE,2BAAwB,qBAAkB,6BAChD,GAAiB,EACb,EAAE,MAAM,MAA0B,GAA6B,EAE/D,IAAkB,GAA6B,EAC/C,IAAe,GAA0B,EACzC,IAAyB,GAAoC;AAEnE,QAAO,QAAc;EACnB,IAAM,IAAQ,GAAwB,CAAC;AAEvC,MAAI,KAAoB,GAAuB;GAE7C,IAAM,IAAoB,EAAsB,cAAc,MAC5D,MAAO,EAAI,QAAQ,EACpB,EACK,IAAyB,EAAsB,cAAc,MACjE,MAAO,EAAI,QAAQ,EACpB;AAKD,GAHA,EAAM,mBAAmB,IACrB,OAAO,EAAkB,GAAG,GAC5B,KAAA,GACJ,EAAM,0BAA0B,IAC5B,OAAO,EAAuB,GAAG,GACjC,KAAA;SACC;GACL,IAAM,IAAe,EACnB,EAAsB,aACvB;AACD,GAAI,MACF,EAAM,mBAAmB,OAAO,EAAa;;AAIjD,MACE,KACA,KACA,EAAsB,eACtB;GACA,IAAM,IAAqB,EACzB,GACA,GACA,EAAsB,cACvB;AACD,KAAM,oBAAoB,CACxB,GAAI,EAAM,qBAAqB,EAAE,EACjC,EACD;;AAEH,SAAO;GACL,cACE;GACK;GACR;IACA;EACD,EAAsB;EACtB,EAAsB;EACtB;EACA;EACA;EACA;EACA;EACA;EACD,CAAC"}
1
+ {"version":3,"file":"useGetAddToDownloadListRequestForCurrentQuery.js","names":[],"sources":["../../../src/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.ts"],"sourcesContent":["import { useQueryContext } from '@/components/QueryContext'\nimport {\n useHasSelectedRowsAtomValue,\n useRowSelectionPrimaryKeyAtomValue,\n useSelectedRowsAtomValue,\n} from '@/components/QueryWrapper/TableRowSelectionState'\nimport { useSuspenseGetQueryMetadata } from '@/components/QueryWrapper/useGetQueryMetadata'\nimport { getFileColumnModelId } from '@/components/SynapseTable/SynapseTableUtils'\nimport { getPrimaryKeyINFilter } from '@/utils/functions/QueryFilterUtils'\nimport {\n AddToDownloadListRequest,\n TableQuery,\n} from '@sage-bionetworks/synapse-client'\nimport { useMemo } from 'react'\n\n/**\n * Returns an AddToDownloadListRequest object configured to add the current fileview/dataset result set to the download list\n * (loads data using QueryWrapper)\n */\nexport function useGetAddToDownloadListRequestForCurrentQuery(): AddToDownloadListRequest {\n const { getCurrentQueryRequest, fileIdColumnName, fileVersionColumnName } =\n useQueryContext()\n const { data: originalQueryMetadata } = useSuspenseGetQueryMetadata()\n\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n const selectedRows = useSelectedRowsAtomValue()\n const rowSelectionPrimaryKey = useRowSelectionPrimaryKeyAtomValue()\n\n return useMemo(() => {\n const query = getCurrentQueryRequest().query\n // set the query.selectFileColumn\n if (fileIdColumnName && fileVersionColumnName) {\n // find the column model ID and set the parameters\n const fileIdColumnModel = originalQueryMetadata.columnModels?.find(\n col => col.name == fileIdColumnName,\n )\n const fileVersionColumnModel = originalQueryMetadata.columnModels?.find(\n col => col.name == fileVersionColumnName,\n )\n\n query.selectFileColumn = fileIdColumnModel\n ? Number(fileIdColumnModel.id)\n : undefined\n query.selectFileVersionColumn = fileVersionColumnModel\n ? Number(fileVersionColumnModel.id)\n : undefined\n } else {\n const fileColumnId = getFileColumnModelId(\n originalQueryMetadata.columnModels,\n )\n if (fileColumnId) {\n query.selectFileColumn = Number(fileColumnId)\n }\n }\n\n if (\n hasSelectedRows &&\n rowSelectionPrimaryKey &&\n originalQueryMetadata.selectColumns\n ) {\n const primaryKeyINFilter = getPrimaryKeyINFilter(\n rowSelectionPrimaryKey,\n selectedRows,\n originalQueryMetadata.selectColumns,\n )\n query.additionalFilters = [\n ...(query.additionalFilters || []),\n primaryKeyINFilter,\n ]\n }\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.download.AddToDownloadListRequest',\n query: query as TableQuery,\n }\n }, [\n originalQueryMetadata.columnModels,\n originalQueryMetadata.selectColumns,\n getCurrentQueryRequest,\n hasSelectedRows,\n rowSelectionPrimaryKey,\n selectedRows,\n fileIdColumnName,\n fileVersionColumnName,\n ])\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgB,IAA0E;CACxF,IAAM,EAAE,2BAAwB,qBAAkB,6BAChD,EAAgB,GACZ,EAAE,MAAM,MAA0B,EAA4B,GAE9D,IAAkB,EAA4B,GAC9C,IAAe,EAAyB,GACxC,IAAyB,EAAmC;CAElE,OAAO,QAAc;EACnB,IAAM,IAAQ,EAAuB,EAAE;EAEvC,IAAI,KAAoB,GAAuB;GAE7C,IAAM,IAAoB,EAAsB,cAAc,MAC5D,MAAO,EAAI,QAAQ,CACrB,GACM,IAAyB,EAAsB,cAAc,MACjE,MAAO,EAAI,QAAQ,CACrB;GAKA,AAHA,EAAM,mBAAmB,IACrB,OAAO,EAAkB,EAAE,IAC3B,KAAA,GACJ,EAAM,0BAA0B,IAC5B,OAAO,EAAuB,EAAE,IAChC,KAAA;EACN,OAAO;GACL,IAAM,IAAe,EACnB,EAAsB,YACxB;GACA,AAAI,MACF,EAAM,mBAAmB,OAAO,CAAY;EAEhD;EAEA,IACE,KACA,KACA,EAAsB,eACtB;GACA,IAAM,IAAqB,EACzB,GACA,GACA,EAAsB,aACxB;GACA,EAAM,oBAAoB,CACxB,GAAI,EAAM,qBAAqB,CAAC,GAChC,CACF;EACF;EACA,OAAO;GACL,cACE;GACK;EACT;CACF,GAAG;EACD,EAAsB;EACtB,EAAsB;EACtB;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGetQueryMetadata.js","names":[],"sources":["../../../src/components/QueryWrapper/useGetQueryMetadata.ts"],"sourcesContent":["import { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport {\n AsynchronousJobStatus,\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n UseQueryOptions,\n useSuspenseQuery,\n UseSuspenseQueryOptions,\n} from '@tanstack/react-query'\nimport { useQueryContext } from '../QueryContext/index'\n\n/**\n * Get the metadata (columns, count, i.e. not row data) for the query in the current QueryContext (provided by\n * QueryWrapper)\n */\nexport function useGetQueryMetadata<\n TSelect = Omit<QueryResultBundle, 'queryResult'>,\n>(\n optionsOverrides?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n >,\n) {\n const { queryMetadataQueryOptions } = useQueryContext()\n\n const mergedOptions = {\n ...queryMetadataQueryOptions,\n ...optionsOverrides,\n } as UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n\n return useQuery(mergedOptions)\n}\n\n/**\n * Get the metadata (columns, count, i.e. not row data) for the query in the current QueryContext (provided by\n * QueryWrapper). Suspends the component tree if the query data is not yet loaded.\n */\nexport function useSuspenseGetQueryMetadata<\n TSelect = Omit<QueryResultBundle, 'queryResult'>,\n>(\n optionsOverrides?: Partial<\n UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n >,\n) {\n const { queryMetadataQueryOptions } = useQueryContext()\n\n const mergedOptions = {\n ...queryMetadataQueryOptions,\n ...optionsOverrides,\n } as UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n\n return useSuspenseQuery<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >(mergedOptions)\n}\n"],"mappings":";;;;AAkBA,SAAgB,EAGd,GAOA;CACA,IAAM,EAAE,iCAA8B,GAAiB;AAWvD,QAAO,EAAS;EARd,GAAG;EACH,GAAG;EAOW,CAAc;;AAOhC,SAAgB,EAGd,GAOA;CACA,IAAM,EAAE,iCAA8B,GAAiB;AAWvD,QAAO,EAIL;EAZA,GAAG;EACH,GAAG;EAWH,CAAc"}
1
+ {"version":3,"file":"useGetQueryMetadata.js","names":[],"sources":["../../../src/components/QueryWrapper/useGetQueryMetadata.ts"],"sourcesContent":["import { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport {\n AsynchronousJobStatus,\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport {\n useQuery,\n UseQueryOptions,\n useSuspenseQuery,\n UseSuspenseQueryOptions,\n} from '@tanstack/react-query'\nimport { useQueryContext } from '../QueryContext/index'\n\n/**\n * Get the metadata (columns, count, i.e. not row data) for the query in the current QueryContext (provided by\n * QueryWrapper)\n */\nexport function useGetQueryMetadata<\n TSelect = Omit<QueryResultBundle, 'queryResult'>,\n>(\n optionsOverrides?: Partial<\n UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n >,\n) {\n const { queryMetadataQueryOptions } = useQueryContext()\n\n const mergedOptions = {\n ...queryMetadataQueryOptions,\n ...optionsOverrides,\n } as UseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n\n return useQuery(mergedOptions)\n}\n\n/**\n * Get the metadata (columns, count, i.e. not row data) for the query in the current QueryContext (provided by\n * QueryWrapper). Suspends the component tree if the query data is not yet loaded.\n */\nexport function useSuspenseGetQueryMetadata<\n TSelect = Omit<QueryResultBundle, 'queryResult'>,\n>(\n optionsOverrides?: Partial<\n UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n >,\n) {\n const { queryMetadataQueryOptions } = useQueryContext()\n\n const mergedOptions = {\n ...queryMetadataQueryOptions,\n ...optionsOverrides,\n } as UseSuspenseQueryOptions<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >\n\n return useSuspenseQuery<\n AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>,\n SynapseClientError,\n TSelect\n >(mergedOptions)\n}\n"],"mappings":";;;;AAkBA,SAAgB,EAGd,GAOA;CACA,IAAM,EAAE,iCAA8B,EAAgB;CAWtD,OAAO,EAAS;EARd,GAAG;EACH,GAAG;CAOW,CAAa;AAC/B;AAMA,SAAgB,EAGd,GAOA;CACA,IAAM,EAAE,iCAA8B,EAAgB;CAWtD,OAAO,EAIL;EAZA,GAAG;EACH,GAAG;CAWH,CAAa;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHasFacetedSelectColumn.js","names":[],"sources":["../../../src/components/QueryWrapper/useHasFacetedSelectColumn.ts"],"sourcesContent":["import { hasFacetedSelectColumn as hasFacetedSelectColumnUtil } from '@/utils/functions/queryUtils'\nimport { useQuery } from '@tanstack/react-query'\nimport { QueryContextType } from '../QueryContext/index'\n\nexport default function useHasFacetedSelectColumn(\n queryMetadataQueryOptions: QueryContextType['queryMetadataQueryOptions'],\n): boolean {\n const { data: queryMetadata, isLoading } = useQuery(queryMetadataQueryOptions)\n\n if (!queryMetadata) {\n // if loading, return true - the facet UI will be shown in a loading state\n return isLoading\n }\n\n return hasFacetedSelectColumnUtil(\n queryMetadata.facets,\n queryMetadata.selectColumns,\n )\n}\n"],"mappings":";;;AAIA,SAAwB,EACtB,GACS;CACT,IAAM,EAAE,MAAM,GAAe,iBAAc,EAAS,EAA0B;AAO9E,QALK,IAKE,EACL,EAAc,QACd,EAAc,cACf,GANQ"}
1
+ {"version":3,"file":"useHasFacetedSelectColumn.js","names":[],"sources":["../../../src/components/QueryWrapper/useHasFacetedSelectColumn.ts"],"sourcesContent":["import { hasFacetedSelectColumn as hasFacetedSelectColumnUtil } from '@/utils/functions/queryUtils'\nimport { useQuery } from '@tanstack/react-query'\nimport { QueryContextType } from '../QueryContext/index'\n\nexport default function useHasFacetedSelectColumn(\n queryMetadataQueryOptions: QueryContextType['queryMetadataQueryOptions'],\n): boolean {\n const { data: queryMetadata, isLoading } = useQuery(queryMetadataQueryOptions)\n\n if (!queryMetadata) {\n // if loading, return true - the facet UI will be shown in a loading state\n return isLoading\n }\n\n return hasFacetedSelectColumnUtil(\n queryMetadata.facets,\n queryMetadata.selectColumns,\n )\n}\n"],"mappings":";;;AAIA,SAAwB,EACtB,GACS;CACT,IAAM,EAAE,MAAM,GAAe,iBAAc,EAAS,CAAyB;CAO7E,OALK,IAKE,EACL,EAAc,QACd,EAAc,aAChB,IANS;AAOX"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOnQueryDataChange.js","names":[],"sources":["../../../src/components/QueryWrapper/useOnQueryDataChange.ts"],"sourcesContent":["import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect'\nimport { useQuery } from '@tanstack/react-query'\nimport {\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport { useTableQueryUseQueryOptions } from './TableQueryUseQueryOptions'\nimport { useEffect, useRef, useState } from 'react'\n\ntype UseOnQueryDataChangeOptions = {\n queryBundleRequest: QueryBundleRequest\n onChange: (data: QueryResultBundle) => void\n}\n\n/**\n * Calls the onChange callback with the current QueryResultBundle when the data for the passed query changes\n * @param options\n */\nexport default function useOnQueryDataChange(\n options: UseOnQueryDataChangeOptions,\n) {\n const { queryBundleRequest, onChange } = options\n const { rowDataQueryOptions, queryMetadataQueryOptions } =\n useTableQueryUseQueryOptions(queryBundleRequest)\n\n const { data: rowData, isLoading: rowDataIsLoading } = useQuery({\n ...rowDataQueryOptions,\n select: asyncJobResponse => asyncJobResponse.responseBody,\n })\n const { data: queryMetadata, isLoading: queryMetadataIsLoading } = useQuery(\n queryMetadataQueryOptions,\n )\n\n // SWC requires the entire QueryResultBundle to enable editing table data, so merge the data back into one object before\n // passing it to the onChange callback\n const [mergedData, setMergedData] = useState<QueryResultBundle>()\n useEffect(() => {\n if (\n rowData &&\n queryMetadata &&\n !rowDataIsLoading &&\n !queryMetadataIsLoading\n ) {\n setMergedData({\n ...queryMetadata,\n ...rowData,\n })\n }\n }, [queryMetadata, queryMetadataIsLoading, rowData, rowDataIsLoading])\n\n // Use a ref so we always call the latest onChange without including it in the\n // effect dependency array. Including a frequently-recreated callback in deps\n // causes the effect to re-fire on every render, creating an infinite loop when\n // the parent updates state inside the callback.\n const onChangeRef = useRef(onChange)\n onChangeRef.current = onChange\n\n // mergedData is sometimes undefined, which useDeepCompareEffect doesn't like, so use useDeepCompareEffectNoCheck instead\n useDeepCompareEffectNoCheck(() => {\n if (mergedData) {\n onChangeRef.current(mergedData)\n }\n }, [mergedData])\n}\n"],"mappings":";;;;;AAkBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,uBAAoB,gBAAa,GACnC,EAAE,wBAAqB,iCAC3B,EAA6B,EAAmB,EAE5C,EAAE,MAAM,GAAS,WAAW,MAAqB,EAAS;EAC9D,GAAG;EACH,SAAQ,MAAoB,EAAiB;EAC9C,CAAC,EACI,EAAE,MAAM,GAAe,WAAW,MAA2B,EACjE,EACD,EAIK,CAAC,GAAY,KAAiB,GAA6B;AACjE,SAAgB;AACd,EACE,KACA,KACA,CAAC,KACD,CAAC,KAED,EAAc;GACZ,GAAG;GACH,GAAG;GACJ,CAAC;IAEH;EAAC;EAAe;EAAwB;EAAS;EAAiB,CAAC;CAMtE,IAAM,IAAc,EAAO,EAAS;AAIpC,CAHA,EAAY,UAAU,GAGtB,QAAkC;AAChC,EAAI,KACF,EAAY,QAAQ,EAAW;IAEhC,CAAC,EAAW,CAAC"}
1
+ {"version":3,"file":"useOnQueryDataChange.js","names":[],"sources":["../../../src/components/QueryWrapper/useOnQueryDataChange.ts"],"sourcesContent":["import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect'\nimport { useQuery } from '@tanstack/react-query'\nimport {\n QueryBundleRequest,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport { useTableQueryUseQueryOptions } from './TableQueryUseQueryOptions'\nimport { useEffect, useRef, useState } from 'react'\n\ntype UseOnQueryDataChangeOptions = {\n queryBundleRequest: QueryBundleRequest\n onChange: (data: QueryResultBundle) => void\n}\n\n/**\n * Calls the onChange callback with the current QueryResultBundle when the data for the passed query changes\n * @param options\n */\nexport default function useOnQueryDataChange(\n options: UseOnQueryDataChangeOptions,\n) {\n const { queryBundleRequest, onChange } = options\n const { rowDataQueryOptions, queryMetadataQueryOptions } =\n useTableQueryUseQueryOptions(queryBundleRequest)\n\n const { data: rowData, isLoading: rowDataIsLoading } = useQuery({\n ...rowDataQueryOptions,\n select: asyncJobResponse => asyncJobResponse.responseBody,\n })\n const { data: queryMetadata, isLoading: queryMetadataIsLoading } = useQuery(\n queryMetadataQueryOptions,\n )\n\n // SWC requires the entire QueryResultBundle to enable editing table data, so merge the data back into one object before\n // passing it to the onChange callback\n const [mergedData, setMergedData] = useState<QueryResultBundle>()\n useEffect(() => {\n if (\n rowData &&\n queryMetadata &&\n !rowDataIsLoading &&\n !queryMetadataIsLoading\n ) {\n setMergedData({\n ...queryMetadata,\n ...rowData,\n })\n }\n }, [queryMetadata, queryMetadataIsLoading, rowData, rowDataIsLoading])\n\n // Use a ref so we always call the latest onChange without including it in the\n // effect dependency array. Including a frequently-recreated callback in deps\n // causes the effect to re-fire on every render, creating an infinite loop when\n // the parent updates state inside the callback.\n const onChangeRef = useRef(onChange)\n onChangeRef.current = onChange\n\n // mergedData is sometimes undefined, which useDeepCompareEffect doesn't like, so use useDeepCompareEffectNoCheck instead\n useDeepCompareEffectNoCheck(() => {\n if (mergedData) {\n onChangeRef.current(mergedData)\n }\n }, [mergedData])\n}\n"],"mappings":";;;;;AAkBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,uBAAoB,gBAAa,GACnC,EAAE,wBAAqB,iCAC3B,EAA6B,CAAkB,GAE3C,EAAE,MAAM,GAAS,WAAW,MAAqB,EAAS;EAC9D,GAAG;EACH,SAAQ,MAAoB,EAAiB;CAC/C,CAAC,GACK,EAAE,MAAM,GAAe,WAAW,MAA2B,EACjE,CACF,GAIM,CAAC,GAAY,KAAiB,EAA4B;CAChE,QAAgB;EACd,AACE,KACA,KACA,CAAC,KACD,CAAC,KAED,EAAc;GACZ,GAAG;GACH,GAAG;EACL,CAAC;CAEL,GAAG;EAAC;EAAe;EAAwB;EAAS;CAAgB,CAAC;CAMrE,IAAM,IAAc,EAAO,CAAQ;CAInC,AAHA,EAAY,UAAU,GAGtB,QAAkC;EAChC,AAAI,KACF,EAAY,QAAQ,CAAU;CAElC,GAAG,CAAC,CAAU,CAAC;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryWrapperErrorBoundary.js","names":[],"sources":["../../src/components/QueryWrapperErrorBoundary.tsx"],"sourcesContent":["import { SynapseClientError, useSynapseContext } from '@/utils'\nimport { PropsWithChildren, useCallback, useMemo } from 'react'\nimport {\n ErrorBoundary,\n ErrorBoundaryPropsWithComponent,\n} from 'react-error-boundary'\nimport { EntityActionsRequired } from './AccessRequirement/EntityActionsRequired'\nimport { ErrorBanner } from './error/ErrorBanner'\nimport { useQueryContext } from './QueryContext/QueryContext'\nimport SqlEditor from './SynapseTable/SqlEditor'\n\n/**\n * Error boundary that automatically pulls the error from QueryContext. If 403, shows entity actions required\n */\nexport function QueryWrapperErrorBoundary({\n children,\n}: PropsWithChildren<Record<never, never>>) {\n const { getCurrentQueryRequest, onViewSharingSettingsClicked } =\n useQueryContext()\n const { entityId } = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n const { isAuthenticated } = useSynapseContext()\n\n const FallbackComponent: ErrorBoundaryPropsWithComponent['FallbackComponent'] =\n useCallback(\n props => {\n if (\n props.error instanceof SynapseClientError &&\n props.error.status === 403 &&\n isAuthenticated\n ) {\n return (\n <div className={`ErrorBannerWrapper`}>\n <EntityActionsRequired\n entityId={entityId}\n onViewSharingSettingsClicked={onViewSharingSettingsClicked}\n />\n </div>\n )\n }\n return (\n <div className={`ErrorBannerWrapper`}>\n <SqlEditor resetErrorBoundary={props.resetErrorBoundary} />\n <ErrorBanner {...props} />\n </div>\n )\n },\n [entityId, isAuthenticated, onViewSharingSettingsClicked],\n )\n\n return (\n <ErrorBoundary FallbackComponent={FallbackComponent}>\n {children}\n </ErrorBoundary>\n )\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,EAA0B,EACxC,eAC0C;CAC1C,IAAM,EAAE,2BAAwB,oCAC9B,GAAiB,EACb,EAAE,gBAAa,QACb,GAAwB,EAC9B,CAAC,EAAuB,CACzB,EACK,EAAE,uBAAoB,GAAmB;AA6B/C,QACE,kBAAC,GAAD;EAAkC,mBA3BlC,GACE,MAEI,EAAM,iBAAiB,KACvB,EAAM,MAAM,WAAW,OACvB,IAGE,kBAAC,OAAD;GAAK,WAAW;aACd,kBAAC,GAAD;IACY;IACoB;IAC9B,CAAA;GACE,CAAA,GAIR,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,GAAD,EAAW,oBAAoB,EAAM,oBAAsB,CAAA,EAC3D,kBAAC,GAAD,EAAa,GAAI,GAAS,CAAA,CACtB;MAGV;GAAC;GAAU;GAAiB;GAA6B,CAIzB;EAC/B;EACa,CAAA"}
1
+ {"version":3,"file":"QueryWrapperErrorBoundary.js","names":[],"sources":["../../src/components/QueryWrapperErrorBoundary.tsx"],"sourcesContent":["import { SynapseClientError, useSynapseContext } from '@/utils'\nimport { PropsWithChildren, useCallback, useMemo } from 'react'\nimport {\n ErrorBoundary,\n ErrorBoundaryPropsWithComponent,\n} from 'react-error-boundary'\nimport { EntityActionsRequired } from './AccessRequirement/EntityActionsRequired'\nimport { ErrorBanner } from './error/ErrorBanner'\nimport { useQueryContext } from './QueryContext/QueryContext'\nimport SqlEditor from './SynapseTable/SqlEditor'\n\n/**\n * Error boundary that automatically pulls the error from QueryContext. If 403, shows entity actions required\n */\nexport function QueryWrapperErrorBoundary({\n children,\n}: PropsWithChildren<Record<never, never>>) {\n const { getCurrentQueryRequest, onViewSharingSettingsClicked } =\n useQueryContext()\n const { entityId } = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n const { isAuthenticated } = useSynapseContext()\n\n const FallbackComponent: ErrorBoundaryPropsWithComponent['FallbackComponent'] =\n useCallback(\n props => {\n if (\n props.error instanceof SynapseClientError &&\n props.error.status === 403 &&\n isAuthenticated\n ) {\n return (\n <div className={`ErrorBannerWrapper`}>\n <EntityActionsRequired\n entityId={entityId}\n onViewSharingSettingsClicked={onViewSharingSettingsClicked}\n />\n </div>\n )\n }\n return (\n <div className={`ErrorBannerWrapper`}>\n <SqlEditor resetErrorBoundary={props.resetErrorBoundary} />\n <ErrorBanner {...props} />\n </div>\n )\n },\n [entityId, isAuthenticated, onViewSharingSettingsClicked],\n )\n\n return (\n <ErrorBoundary FallbackComponent={FallbackComponent}>\n {children}\n </ErrorBoundary>\n )\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,EAA0B,EACxC,eAC0C;CAC1C,IAAM,EAAE,2BAAwB,oCAC9B,EAAgB,GACZ,EAAE,gBAAa,QACb,EAAuB,GAC7B,CAAC,CAAsB,CACzB,GACM,EAAE,uBAAoB,EAAkB;CA6B9C,OACE,kBAAC,GAAD;EAAkC,mBA3BlC,GACE,MAEI,EAAM,iBAAiB,KACvB,EAAM,MAAM,WAAW,OACvB,IAGE,kBAAC,OAAD;GAAK,WAAW;aACd,kBAAC,GAAD;IACY;IACoB;GAC/B,CAAA;EACE,CAAA,IAIP,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,GAAD,EAAW,oBAAoB,EAAM,mBAAqB,CAAA,GAC1D,kBAAC,GAAD,EAAa,GAAI,EAAQ,CAAA,CACtB;MAGT;GAAC;GAAU;GAAiB;EAA4B,CAIxB;EAC/B;CACY,CAAA;AAEnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"LastUpdatedOn.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/LastUpdatedOn.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport { Skeleton, Typography } from '@mui/material'\nimport dayjs from 'dayjs'\nimport { Suspense } from 'react'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\n\nfunction LastUpdatedOn() {\n const { showLastUpdatedOn } = useQueryVisualizationContext()\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n return showLastUpdatedOn && queryMetadata && queryMetadata.lastUpdatedOn ? (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n }}\n >\n <Typography variant=\"body1Italic\">\n Last updated on {formatDate(dayjs(queryMetadata.lastUpdatedOn))}\n </Typography>\n </div>\n ) : (\n <></>\n )\n}\n\nexport default function LastUpdatedOnWithSuspense() {\n const { showLastUpdatedOn } = useQueryVisualizationContext()\n if (!showLastUpdatedOn) {\n return <></>\n }\n return (\n <Suspense fallback={<Skeleton width={100}></Skeleton>}>\n <LastUpdatedOn />\n </Suspense>\n )\n}\n"],"mappings":";;;;;;;;;AAOA,SAAS,IAAgB;CACvB,IAAM,EAAE,yBAAsB,GAA8B,EACtD,EAAE,MAAM,MAAkB,GAA6B;AAE7D,QAAO,KAAqB,KAAiB,EAAc,gBACzD,kBAAC,OAAD;EACE,OAAO;GACL,SAAS;GACT,eAAe;GACf,YAAY;GACb;YAED,kBAAC,GAAD;GAAY,SAAQ;aAApB,CAAkC,oBACf,EAAW,EAAM,EAAc,cAAc,CAAC,CACpD;;EACT,CAAA,GAEN,kBAAA,GAAA,EAAK,CAAA;;AAIT,SAAwB,IAA4B;CAClD,IAAM,EAAE,yBAAsB,GAA8B;AAI5D,QAHK,IAIH,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,EAAU,OAAO,KAAgB,CAAA;YACnD,kBAAC,GAAD,EAAiB,CAAA;EACR,CAAA,GALJ,kBAAA,GAAA,EAAK,CAAA"}
1
+ {"version":3,"file":"LastUpdatedOn.js","names":[],"sources":["../../../src/components/QueryWrapperPlotNav/LastUpdatedOn.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport { Skeleton, Typography } from '@mui/material'\nimport dayjs from 'dayjs'\nimport { Suspense } from 'react'\nimport { useQueryVisualizationContext } from '../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\n\nfunction LastUpdatedOn() {\n const { showLastUpdatedOn } = useQueryVisualizationContext()\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n return showLastUpdatedOn && queryMetadata && queryMetadata.lastUpdatedOn ? (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n }}\n >\n <Typography variant=\"body1Italic\">\n Last updated on {formatDate(dayjs(queryMetadata.lastUpdatedOn))}\n </Typography>\n </div>\n ) : (\n <></>\n )\n}\n\nexport default function LastUpdatedOnWithSuspense() {\n const { showLastUpdatedOn } = useQueryVisualizationContext()\n if (!showLastUpdatedOn) {\n return <></>\n }\n return (\n <Suspense fallback={<Skeleton width={100}></Skeleton>}>\n <LastUpdatedOn />\n </Suspense>\n )\n}\n"],"mappings":";;;;;;;;;AAOA,SAAS,IAAgB;CACvB,IAAM,EAAE,yBAAsB,EAA6B,GACrD,EAAE,MAAM,MAAkB,EAA4B;CAE5D,OAAO,KAAqB,KAAiB,EAAc,gBACzD,kBAAC,OAAD;EACE,OAAO;GACL,SAAS;GACT,eAAe;GACf,YAAY;EACd;YAEA,kBAAC,GAAD;GAAY,SAAQ;aAApB,CAAkC,oBACf,EAAW,EAAM,EAAc,aAAa,CAAC,CACpD;;CACT,CAAA,IAEL,kBAAA,GAAA,CAAI,CAAA;AAER;AAEA,SAAwB,IAA4B;CAClD,IAAM,EAAE,yBAAsB,EAA6B;CAI3D,OAHK,IAIH,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,EAAU,OAAO,IAAe,CAAA;YAClD,kBAAC,GAAD,CAAgB,CAAA;CACR,CAAA,IALH,kBAAA,GAAA,CAAI,CAAA;AAOf"}