synapse-react-client 4.0.19 → 4.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1553) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +1 -1
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  5. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  6. package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
  7. package/dist/assets/GoogleIcon.js.map +1 -1
  8. package/dist/assets/GoogleIcon24.js.map +1 -1
  9. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  10. package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
  11. package/dist/assets/homepage/aacr.js.map +1 -1
  12. package/dist/assets/homepage/cri.js.map +1 -1
  13. package/dist/assets/homepage/ctf.js.map +1 -1
  14. package/dist/assets/homepage/egress.js.map +1 -1
  15. package/dist/assets/homepage/facebook.js.map +1 -1
  16. package/dist/assets/homepage/fisma.js.map +1 -1
  17. package/dist/assets/homepage/gff.js.map +1 -1
  18. package/dist/assets/homepage/github.js.map +1 -1
  19. package/dist/assets/homepage/gray.js.map +1 -1
  20. package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
  21. package/dist/assets/homepage/instagram.js.map +1 -1
  22. package/dist/assets/homepage/linkedin.js.map +1 -1
  23. package/dist/assets/homepage/ml-commons.js.map +1 -1
  24. package/dist/assets/homepage/nih-aging.js.map +1 -1
  25. package/dist/assets/homepage/nih-heart.js.map +1 -1
  26. package/dist/assets/homepage/nih-nci.js.map +1 -1
  27. package/dist/assets/homepage/nih-nimh.js.map +1 -1
  28. package/dist/assets/homepage/ntap.js.map +1 -1
  29. package/dist/assets/homepage/plan-item.js.map +1 -1
  30. package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
  31. package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
  32. package/dist/assets/homepage/python.js.map +1 -1
  33. package/dist/assets/homepage/r.js.map +1 -1
  34. package/dist/assets/homepage/research-credit-feature.js.map +1 -1
  35. package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
  36. package/dist/assets/homepage/sloan.js.map +1 -1
  37. package/dist/assets/homepage/twitter.js.map +1 -1
  38. package/dist/assets/homepage/users.js.map +1 -1
  39. package/dist/assets/homepage/youtube.js.map +1 -1
  40. package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
  41. package/dist/assets/icons/AccessPending.js.map +1 -1
  42. package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
  43. package/dist/assets/icons/AddAd.js.map +1 -1
  44. package/dist/assets/icons/AddToList.js.map +1 -1
  45. package/dist/assets/icons/Alert.js.map +1 -1
  46. package/dist/assets/icons/Arrow.js.map +1 -1
  47. package/dist/assets/icons/AwardScroll.js.map +1 -1
  48. package/dist/assets/icons/Baseline.js.map +1 -1
  49. package/dist/assets/icons/Cavatica.js.map +1 -1
  50. package/dist/assets/icons/CertifiedUser.js.map +1 -1
  51. package/dist/assets/icons/Challenge.js.map +1 -1
  52. package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
  53. package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
  54. package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
  55. package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
  56. package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
  57. package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
  58. package/dist/assets/icons/ClappingHands.js.map +1 -1
  59. package/dist/assets/icons/CloudWarning.js.map +1 -1
  60. package/dist/assets/icons/CommunicateFindings.js.map +1 -1
  61. package/dist/assets/icons/CreateVersion.js.map +1 -1
  62. package/dist/assets/icons/DNA_Two.js.map +1 -1
  63. package/dist/assets/icons/Data2.js.map +1 -1
  64. package/dist/assets/icons/DoubleQuotes.js.map +1 -1
  65. package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
  66. package/dist/assets/icons/FileWithShield.js.map +1 -1
  67. package/dist/assets/icons/FileWithShield2.js.map +1 -1
  68. package/dist/assets/icons/FrontHand.js.map +1 -1
  69. package/dist/assets/icons/HandWithMoney.js.map +1 -1
  70. package/dist/assets/icons/IconCopy.js.map +1 -1
  71. package/dist/assets/icons/IconMinus.js.map +1 -1
  72. package/dist/assets/icons/IconPlus.js.map +1 -1
  73. package/dist/assets/icons/Java.js.map +1 -1
  74. package/dist/assets/icons/MintDoi.js.map +1 -1
  75. package/dist/assets/icons/MultiFile.js.map +1 -1
  76. package/dist/assets/icons/MultiFile2.js.map +1 -1
  77. package/dist/assets/icons/NoData.js.map +1 -1
  78. package/dist/assets/icons/NoSearchResults.js.map +1 -1
  79. package/dist/assets/icons/ORCIDIcon.js.map +1 -1
  80. package/dist/assets/icons/OpenBook.js.map +1 -1
  81. package/dist/assets/icons/Podium.js.map +1 -1
  82. package/dist/assets/icons/Python.js.map +1 -1
  83. package/dist/assets/icons/QueryStructuredData.js.map +1 -1
  84. package/dist/assets/icons/RLogo.js.map +1 -1
  85. package/dist/assets/icons/RecordProvenance.js.map +1 -1
  86. package/dist/assets/icons/RosetteRibbon.js.map +1 -1
  87. package/dist/assets/icons/SageFullLogo.js.map +1 -1
  88. package/dist/assets/icons/SearchImage.js.map +1 -1
  89. package/dist/assets/icons/ShareYourResearch.js.map +1 -1
  90. package/dist/assets/icons/Sort.js.map +1 -1
  91. package/dist/assets/icons/StarTrophy.js.map +1 -1
  92. package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
  93. package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
  94. package/dist/assets/icons/SynapseLogoName.js.map +1 -1
  95. package/dist/assets/icons/TasksIcon.js.map +1 -1
  96. package/dist/assets/icons/Terminal.js.map +1 -1
  97. package/dist/assets/icons/ThreeStars.js.map +1 -1
  98. package/dist/assets/icons/UnpackagableFile.js.map +1 -1
  99. package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
  100. package/dist/assets/icons/ValidatedProfile.js.map +1 -1
  101. package/dist/assets/icons/account-certified.js.map +1 -1
  102. package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
  103. package/dist/assets/icons/account-validated.js.map +1 -1
  104. package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
  105. package/dist/assets/icons/chart2.js.map +1 -1
  106. package/dist/assets/icons/columns.js.map +1 -1
  107. package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
  108. package/dist/assets/icons/computationalTool.js.map +1 -1
  109. package/dist/assets/icons/dataReuse.js.map +1 -1
  110. package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
  111. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  112. package/dist/assets/icons/error_page/maintenance.js.map +1 -1
  113. package/dist/assets/icons/error_page/no-access.js.map +1 -1
  114. package/dist/assets/icons/error_page/unavailable.js.map +1 -1
  115. package/dist/assets/icons/file.js.map +1 -1
  116. package/dist/assets/icons/inSilicoModel.js.map +1 -1
  117. package/dist/assets/icons/institution.js.map +1 -1
  118. package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
  119. package/dist/assets/icons/modelSystem.js.map +1 -1
  120. package/dist/assets/icons/mouse.js.map +1 -1
  121. package/dist/assets/icons/organizations.js.map +1 -1
  122. package/dist/assets/icons/person.js.map +1 -1
  123. package/dist/assets/icons/spatialProfiling.js.map +1 -1
  124. package/dist/assets/icons/standardDataModel.js.map +1 -1
  125. package/dist/assets/icons/study-active.js.map +1 -1
  126. package/dist/assets/icons/study-complete.js.map +1 -1
  127. package/dist/assets/icons/subscribe_plus.js.map +1 -1
  128. package/dist/assets/icons/synapse-logo.js.map +1 -1
  129. package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
  130. package/dist/assets/icons/translational.js.map +1 -1
  131. package/dist/assets/icons/tree_horizontal.js.map +1 -1
  132. package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
  133. package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
  134. package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
  135. package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
  136. package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
  137. package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
  138. package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
  139. package/dist/assets/illustrations/docker_illustration.js.map +1 -1
  140. package/dist/assets/illustrations/donation_illustration.js.map +1 -1
  141. package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
  142. package/dist/assets/illustrations/files_illustration.js.map +1 -1
  143. package/dist/assets/illustrations/following_illustration.js.map +1 -1
  144. package/dist/assets/illustrations/index.js.map +1 -1
  145. package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
  146. package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
  147. package/dist/assets/illustrations/projects_illustration.js.map +1 -1
  148. package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
  149. package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
  150. package/dist/assets/illustrations/tables_illustration.js.map +1 -1
  151. package/dist/assets/illustrations/teams_illustration.js.map +1 -1
  152. package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
  153. package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
  154. package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
  155. package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
  156. package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
  157. package/dist/assets/logos/other/pluto-logo.js.map +1 -1
  158. package/dist/assets/logos/other/terra-logo.js.map +1 -1
  159. package/dist/assets/mui_components/AccessManagement.js.map +1 -1
  160. package/dist/assets/mui_components/AccountCertified.js.map +1 -1
  161. package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
  162. package/dist/assets/mui_components/AccountValidated.js.map +1 -1
  163. package/dist/assets/mui_components/ActionKey.js.map +1 -1
  164. package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
  165. package/dist/assets/mui_components/Chromatin.js.map +1 -1
  166. package/dist/assets/mui_components/Clinical.js.map +1 -1
  167. package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
  168. package/dist/assets/mui_components/Data.js.map +1 -1
  169. package/dist/assets/mui_components/DataLocked.js.map +1 -1
  170. package/dist/assets/mui_components/DataReuse.js.map +1 -1
  171. package/dist/assets/mui_components/Dataset.js.map +1 -1
  172. package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
  173. package/dist/assets/mui_components/Docker.js.map +1 -1
  174. package/dist/assets/mui_components/GeneExpression.js.map +1 -1
  175. package/dist/assets/mui_components/GeneVariants.js.map +1 -1
  176. package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
  177. package/dist/assets/mui_components/Imaging.js.map +1 -1
  178. package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
  179. package/dist/assets/mui_components/Kinomics.js.map +1 -1
  180. package/dist/assets/mui_components/LineGraph.js.map +1 -1
  181. package/dist/assets/mui_components/ModelSystem.js.map +1 -1
  182. package/dist/assets/mui_components/Other.js.map +1 -1
  183. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  184. package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
  185. package/dist/assets/mui_components/Proteomics.js.map +1 -1
  186. package/dist/assets/mui_components/Rat.js.map +1 -1
  187. package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
  188. package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
  189. package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
  190. package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
  191. package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
  192. package/dist/assets/sustainability/dialPosition1.js.map +1 -1
  193. package/dist/assets/sustainability/dialPosition2.js.map +1 -1
  194. package/dist/assets/sustainability/dialPosition3.js.map +1 -1
  195. package/dist/assets/sustainability/dialPosition4.js.map +1 -1
  196. package/dist/assets/themed_icons/Active.js.map +1 -1
  197. package/dist/assets/themed_icons/Chart.js.map +1 -1
  198. package/dist/assets/themed_icons/Close.js.map +1 -1
  199. package/dist/assets/themed_icons/Collapse.js.map +1 -1
  200. package/dist/assets/themed_icons/Columns.js.map +1 -1
  201. package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
  202. package/dist/assets/themed_icons/Database.js.map +1 -1
  203. package/dist/assets/themed_icons/Download.js.map +1 -1
  204. package/dist/assets/themed_icons/Expand.js.map +1 -1
  205. package/dist/assets/themed_icons/Explore.js.map +1 -1
  206. package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
  207. package/dist/assets/themed_icons/Filter.js.map +1 -1
  208. package/dist/assets/themed_icons/Program.js.map +1 -1
  209. package/dist/assets/themed_icons/Project.js.map +1 -1
  210. package/dist/assets/themed_icons/Publication.js.map +1 -1
  211. package/dist/assets/themed_icons/Search.js.map +1 -1
  212. package/dist/assets/themed_icons/Settings.js.map +1 -1
  213. package/dist/assets/themed_icons/SortDown.js.map +1 -1
  214. package/dist/assets/themed_icons/SortUp.js.map +1 -1
  215. package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
  216. package/dist/assets/themed_icons/Study.js.map +1 -1
  217. package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
  218. package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
  219. package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
  220. package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
  221. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
  222. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  223. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  224. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  225. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
  226. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  227. package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
  228. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  229. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  230. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  231. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  232. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  233. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  234. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  235. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  236. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
  237. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  238. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  239. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  240. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
  241. package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
  242. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  243. package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
  244. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
  245. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  246. package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
  247. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  248. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  249. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  250. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  251. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  252. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  253. package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
  254. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  255. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
  256. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
  257. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  258. package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
  259. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  260. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  261. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  262. package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
  263. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  264. package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
  265. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
  266. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  267. package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
  268. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  269. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  270. package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
  271. package/dist/components/AddToDownloadListV2.js.map +1 -1
  272. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  273. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  274. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  275. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  276. package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
  277. package/dist/components/Authentication/LoginForm.js.map +1 -1
  278. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  279. package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
  280. package/dist/components/Authentication/Logout.js.map +1 -1
  281. package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
  282. package/dist/components/Authentication/PasswordField.js.map +1 -1
  283. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  284. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  285. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  286. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  287. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  288. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  289. package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
  290. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  291. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  292. package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
  293. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  294. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  295. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  296. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  297. package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
  298. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  299. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  300. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  301. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  302. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  303. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  304. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  305. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  306. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  307. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  308. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  309. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  310. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  311. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  312. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  313. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  314. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  315. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  316. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  317. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  321. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  322. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  323. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  324. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  325. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  326. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  330. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  331. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  332. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  333. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  334. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  335. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  336. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  337. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  338. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  339. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  340. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  341. package/dist/components/ComponentCollapse.js.map +1 -1
  342. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  343. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  344. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  345. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  346. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  347. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  348. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  349. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  350. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  351. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  352. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  353. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  354. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  355. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  356. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  357. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  358. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  359. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  360. package/dist/components/DataExplorer/DataExplorer.js +28 -31
  361. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  362. package/dist/components/DataGrid/DataGrid.js +72 -72
  363. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  364. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  365. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  366. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  367. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  368. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  369. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  370. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  371. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  372. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  373. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  374. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  375. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  376. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  377. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  378. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  379. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  380. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  381. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  382. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  383. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  384. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  385. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  386. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  387. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  388. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
  389. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  390. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  391. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  392. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  393. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  394. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  395. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  396. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  397. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  398. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  399. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  400. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  401. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  402. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  403. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  404. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  405. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  406. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  407. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  408. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  409. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  410. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  411. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  412. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  413. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  414. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  415. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  416. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  417. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  418. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  419. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  420. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  421. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  422. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  423. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  424. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  425. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  426. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  427. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  428. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  429. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  430. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  431. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  432. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  433. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  434. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  435. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  436. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  437. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  438. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  439. package/dist/components/DialogBase.js.map +1 -1
  440. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  441. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  442. package/dist/components/DirectDownloadButton.js.map +1 -1
  443. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  444. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  445. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  446. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  447. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  448. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  449. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  450. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  451. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  452. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  453. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  454. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  455. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  456. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  457. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  458. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  459. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  460. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  461. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  462. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  463. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  464. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  465. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  466. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  467. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  468. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  469. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  470. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  471. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  472. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  473. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  474. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  475. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  476. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  477. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  478. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  479. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  480. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  481. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  482. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  483. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  484. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  485. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  486. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  487. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  488. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  489. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  490. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  491. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  492. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  493. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  494. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  495. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  496. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  497. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  498. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  499. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  500. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  501. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  502. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  503. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  504. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  505. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  506. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  507. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  508. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  509. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  510. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  511. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  513. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  514. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  515. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  516. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  517. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  518. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  519. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  520. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  521. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  522. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  523. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  524. package/dist/components/EntityIcon.js.map +1 -1
  525. package/dist/components/EntityLink.js.map +1 -1
  526. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  527. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  528. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  529. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  530. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  531. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  532. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  533. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  534. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  535. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  536. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  537. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  538. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  539. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  540. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  541. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  542. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  543. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  544. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  545. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  546. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  547. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  548. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  549. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  550. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  551. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  552. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  553. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  554. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  555. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  556. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  557. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  558. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  559. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  560. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  561. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  562. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  563. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  564. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  565. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  566. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  567. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  568. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  569. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  570. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  571. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  572. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  573. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  574. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  575. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  576. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  577. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  578. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  579. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  580. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  581. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  582. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  583. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  584. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  585. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  586. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  587. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  588. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  589. package/dist/components/Forum/ForumPage.js.map +1 -1
  590. package/dist/components/Forum/ForumTable.js.map +1 -1
  591. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  592. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  593. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  594. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  595. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  596. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  597. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  598. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  599. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  600. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  601. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  602. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  603. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  604. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  605. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  606. package/dist/components/GenericCard/Linkify.js.map +1 -1
  607. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  608. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  609. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  610. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  611. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  612. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  613. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  614. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  615. package/dist/components/Goals/Goals.js +25 -27
  616. package/dist/components/Goals/Goals.js.map +1 -1
  617. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  618. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  619. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  620. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  621. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  622. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  623. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  624. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  625. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  626. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  627. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  628. package/dist/components/HasAccess/AccessIcon.js +10 -10
  629. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  630. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  631. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  632. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  633. package/dist/components/HeaderCard.js.map +1 -1
  634. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  635. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  636. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  637. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  638. package/dist/components/Icon/Icon.js.map +1 -1
  639. package/dist/components/IconList.js.map +1 -1
  640. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  641. package/dist/components/IconSvgButton.js.map +1 -1
  642. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  643. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  644. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  645. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  646. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  647. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  648. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  649. package/dist/components/JsonLdScript.js.map +1 -1
  650. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  651. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  652. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  653. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  654. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  655. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  656. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  657. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  658. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  659. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  660. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  661. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  662. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  663. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  664. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  665. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  666. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  667. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  668. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  669. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  670. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  671. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  672. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  673. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  674. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  675. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  676. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  677. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  678. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  679. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  680. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  681. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  682. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  683. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  684. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  685. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  686. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  687. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  688. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  689. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  690. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  691. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  692. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  693. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  694. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  695. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  696. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  697. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  698. package/dist/components/MuiContainer.js.map +1 -1
  699. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  700. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  701. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  702. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  703. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  704. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  705. package/dist/components/Plot/BarPlot.js.map +1 -1
  706. package/dist/components/Plot/DotPlot.js.map +1 -1
  707. package/dist/components/Plot/Plot.d.ts +12 -1
  708. package/dist/components/Plot/Plot.d.ts.map +1 -1
  709. package/dist/components/Plot/Plot.js +5 -1
  710. package/dist/components/Plot/Plot.js.map +1 -1
  711. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  712. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  713. package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
  714. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  715. package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
  716. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  717. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  718. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  719. package/dist/components/Plot/index.d.ts +3 -1
  720. package/dist/components/Plot/index.d.ts.map +1 -1
  721. package/dist/components/Plot/index.js +2 -1
  722. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  723. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  724. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  725. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  726. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  727. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  728. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  729. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  730. package/dist/components/PortalList/PortalCard.js.map +1 -1
  731. package/dist/components/PortalList/PortalList.js.map +1 -1
  732. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  733. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  734. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  735. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  736. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  737. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  738. package/dist/components/Programs/Programs.js.map +1 -1
  739. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  740. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  741. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  742. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  743. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  744. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  745. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  746. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  747. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  748. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  749. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  750. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  751. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  752. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  753. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  754. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  755. package/dist/components/QuerySortSelector.js.map +1 -1
  756. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  757. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  758. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  759. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  760. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  761. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  762. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  763. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  764. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  765. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  766. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  767. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  768. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  769. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  770. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  771. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  772. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  773. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  774. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  775. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  776. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  777. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  778. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  779. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  780. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  781. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  782. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  783. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  784. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  785. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  786. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  787. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  788. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  789. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  790. package/dist/components/Resources/Resources.js +8 -11
  791. package/dist/components/Resources/Resources.js.map +1 -1
  792. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  793. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  794. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  795. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  796. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  797. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  798. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  799. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  800. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  801. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  802. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  803. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  804. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  805. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  806. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  807. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  808. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  809. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  810. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  811. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  812. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  813. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  814. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  815. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  816. package/dist/components/SignInButton.js.map +1 -1
  817. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  818. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  819. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  820. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  821. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  822. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  823. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  824. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  825. package/dist/components/SourceAppImage.js.map +1 -1
  826. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  827. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  828. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  829. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  830. package/dist/components/StatisticsPlot.js.map +1 -1
  831. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  832. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  833. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  834. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  835. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  836. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  837. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  838. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  839. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  840. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  841. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  842. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  843. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  844. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  845. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  846. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  847. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  848. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  849. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  850. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  851. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  852. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  853. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  854. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  855. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  856. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  857. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  858. package/dist/components/SynapseForm/Header.js.map +1 -1
  859. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  860. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  861. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  862. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  863. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  864. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  865. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  866. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  867. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  868. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  869. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  870. package/dist/components/SynapseForm/types.js.map +1 -1
  871. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  872. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  873. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  874. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  875. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  876. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  877. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  878. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  879. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  880. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  881. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  882. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  883. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  884. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  885. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  886. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  887. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  888. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  889. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  890. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  891. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  892. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  893. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  894. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  895. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  896. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  897. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  898. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  899. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  900. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  901. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  902. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  903. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  904. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  905. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  906. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  907. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  908. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  909. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  910. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  911. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  912. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  913. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  914. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  915. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  916. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  917. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  918. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  919. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  920. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  921. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  922. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  923. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  924. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  925. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  926. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  927. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  928. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  929. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  930. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  931. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  932. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  933. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  934. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  935. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  936. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  937. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  938. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  939. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  940. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  941. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  942. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  943. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  944. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  945. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  946. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  947. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  948. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  949. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  950. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  951. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  952. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  953. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  954. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  955. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  956. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  957. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  958. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  959. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  960. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  961. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  962. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  963. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  964. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
  965. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  966. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  967. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  968. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  969. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  970. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  971. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  972. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  973. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
  974. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  975. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  976. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  977. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  978. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  979. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  980. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  981. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  982. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  983. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  984. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  985. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  986. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  987. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  988. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  989. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  990. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  991. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  992. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  993. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  994. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  995. package/dist/components/TeamBadge.js.map +1 -1
  996. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  997. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  998. package/dist/components/TemplateComponent.js.map +1 -1
  999. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1000. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1001. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1002. package/dist/components/TextField/TextField.js.map +1 -1
  1003. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1004. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1005. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1006. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1007. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1008. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1009. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1010. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1011. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1012. package/dist/components/TotalQueryResults.js.map +1 -1
  1013. package/dist/components/UserCard/Avatar.js.map +1 -1
  1014. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1015. package/dist/components/UserCard/UserCard.js.map +1 -1
  1016. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1017. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1018. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1019. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1020. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1021. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1022. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1023. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1024. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1025. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1026. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1027. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1028. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1029. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1030. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1031. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1032. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1033. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1034. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1035. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1036. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1037. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1038. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1039. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1040. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1041. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1042. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1043. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1044. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1045. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1046. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1047. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1048. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1049. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1050. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1051. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1052. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1053. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1054. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1055. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1056. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1057. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1058. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1059. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1060. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1061. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1062. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1063. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1064. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1065. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1066. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1067. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1068. package/dist/components/download_list/index.js.map +1 -1
  1069. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1070. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1071. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1072. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1073. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1074. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1075. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1076. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1077. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1078. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1079. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1080. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1081. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1082. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1083. package/dist/components/error/ErrorBanner.js.map +1 -1
  1084. package/dist/components/error/ErrorChip.js.map +1 -1
  1085. package/dist/components/error/ErrorPage.js +24 -24
  1086. package/dist/components/error/ErrorPage.js.map +1 -1
  1087. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1088. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1089. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1090. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1091. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1092. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1093. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1094. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1095. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1096. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1097. package/dist/components/index.js +48 -47
  1098. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1099. package/dist/components/layout/SWCHeader.js.map +1 -1
  1100. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1101. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1102. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1103. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1104. package/dist/components/row_renderers/Funder.js.map +1 -1
  1105. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1106. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1107. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1108. package/dist/components/styled/HoverPopover.js.map +1 -1
  1109. package/dist/components/styled/InlineBadge.js.map +1 -1
  1110. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1111. package/dist/components/styled/LargeButton.js.map +1 -1
  1112. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1113. package/dist/components/styled/LightTooltip.js.map +1 -1
  1114. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1115. package/dist/components/styled/StyledPopover.js.map +1 -1
  1116. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1117. package/dist/components/styled/WideButton.js.map +1 -1
  1118. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
  1119. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
  1120. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1121. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1122. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  1123. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
  1124. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
  1125. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
  1126. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
  1127. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
  1128. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
  1129. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1130. package/dist/components/trash/TrashCanList.js.map +1 -1
  1131. package/dist/components/utils/Blocker.js.map +1 -1
  1132. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1133. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1134. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1135. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1136. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1137. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1138. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1139. package/dist/components/widgets/Range.js.map +1 -1
  1140. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1141. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1142. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1143. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1144. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1145. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1146. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1147. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1148. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1149. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1150. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1151. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1152. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1153. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1154. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1155. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1156. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1157. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1158. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1159. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1160. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1161. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1162. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1163. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1164. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1165. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1166. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1167. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1168. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1169. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1170. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1171. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1172. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1173. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1174. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1175. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1176. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1177. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1178. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1179. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1180. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1181. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1182. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1183. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1184. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1185. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1186. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1187. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1188. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1189. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1190. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1191. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1192. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1193. package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
  1194. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1195. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1196. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1197. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1198. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1199. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1200. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1201. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1202. package/dist/index.js +54 -53
  1203. package/dist/index.js.map +1 -1
  1204. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1205. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1206. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1207. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1208. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1209. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1210. package/dist/mocks/chat/mockChat.js.map +1 -1
  1211. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1212. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1213. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1214. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1215. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1216. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1217. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1218. package/dist/mocks/entity/index.js.map +1 -1
  1219. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1220. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1221. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1222. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1223. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1224. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1225. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1226. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1227. package/dist/mocks/entity/mockProject.js.map +1 -1
  1228. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1229. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1230. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1231. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1232. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1233. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1234. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1235. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1236. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1237. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1238. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1239. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1240. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1241. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1242. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1243. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1244. package/dist/mocks/mockSchema.js.map +1 -1
  1245. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1246. package/dist/mocks/mockShortIo.js.map +1 -1
  1247. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1248. package/dist/mocks/mockSubscription.js.map +1 -1
  1249. package/dist/mocks/mockWiki.js.map +1 -1
  1250. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1251. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1252. package/dist/mocks/mock_file_handle.js.map +1 -1
  1253. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1254. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1255. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1256. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1257. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1258. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1259. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1260. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1261. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1262. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1263. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1264. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1265. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1266. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1267. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1268. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1269. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1270. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1271. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1272. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1273. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1274. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1275. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1276. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1277. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1278. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1279. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1280. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1281. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1282. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1283. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1284. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1285. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1286. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1287. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1288. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1289. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1290. package/dist/mocks/msw/handlers.js.map +1 -1
  1291. package/dist/mocks/msw/server.d.ts +1 -1
  1292. package/dist/mocks/msw/server.d.ts.map +1 -1
  1293. package/dist/mocks/msw/server.js.map +1 -1
  1294. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1295. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1296. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1297. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1298. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1299. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1300. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1301. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1302. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1303. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1304. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1305. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1306. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1307. package/dist/mocks/query/syn16787123.js.map +1 -1
  1308. package/dist/mocks/query/syn17328596.js.map +1 -1
  1309. package/dist/mocks/query/syn51735464.js.map +1 -1
  1310. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1311. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1312. package/dist/mocks/team/mockTeam.js.map +1 -1
  1313. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1314. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1315. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1316. package/dist/ror-client/index.js.map +1 -1
  1317. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1318. package/dist/stories/ToastDemo.js.map +1 -1
  1319. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1320. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1321. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1322. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1323. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1324. package/dist/synapse-client/HttpClient.js.map +1 -1
  1325. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1326. package/dist/synapse-client/SynapseClient.js +61 -69
  1327. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1328. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1329. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1330. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1331. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1332. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1333. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1334. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1335. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1336. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1337. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1338. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1339. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1340. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1341. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1342. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1343. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1344. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1345. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1346. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1347. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1348. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1349. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1350. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1351. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1352. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1353. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1354. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1355. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1356. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1357. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1358. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1359. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1360. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1361. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1362. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1363. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1364. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1365. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1366. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1367. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1368. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1369. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1370. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1371. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1372. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1373. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1374. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1375. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1376. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1377. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1378. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1379. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1380. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1381. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1382. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1383. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1384. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1385. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1386. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1387. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1388. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1389. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1390. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1391. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1392. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1393. package/dist/synapse-queries/ror/index.js.map +1 -1
  1394. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1395. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1396. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1397. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1398. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1399. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1400. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1401. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1402. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1403. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1404. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1405. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1406. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1407. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1408. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1409. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1410. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1411. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1412. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1413. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1414. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1415. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1416. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1417. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1418. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1419. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1420. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1421. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1422. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1423. package/dist/testutils/LocationTracker.js.map +1 -1
  1424. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1425. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1426. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1427. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1428. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1429. package/dist/testutils/vitest.setup.js.map +1 -1
  1430. package/dist/theme/DefaultTheme.js.map +1 -1
  1431. package/dist/theme/ThemeProvider.js.map +1 -1
  1432. package/dist/theme/mergeTheme.js.map +1 -1
  1433. package/dist/theme/palette/Palettes.js.map +1 -1
  1434. package/dist/theme/spreadSx.js.map +1 -1
  1435. package/dist/theme/typography/Link.js.map +1 -1
  1436. package/dist/theme/typography/Typography.js.map +1 -1
  1437. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1438. package/dist/utils/APIConstants.js.map +1 -1
  1439. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1440. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1441. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1442. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1443. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1444. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1445. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1446. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1447. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1448. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1449. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1450. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1451. package/dist/utils/SynapseConstants.js.map +1 -1
  1452. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1453. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1454. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1455. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1456. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1457. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1458. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1459. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1460. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1461. package/dist/utils/context/SynapseContext.js.map +1 -1
  1462. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1463. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1464. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1465. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1466. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1467. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1468. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1469. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1470. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1471. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1472. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1473. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1474. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1475. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1476. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1477. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1478. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1479. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1480. package/dist/utils/functions/StringUtils.js.map +1 -1
  1481. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1482. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1483. package/dist/utils/functions/colorPalette.js.map +1 -1
  1484. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1485. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1486. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1487. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1488. package/dist/utils/functions/getEndpoint.js +3 -3
  1489. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1490. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1491. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1492. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1493. package/dist/utils/functions/getUserData.js.map +1 -1
  1494. package/dist/utils/functions/queryUtils.js.map +1 -1
  1495. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1496. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1497. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1498. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1499. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1500. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1501. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1502. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1503. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1504. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1505. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1506. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1507. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1508. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1509. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1510. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1511. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1512. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1513. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1514. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1515. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1516. package/dist/utils/hooks/useListState.js.map +1 -1
  1517. package/dist/utils/hooks/useLogin.js.map +1 -1
  1518. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1519. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1520. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1521. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1522. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1523. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1524. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1525. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1526. package/dist/utils/hooks/useSet.js.map +1 -1
  1527. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1528. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1529. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1530. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1531. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1532. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1533. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1534. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1535. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1536. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1537. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1538. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1539. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1540. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1541. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1542. package/dist/utils/html/TargetEnum.js.map +1 -1
  1543. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1544. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1545. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1546. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1547. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1548. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1549. package/dist/utils/jsonschema/getType.js.map +1 -1
  1550. package/dist/utils/searchDefaults.js.map +1 -1
  1551. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1552. package/dist/utils/types/IsType.js.map +1 -1
  1553. package/package.json +67 -66
@@ -14,22 +14,22 @@ var m = /* @__PURE__ */ function(e) {
14
14
  }({}), h = (o) => {
15
15
  let { type: s, data: u } = o, d;
16
16
  switch (s) {
17
- case m.ENTITY:
17
+ case "EntityNode":
18
18
  d = /* @__PURE__ */ c(t, { ...u });
19
19
  break;
20
- case m.ENTITY_PLACEHOLDER:
20
+ case "EntityPlaceholderNode":
21
21
  d = /* @__PURE__ */ c(a, { ...u });
22
22
  break;
23
- case m.EXTERNAL:
23
+ case "ExternalNode":
24
24
  d = /* @__PURE__ */ c(r, { ...u });
25
25
  break;
26
- case m.ACTIVITY:
26
+ case "ActivityNode":
27
27
  d = /* @__PURE__ */ c(e, { ...u });
28
28
  break;
29
- case m.EXPAND:
29
+ case "ExpandNode":
30
30
  d = /* @__PURE__ */ c(n, { ...u });
31
31
  break;
32
- case m.UNDEFINED:
32
+ case "UndefinedNode":
33
33
  d = /* @__PURE__ */ c(i, {});
34
34
  break;
35
35
  default:
@@ -65,16 +65,16 @@ var m = /* @__PURE__ */ function(e) {
65
65
  }, _ = (e) => {
66
66
  let { type: t, data: n } = e;
67
67
  switch (t) {
68
- case m.ENTITY: return `${n.id}.${n.versionNumber ?? "latest"}`;
69
- case m.ENTITY_PLACEHOLDER: return `${n.targetId}.${n.targetVersionNumber ?? "latest"}`;
70
- case m.EXTERNAL: return `${n.url}`;
71
- case m.ACTIVITY: return `${n.id}`;
72
- case m.EXPAND: return `expand.node.${n.entityHeader.id}.${n.entityHeader.versionNumber ?? "latest"}`;
73
- case m.UNDEFINED: return `undefined.dummy.node.${n.id}.${n.versionNumber ?? "latest"}`;
68
+ case "EntityNode": return `${n.id}.${n.versionNumber ?? "latest"}`;
69
+ case "EntityPlaceholderNode": return `${n.targetId}.${n.targetVersionNumber ?? "latest"}`;
70
+ case "ExternalNode": return `${n.url}`;
71
+ case "ActivityNode": return `${n.id}`;
72
+ case "ExpandNode": return `expand.node.${n.entityHeader.id}.${n.entityHeader.versionNumber ?? "latest"}`;
73
+ case "UndefinedNode": return `undefined.dummy.node.${n.id}.${n.versionNumber ?? "latest"}`;
74
74
  }
75
75
  }, v = new p.graphlib.Graph();
76
76
  v.setDefaultEdgeLabel(() => ({}));
77
- var y = (e) => e.data.type == m.EXPAND ? 30 : 100, b = (e) => e.data.type == m.EXPAND ? 30 : 172, x = (e, t, n) => {
77
+ var y = (e) => e.data.type == "ExpandNode" ? 30 : 100, b = (e) => e.data.type == "ExpandNode" ? 30 : 172, x = (e, t, n) => {
78
78
  let r = n === "LR";
79
79
  return v.setGraph({ rankdir: n }), e.forEach((e) => {
80
80
  v.setNode(e.id, {
@@ -1 +1 @@
1
- {"version":3,"file":"ProvenanceUtils.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceUtils.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Node, Position, ConnectionLineType, Edge, MarkerType } from 'reactflow'\nimport { ActivityNodeLabel } from './ActivityNodeLabel'\nimport { EntityNodeLabel } from './EntityNodeLabel'\nimport {\n ExpandGraphNodeDataProps,\n ExpandGraphNodeLabel,\n} from './ExpandGraphNodeLabel'\nimport { ExternalGraphNodeLabel } from './ExternalGraphNodeLabel'\nimport dagre from 'dagre'\nimport { differenceWith, isEqual } from 'lodash-es'\nimport { UndefinedNodeLabel } from './UndefinedNodeLabel'\nimport { EntityHeader, Reference } from '@sage-bionetworks/synapse-types'\nimport { Activity, UsedURL } from '@sage-bionetworks/synapse-types'\nimport { EntityPlaceholderNodeLabel } from './EntityPlaceholderNodeLabel'\n\nexport enum NodeType {\n ENTITY = 'EntityNode',\n ENTITY_PLACEHOLDER = 'EntityPlaceholderNode',\n EXTERNAL = 'ExternalNode',\n ACTIVITY = 'ActivityNode',\n EXPAND = 'ExpandNode',\n UNDEFINED = 'UndefinedNode',\n}\n\ntype ProvenanceNodeLabelProps =\n | UsedURL\n | Activity\n | ExpandGraphNodeDataProps\n | EntityHeader\n | Reference\n\nexport type ProvenanceNodeProps = {\n type: NodeType\n data: ProvenanceNodeLabelProps\n}\n\nexport type ProvenanceNodeData = {\n label: ReactNode\n props: ProvenanceNodeLabelProps\n type: NodeType\n}\n\nexport const getProvenanceNode = (props: ProvenanceNodeProps): Node => {\n const { type, data } = props\n let nodeLabel: ReactNode\n switch (type) {\n case NodeType.ENTITY:\n nodeLabel = <EntityNodeLabel {...(data as EntityHeader)} />\n break\n case NodeType.ENTITY_PLACEHOLDER:\n nodeLabel = <EntityPlaceholderNodeLabel {...(data as Reference)} />\n break\n case NodeType.EXTERNAL:\n nodeLabel = <ExternalGraphNodeLabel {...(data as UsedURL)} />\n break\n case NodeType.ACTIVITY:\n nodeLabel = <ActivityNodeLabel {...(data as Activity)} />\n break\n case NodeType.EXPAND:\n nodeLabel = (\n <ExpandGraphNodeLabel {...(data as ExpandGraphNodeDataProps)} />\n )\n break\n case NodeType.UNDEFINED:\n nodeLabel = <UndefinedNodeLabel />\n break\n default:\n nodeLabel = <p>Unrecognized node type: {type}</p>\n break\n }\n const nodeData: ProvenanceNodeData = {\n label: nodeLabel,\n props: data,\n type: type,\n }\n return {\n id: getNodeId(props),\n position: { x: 100, y: 100 }, // hard coded, let graph layout library figure this out\n data: nodeData,\n connectable: false,\n draggable: false,\n // selectable: false, // like to make unselectable, but node contents become non-interactive\n className: `${type}`,\n }\n}\n\nexport const getProvenanceEdge = (\n node1Props: ProvenanceNodeProps,\n node2Props: ProvenanceNodeProps,\n): Edge => {\n const node1Id = getNodeId(node1Props)\n const node2Id = getNodeId(node2Props)\n return {\n id: `${node1Id}-${node2Id}`,\n source: node1Id,\n target: node2Id,\n animated: true,\n type: ConnectionLineType.SimpleBezier,\n markerEnd: {\n type: MarkerType.ArrowClosed,\n },\n }\n}\n\nexport const getNodeId = (props: ProvenanceNodeProps) => {\n const { type, data } = props\n switch (type) {\n case NodeType.ENTITY:\n return `${(data as EntityHeader).id}.${\n (data as EntityHeader).versionNumber ?? 'latest'\n }`\n case NodeType.ENTITY_PLACEHOLDER:\n return `${(data as Reference).targetId}.${\n (data as Reference).targetVersionNumber ?? 'latest'\n }`\n case NodeType.EXTERNAL:\n return `${(data as UsedURL).url}`\n case NodeType.ACTIVITY:\n return `${(data as Activity).id}`\n case NodeType.EXPAND:\n return `expand.node.${\n (data as ExpandGraphNodeDataProps).entityHeader.id\n }.${\n (data as ExpandGraphNodeDataProps).entityHeader.versionNumber ??\n 'latest'\n }`\n case NodeType.UNDEFINED:\n return `undefined.dummy.node.${(data as EntityHeader).id}.${\n (data as EntityHeader).versionNumber ?? 'latest'\n }`\n }\n}\n\n// layout\nconst dagreGraph = new dagre.graphlib.Graph()\ndagreGraph.setDefaultEdgeLabel(() => ({}))\n\nconst getNodeHeight = (node: Node) => {\n const nodeData: ProvenanceNodeData = node.data as ProvenanceNodeData\n return nodeData.type == NodeType.EXPAND ? 30 : 100\n}\nconst getNodeWidth = (node: Node) => {\n const nodeData: ProvenanceNodeData = node.data as ProvenanceNodeData\n return nodeData.type == NodeType.EXPAND ? 30 : 172\n}\n\nexport const getLayoutedElements = (\n nodes: Node[],\n edges: Edge[],\n direction: string,\n) => {\n const isHorizontal = direction === 'LR'\n dagreGraph.setGraph({ rankdir: direction })\n\n nodes.forEach(node => {\n dagreGraph.setNode(node.id, {\n width: getNodeWidth(node),\n height: getNodeHeight(node),\n })\n })\n\n edges.forEach(edge => {\n dagreGraph.setEdge(edge.source, edge.target)\n })\n\n dagre.layout(dagreGraph)\n\n nodes.forEach(node => {\n const nodeWithPosition = dagreGraph.node(node.id)\n node.targetPosition = isHorizontal ? Position.Left : Position.Top\n node.sourcePosition = isHorizontal ? Position.Right : Position.Bottom\n\n // We are shifting the dagre node position (anchor=center center) to the top left\n // so it matches the React Flow node anchor point (top left).\n node.position = {\n x: nodeWithPosition.x - getNodeWidth(node) / 2,\n y: nodeWithPosition.y - getNodeHeight(node) / 2,\n }\n\n return node\n })\n\n return { nodes, edges }\n}\n\nexport const isArrayEqual = (x: any[], y: any[]) => {\n return differenceWith(x, y, isEqual).length == 0\n}\n"],"mappings":";;;;;;;;;;;AAgBA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,SAAS,cACT,EAAA,qBAAqB,yBACrB,EAAA,WAAW,gBACX,EAAA,WAAW,gBACX,EAAA,SAAS,cACT,EAAA,YAAY;KACb,EAoBY,KAAqB,MAAqC;CACrE,IAAM,EAAE,SAAM,YAAS,GACnB;AACJ,SAAQ,GAAR;EACE,KAAK,EAAS;AACZ,OAAY,kBAAC,GAAD,EAAiB,GAAK,GAAyB,CAAA;AAC3D;EACF,KAAK,EAAS;AACZ,OAAY,kBAAC,GAAD,EAA4B,GAAK,GAAsB,CAAA;AACnE;EACF,KAAK,EAAS;AACZ,OAAY,kBAAC,GAAD,EAAwB,GAAK,GAAoB,CAAA;AAC7D;EACF,KAAK,EAAS;AACZ,OAAY,kBAAC,GAAD,EAAmB,GAAK,GAAqB,CAAA;AACzD;EACF,KAAK,EAAS;AACZ,OACE,kBAAC,GAAD,EAAsB,GAAK,GAAqC,CAAA;AAElE;EACF,KAAK,EAAS;AACZ,OAAY,kBAAC,GAAD,EAAsB,CAAA;AAClC;EACF;AACE,OAAY,kBAAC,KAAD,EAAA,UAAA,CAAG,4BAAyB,EAAS,EAAA,CAAA;AACjD;;CAEJ,IAAM,IAA+B;EACnC,OAAO;EACP,OAAO;EACD;EACP;AACD,QAAO;EACL,IAAI,EAAU,EAAM;EACpB,UAAU;GAAE,GAAG;GAAK,GAAG;GAAK;EAC5B,MAAM;EACN,aAAa;EACb,WAAW;EAEX,WAAW,GAAG;EACf;GAGU,KACX,GACA,MACS;CACT,IAAM,IAAU,EAAU,EAAW,EAC/B,IAAU,EAAU,EAAW;AACrC,QAAO;EACL,IAAI,GAAG,EAAQ,GAAG;EAClB,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,MAAM,EAAmB;EACzB,WAAW,EACT,MAAM,EAAW,aAClB;EACF;GAGU,KAAa,MAA+B;CACvD,IAAM,EAAE,SAAM,YAAS;AACvB,SAAQ,GAAR;EACE,KAAK,EAAS,OACZ,QAAO,GAAI,EAAsB,GAAG,GACjC,EAAsB,iBAAiB;EAE5C,KAAK,EAAS,mBACZ,QAAO,GAAI,EAAmB,SAAS,GACpC,EAAmB,uBAAuB;EAE/C,KAAK,EAAS,SACZ,QAAO,GAAI,EAAiB;EAC9B,KAAK,EAAS,SACZ,QAAO,GAAI,EAAkB;EAC/B,KAAK,EAAS,OACZ,QAAO,eACJ,EAAkC,aAAa,GACjD,GACE,EAAkC,aAAa,iBAChD;EAEJ,KAAK,EAAS,UACZ,QAAO,wBAAyB,EAAsB,GAAG,GACtD,EAAsB,iBAAiB;;GAM1C,IAAa,IAAI,EAAM,SAAS,OAAO;AAC7C,EAAW,2BAA2B,EAAE,EAAE;AAE1C,IAAM,KAAiB,MACgB,EAAK,KAC1B,QAAQ,EAAS,SAAS,KAAK,KAE3C,KAAgB,MACiB,EAAK,KAC1B,QAAQ,EAAS,SAAS,KAAK,KAGpC,KACX,GACA,GACA,MACG;CACH,IAAM,IAAe,MAAc;AA+BnC,QA9BA,EAAW,SAAS,EAAE,SAAS,GAAW,CAAC,EAE3C,EAAM,SAAQ,MAAQ;AACpB,IAAW,QAAQ,EAAK,IAAI;GAC1B,OAAO,EAAa,EAAK;GACzB,QAAQ,EAAc,EAAK;GAC5B,CAAC;GACF,EAEF,EAAM,SAAQ,MAAQ;AACpB,IAAW,QAAQ,EAAK,QAAQ,EAAK,OAAO;GAC5C,EAEF,EAAM,OAAO,EAAW,EAExB,EAAM,SAAQ,MAAQ;EACpB,IAAM,IAAmB,EAAW,KAAK,EAAK,GAAG;AAWjD,SAVA,EAAK,iBAAiB,IAAe,EAAS,OAAO,EAAS,KAC9D,EAAK,iBAAiB,IAAe,EAAS,QAAQ,EAAS,QAI/D,EAAK,WAAW;GACd,GAAG,EAAiB,IAAI,EAAa,EAAK,GAAG;GAC7C,GAAG,EAAiB,IAAI,EAAc,EAAK,GAAG;GAC/C,EAEM;GACP,EAEK;EAAE;EAAO;EAAO;GAGZ,KAAgB,GAAU,MAC9B,EAAe,GAAG,GAAG,EAAQ,CAAC,UAAU"}
1
+ {"version":3,"file":"ProvenanceUtils.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceUtils.tsx"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Node, Position, ConnectionLineType, Edge, MarkerType } from 'reactflow'\nimport { ActivityNodeLabel } from './ActivityNodeLabel'\nimport { EntityNodeLabel } from './EntityNodeLabel'\nimport {\n ExpandGraphNodeDataProps,\n ExpandGraphNodeLabel,\n} from './ExpandGraphNodeLabel'\nimport { ExternalGraphNodeLabel } from './ExternalGraphNodeLabel'\nimport dagre from 'dagre'\nimport { differenceWith, isEqual } from 'lodash-es'\nimport { UndefinedNodeLabel } from './UndefinedNodeLabel'\nimport { EntityHeader, Reference } from '@sage-bionetworks/synapse-types'\nimport { Activity, UsedURL } from '@sage-bionetworks/synapse-types'\nimport { EntityPlaceholderNodeLabel } from './EntityPlaceholderNodeLabel'\n\nexport enum NodeType {\n ENTITY = 'EntityNode',\n ENTITY_PLACEHOLDER = 'EntityPlaceholderNode',\n EXTERNAL = 'ExternalNode',\n ACTIVITY = 'ActivityNode',\n EXPAND = 'ExpandNode',\n UNDEFINED = 'UndefinedNode',\n}\n\ntype ProvenanceNodeLabelProps =\n | UsedURL\n | Activity\n | ExpandGraphNodeDataProps\n | EntityHeader\n | Reference\n\nexport type ProvenanceNodeProps = {\n type: NodeType\n data: ProvenanceNodeLabelProps\n}\n\nexport type ProvenanceNodeData = {\n label: ReactNode\n props: ProvenanceNodeLabelProps\n type: NodeType\n}\n\nexport const getProvenanceNode = (props: ProvenanceNodeProps): Node => {\n const { type, data } = props\n let nodeLabel: ReactNode\n switch (type) {\n case NodeType.ENTITY:\n nodeLabel = <EntityNodeLabel {...(data as EntityHeader)} />\n break\n case NodeType.ENTITY_PLACEHOLDER:\n nodeLabel = <EntityPlaceholderNodeLabel {...(data as Reference)} />\n break\n case NodeType.EXTERNAL:\n nodeLabel = <ExternalGraphNodeLabel {...(data as UsedURL)} />\n break\n case NodeType.ACTIVITY:\n nodeLabel = <ActivityNodeLabel {...(data as Activity)} />\n break\n case NodeType.EXPAND:\n nodeLabel = (\n <ExpandGraphNodeLabel {...(data as ExpandGraphNodeDataProps)} />\n )\n break\n case NodeType.UNDEFINED:\n nodeLabel = <UndefinedNodeLabel />\n break\n default:\n nodeLabel = <p>Unrecognized node type: {type}</p>\n break\n }\n const nodeData: ProvenanceNodeData = {\n label: nodeLabel,\n props: data,\n type: type,\n }\n return {\n id: getNodeId(props),\n position: { x: 100, y: 100 }, // hard coded, let graph layout library figure this out\n data: nodeData,\n connectable: false,\n draggable: false,\n // selectable: false, // like to make unselectable, but node contents become non-interactive\n className: `${type}`,\n }\n}\n\nexport const getProvenanceEdge = (\n node1Props: ProvenanceNodeProps,\n node2Props: ProvenanceNodeProps,\n): Edge => {\n const node1Id = getNodeId(node1Props)\n const node2Id = getNodeId(node2Props)\n return {\n id: `${node1Id}-${node2Id}`,\n source: node1Id,\n target: node2Id,\n animated: true,\n type: ConnectionLineType.SimpleBezier,\n markerEnd: {\n type: MarkerType.ArrowClosed,\n },\n }\n}\n\nexport const getNodeId = (props: ProvenanceNodeProps) => {\n const { type, data } = props\n switch (type) {\n case NodeType.ENTITY:\n return `${(data as EntityHeader).id}.${\n (data as EntityHeader).versionNumber ?? 'latest'\n }`\n case NodeType.ENTITY_PLACEHOLDER:\n return `${(data as Reference).targetId}.${\n (data as Reference).targetVersionNumber ?? 'latest'\n }`\n case NodeType.EXTERNAL:\n return `${(data as UsedURL).url}`\n case NodeType.ACTIVITY:\n return `${(data as Activity).id}`\n case NodeType.EXPAND:\n return `expand.node.${\n (data as ExpandGraphNodeDataProps).entityHeader.id\n }.${\n (data as ExpandGraphNodeDataProps).entityHeader.versionNumber ??\n 'latest'\n }`\n case NodeType.UNDEFINED:\n return `undefined.dummy.node.${(data as EntityHeader).id}.${\n (data as EntityHeader).versionNumber ?? 'latest'\n }`\n }\n}\n\n// layout\nconst dagreGraph = new dagre.graphlib.Graph()\ndagreGraph.setDefaultEdgeLabel(() => ({}))\n\nconst getNodeHeight = (node: Node) => {\n const nodeData: ProvenanceNodeData = node.data as ProvenanceNodeData\n return nodeData.type == NodeType.EXPAND ? 30 : 100\n}\nconst getNodeWidth = (node: Node) => {\n const nodeData: ProvenanceNodeData = node.data as ProvenanceNodeData\n return nodeData.type == NodeType.EXPAND ? 30 : 172\n}\n\nexport const getLayoutedElements = (\n nodes: Node[],\n edges: Edge[],\n direction: string,\n) => {\n const isHorizontal = direction === 'LR'\n dagreGraph.setGraph({ rankdir: direction })\n\n nodes.forEach(node => {\n dagreGraph.setNode(node.id, {\n width: getNodeWidth(node),\n height: getNodeHeight(node),\n })\n })\n\n edges.forEach(edge => {\n dagreGraph.setEdge(edge.source, edge.target)\n })\n\n dagre.layout(dagreGraph)\n\n nodes.forEach(node => {\n const nodeWithPosition = dagreGraph.node(node.id)\n node.targetPosition = isHorizontal ? Position.Left : Position.Top\n node.sourcePosition = isHorizontal ? Position.Right : Position.Bottom\n\n // We are shifting the dagre node position (anchor=center center) to the top left\n // so it matches the React Flow node anchor point (top left).\n node.position = {\n x: nodeWithPosition.x - getNodeWidth(node) / 2,\n y: nodeWithPosition.y - getNodeHeight(node) / 2,\n }\n\n return node\n })\n\n return { nodes, edges }\n}\n\nexport const isArrayEqual = (x: any[], y: any[]) => {\n return differenceWith(x, y, isEqual).length == 0\n}\n"],"mappings":";;;;;;;;;;;AAgBA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,SAAA,cACA,EAAA,qBAAA,yBACA,EAAA,WAAA,gBACA,EAAA,WAAA,gBACA,EAAA,SAAA,cACA,EAAA,YAAA;AACF,EAAA,CAAA,CAAA,GAoBa,KAAqB,MAAqC;CACrE,IAAM,EAAE,SAAM,YAAS,GACnB;CACJ,QAAQ,GAAR;EACE,KAAA;GACE,IAAY,kBAAC,GAAD,EAAiB,GAAK,EAAwB,CAAA;GAC1D;EACF,KAAA;GACE,IAAY,kBAAC,GAAD,EAA4B,GAAK,EAAqB,CAAA;GAClE;EACF,KAAA;GACE,IAAY,kBAAC,GAAD,EAAwB,GAAK,EAAmB,CAAA;GAC5D;EACF,KAAA;GACE,IAAY,kBAAC,GAAD,EAAmB,GAAK,EAAoB,CAAA;GACxD;EACF,KAAA;GACE,IACE,kBAAC,GAAD,EAAsB,GAAK,EAAoC,CAAA;GAEjE;EACF,KAAA;GACE,IAAY,kBAAC,GAAD,CAAqB,CAAA;GACjC;EACF;GACE,IAAY,kBAAC,KAAD,EAAA,UAAA,CAAG,4BAAyB,CAAQ,EAAA,CAAA;GAChD;CACJ;CACA,IAAM,IAA+B;EACnC,OAAO;EACP,OAAO;EACD;CACR;CACA,OAAO;EACL,IAAI,EAAU,CAAK;EACnB,UAAU;GAAE,GAAG;GAAK,GAAG;EAAI;EAC3B,MAAM;EACN,aAAa;EACb,WAAW;EAEX,WAAW,GAAG;CAChB;AACF,GAEa,KACX,GACA,MACS;CACT,IAAM,IAAU,EAAU,CAAU,GAC9B,IAAU,EAAU,CAAU;CACpC,OAAO;EACL,IAAI,GAAG,EAAQ,GAAG;EAClB,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,MAAM,EAAmB;EACzB,WAAW,EACT,MAAM,EAAW,YACnB;CACF;AACF,GAEa,KAAa,MAA+B;CACvD,IAAM,EAAE,SAAM,YAAS;CACvB,QAAQ,GAAR;EACE,KAAA,cACE,OAAO,GAAI,EAAsB,GAAG,GACjC,EAAsB,iBAAiB;EAE5C,KAAA,yBACE,OAAO,GAAI,EAAmB,SAAS,GACpC,EAAmB,uBAAuB;EAE/C,KAAA,gBACE,OAAO,GAAI,EAAiB;EAC9B,KAAA,gBACE,OAAO,GAAI,EAAkB;EAC/B,KAAA,cACE,OAAO,eACJ,EAAkC,aAAa,GACjD,GACE,EAAkC,aAAa,iBAChD;EAEJ,KAAA,iBACE,OAAO,wBAAyB,EAAsB,GAAG,GACtD,EAAsB,iBAAiB;CAE9C;AACF,GAGM,IAAa,IAAI,EAAM,SAAS,MAAM;AAC5C,EAAW,2BAA2B,CAAC,EAAE;AAEzC,IAAM,KAAiB,MACgB,EAAK,KAC1B,QAAA,eAA0B,KAAK,KAE3C,KAAgB,MACiB,EAAK,KAC1B,QAAA,eAA0B,KAAK,KAGpC,KACX,GACA,GACA,MACG;CACH,IAAM,IAAe,MAAc;CA+BnC,OA9BA,EAAW,SAAS,EAAE,SAAS,EAAU,CAAC,GAE1C,EAAM,SAAQ,MAAQ;EACpB,EAAW,QAAQ,EAAK,IAAI;GAC1B,OAAO,EAAa,CAAI;GACxB,QAAQ,EAAc,CAAI;EAC5B,CAAC;CACH,CAAC,GAED,EAAM,SAAQ,MAAQ;EACpB,EAAW,QAAQ,EAAK,QAAQ,EAAK,MAAM;CAC7C,CAAC,GAED,EAAM,OAAO,CAAU,GAEvB,EAAM,SAAQ,MAAQ;EACpB,IAAM,IAAmB,EAAW,KAAK,EAAK,EAAE;EAWhD,OAVA,EAAK,iBAAiB,IAAe,EAAS,OAAO,EAAS,KAC9D,EAAK,iBAAiB,IAAe,EAAS,QAAQ,EAAS,QAI/D,EAAK,WAAW;GACd,GAAG,EAAiB,IAAI,EAAa,CAAI,IAAI;GAC7C,GAAG,EAAiB,IAAI,EAAc,CAAI,IAAI;EAChD,GAEO;CACT,CAAC,GAEM;EAAE;EAAO;CAAM;AACxB,GAEa,KAAgB,GAAU,MAC9B,EAAe,GAAG,GAAG,CAAO,EAAE,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"UndefinedNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/UndefinedNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { Typography } from '@mui/material'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\n\nexport const UndefinedNodeLabel = (): React.ReactNode => {\n return (\n <>\n <Typography variant=\"smallText1\" className=\"description\">\n Undefined\n </Typography>\n\n <HelpPopover\n placement=\"top\"\n markdownText=\"Provenance tracks the relationship \n between data, code and analytical results.\"\n helpUrl=\"https://help.synapse.org/docs/Provenance.1972470373.html\"\n />\n </>\n )\n}\n"],"mappings":";;;;;AAIA,IAAa,UAET,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;CAAY,SAAQ;CAAa,WAAU;WAAc;CAE5C,CAAA,EAEb,kBAAC,GAAD;CACE,WAAU;CACV,cAAa;CAEb,SAAQ;CACR,CAAA,CACD,EAAA,CAAA"}
1
+ {"version":3,"file":"UndefinedNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/UndefinedNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { Typography } from '@mui/material'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\n\nexport const UndefinedNodeLabel = (): React.ReactNode => {\n return (\n <>\n <Typography variant=\"smallText1\" className=\"description\">\n Undefined\n </Typography>\n\n <HelpPopover\n placement=\"top\"\n markdownText=\"Provenance tracks the relationship \n between data, code and analytical results.\"\n helpUrl=\"https://help.synapse.org/docs/Provenance.1972470373.html\"\n />\n </>\n )\n}\n"],"mappings":";;;;;AAIA,IAAa,UAET,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;CAAY,SAAQ;CAAa,WAAU;WAAc;AAE7C,CAAA,GAEZ,kBAAC,GAAD;CACE,WAAU;CACV,cAAa;CAEb,SAAQ;AACT,CAAA,CACD,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryContext.js","names":[],"sources":["../../../src/components/QueryContext/QueryContext.tsx"],"sourcesContent":["import React from 'react'\nimport { LockedColumn } from '@/utils'\nimport { ImmutableTableQueryResult } from '@/utils/hooks/useImmutableTableQuery/useImmutableTableQuery'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { createContext, PropsWithChildren, useContext } from 'react'\nimport { ReadonlyDeep } from 'type-fest'\nimport { TableQueryUseQueryOptions } from '../QueryWrapper/TableQueryUseQueryOptions'\n\nexport type QueryContextType = {\n isInfinite: boolean\n /** The entity ID parsed from the SQL query */\n entityId?: string\n /** The optional version number of the table parsed from the SQL query */\n versionNumber: number | undefined\n currentQueryRequest: ReadonlyDeep<QueryBundleRequest>\n nextQueryRequest: ReadonlyDeep<QueryBundleRequest>\n /** Returns a deep clone of the current query bundle request */\n getCurrentQueryRequest: () => QueryBundleRequest\n /** Returns a deep clone of the initial query bundle request */\n getInitQueryRequest: () => QueryBundleRequest\n /** Updates the current query with the passed request */\n executeQueryRequest: ImmutableTableQueryResult['setQuery']\n /** Resets the query to its initial state, clearing all filters added by the user */\n resetQuery: ImmutableTableQueryResult['resetQuery']\n resetDebounceTimer: ImmutableTableQueryResult['resetDebounceTimer']\n addValueToSelectedFacet: ImmutableTableQueryResult['addValueToSelectedFacet']\n setRangeFacetValue: ImmutableTableQueryResult['setRangeFacetValue']\n removeSelectedFacet: ImmutableTableQueryResult['removeSelectedFacet']\n removeValueFromSelectedFacet: ImmutableTableQueryResult['removeValueFromSelectedFacet']\n /** Removes a matching QueryFilter from the query */\n removeQueryFilter: ImmutableTableQueryResult['removeQueryFilter']\n /** Removes a value from a QueryFilter. If no more values remain in the filter, the filter is also removed */\n removeValueFromQueryFilter: ImmutableTableQueryResult['removeValueFromQueryFilter']\n /** Whether facets are available to be filtered upon based on the current data */\n hasFacetedSelectColumn: boolean\n /** Returns true iff the current request has resettable filters applied via facet filters or additionalFilters. Excludes filters applied to a locked column */\n hasResettableFilters: boolean\n // Either open benefactor entity page in a new window or open the sharing settings dialog (in Synapse.org)\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n /** Combines two faceted columns into a single inclusive range selector */\n combineRangeFacetConfig?: ReadonlyDeep<CombineRangeFacetConfig>\n\n /** react-query UseQueryOptions to fetch the current page of table data */\n rowDataQueryOptions: TableQueryUseQueryOptions['rowDataQueryOptions']\n /** react-query UseInfiniteQueryOptions to fetch infinite rows of table data */\n rowDataInfiniteQueryOptions: TableQueryUseQueryOptions['rowDataInfiniteQueryOptions']\n /** react-query UseQueryOptions to fetch the current query metadata (e.g. column models, facet statistics, total number of rows) */\n queryMetadataQueryOptions: TableQueryUseQueryOptions['queryMetadataQueryOptions']\n\n /** Navigates to a particular page. The first page has value 1. Note that this has no effect if `isInfinite` is true */\n goToPage: (pageNum: number) => void\n /** The current page number, where page 1 is the first page. Note that this has no effect if `isInfinite` is true. */\n currentPage: number\n /** Updates the page size */\n setPageSize: (pageSize: number) => void\n /** The current page size. */\n pageSize: number\n\n /**\n * A column name may be \"locked\" so that it is both (1) not shown to the user that the filter is active, and (2) not modifiable by the user.\n * For example, we may show only the data matching a particular facet value on a Details Page without implying that the shown data is part of a larger table.\n * The presence of a locked filter will result in a client-side modification of the active query and result bundle data.\n */\n lockedColumn: LockedColumn | undefined\n\n /**\n * PORTALS-3071: For Tables that are not entityviews or a datasets, keep track of the column that should be used for the row entity ID\n */\n fileIdColumnName: string | undefined\n /**\n * PORTALS-3071: For Tables that are not entityviews or a datasets, keep track of the column that should be used for the row (entity) version\n */\n fileVersionColumnName: string | undefined\n /**\n * PORTALS-3071: For Tables that are not entityviews or a datasets, keep track of the column that should be used for the row (entity) name\n */\n fileNameColumnName: string | undefined\n\n /**\n * Optional factory to get react-query options for a given page number without calling the standard\n * table query API. When provided (e.g. by SearchQueryWrapper), usePrefetchTableRows will use this\n * instead of getTableQueryUseQueryOptions so that the correct API is called for prefetching.\n */\n getRowDataQueryOptionsForPage?: (\n pageNumber: number,\n ) => TableQueryUseQueryOptions['rowDataQueryOptions']\n}\n\n/**\n * This must be exported to use the context in class components.\n */\nexport const QueryContext = createContext<QueryContextType | undefined>(\n undefined,\n)\n\nexport type QueryContextProviderProps = PropsWithChildren<{\n queryContext: QueryContextType\n}>\n\n/**\n * Provides data related to a Synapse table query, and functions for iterating through pages of the data.\n */\nexport const QueryContextProvider = ({\n children,\n queryContext,\n}: QueryContextProviderProps): React.ReactNode => {\n return (\n <QueryContext.Provider value={queryContext}>\n {children}\n </QueryContext.Provider>\n )\n}\n\n/**\n * Returns the QueryContext, including QueryResultBundle\n *\n * @template TIncludedFields - If you know which specific optional fields will be included in the QueryResultBundle,\n * you can specify them in the generic TIncludedFields\n * @template ExcludeOtherFields - If set to true, will remove optional fields besides those specified in TIncludedFields,\n * default false\n */\nexport function useQueryContext(): QueryContextType {\n const context = useContext(QueryContext)\n if (context === undefined) {\n throw new Error('useQueryContext must be used within a QueryWrapper')\n }\n return context\n}\n\nexport type CombineRangeFacetConfig = {\n minFacetColumn: string\n maxFacetColumn: string\n label: string\n}\n\nexport const QueryContextConsumer = QueryContext.Consumer\n"],"mappings":";;;AA2FA,IAAa,IAAe,EAC1B,KAAA,EACD,EASY,KAAwB,EACnC,aACA,sBAGE,kBAAC,EAAa,UAAd;CAAuB,OAAO;CAC3B;CACqB,CAAA;AAY5B,SAAgB,IAAoC;CAClD,IAAM,IAAU,EAAW,EAAa;AACxC,KAAI,MAAY,KAAA,EACd,OAAU,MAAM,qDAAqD;AAEvE,QAAO;;AAST,IAAa,IAAuB,EAAa"}
1
+ {"version":3,"file":"QueryContext.js","names":[],"sources":["../../../src/components/QueryContext/QueryContext.tsx"],"sourcesContent":["import React from 'react'\nimport { LockedColumn } from '@/utils'\nimport { ImmutableTableQueryResult } from '@/utils/hooks/useImmutableTableQuery/useImmutableTableQuery'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { createContext, PropsWithChildren, useContext } from 'react'\nimport { ReadonlyDeep } from 'type-fest'\nimport { TableQueryUseQueryOptions } from '../QueryWrapper/TableQueryUseQueryOptions'\n\nexport type QueryContextType = {\n isInfinite: boolean\n /** The entity ID parsed from the SQL query */\n entityId?: string\n /** The optional version number of the table parsed from the SQL query */\n versionNumber: number | undefined\n currentQueryRequest: ReadonlyDeep<QueryBundleRequest>\n nextQueryRequest: ReadonlyDeep<QueryBundleRequest>\n /** Returns a deep clone of the current query bundle request */\n getCurrentQueryRequest: () => QueryBundleRequest\n /** Returns a deep clone of the initial query bundle request */\n getInitQueryRequest: () => QueryBundleRequest\n /** Updates the current query with the passed request */\n executeQueryRequest: ImmutableTableQueryResult['setQuery']\n /** Resets the query to its initial state, clearing all filters added by the user */\n resetQuery: ImmutableTableQueryResult['resetQuery']\n resetDebounceTimer: ImmutableTableQueryResult['resetDebounceTimer']\n addValueToSelectedFacet: ImmutableTableQueryResult['addValueToSelectedFacet']\n setRangeFacetValue: ImmutableTableQueryResult['setRangeFacetValue']\n removeSelectedFacet: ImmutableTableQueryResult['removeSelectedFacet']\n removeValueFromSelectedFacet: ImmutableTableQueryResult['removeValueFromSelectedFacet']\n /** Removes a matching QueryFilter from the query */\n removeQueryFilter: ImmutableTableQueryResult['removeQueryFilter']\n /** Removes a value from a QueryFilter. If no more values remain in the filter, the filter is also removed */\n removeValueFromQueryFilter: ImmutableTableQueryResult['removeValueFromQueryFilter']\n /** Whether facets are available to be filtered upon based on the current data */\n hasFacetedSelectColumn: boolean\n /** Returns true iff the current request has resettable filters applied via facet filters or additionalFilters. Excludes filters applied to a locked column */\n hasResettableFilters: boolean\n // Either open benefactor entity page in a new window or open the sharing settings dialog (in Synapse.org)\n onViewSharingSettingsClicked?: (benefactorId: string) => void\n /** Combines two faceted columns into a single inclusive range selector */\n combineRangeFacetConfig?: ReadonlyDeep<CombineRangeFacetConfig>\n\n /** react-query UseQueryOptions to fetch the current page of table data */\n rowDataQueryOptions: TableQueryUseQueryOptions['rowDataQueryOptions']\n /** react-query UseInfiniteQueryOptions to fetch infinite rows of table data */\n rowDataInfiniteQueryOptions: TableQueryUseQueryOptions['rowDataInfiniteQueryOptions']\n /** react-query UseQueryOptions to fetch the current query metadata (e.g. column models, facet statistics, total number of rows) */\n queryMetadataQueryOptions: TableQueryUseQueryOptions['queryMetadataQueryOptions']\n\n /** Navigates to a particular page. The first page has value 1. Note that this has no effect if `isInfinite` is true */\n goToPage: (pageNum: number) => void\n /** The current page number, where page 1 is the first page. Note that this has no effect if `isInfinite` is true. */\n currentPage: number\n /** Updates the page size */\n setPageSize: (pageSize: number) => void\n /** The current page size. */\n pageSize: number\n\n /**\n * A column name may be \"locked\" so that it is both (1) not shown to the user that the filter is active, and (2) not modifiable by the user.\n * For example, we may show only the data matching a particular facet value on a Details Page without implying that the shown data is part of a larger table.\n * The presence of a locked filter will result in a client-side modification of the active query and result bundle data.\n */\n lockedColumn: LockedColumn | undefined\n\n /**\n * PORTALS-3071: For Tables that are not entityviews or a datasets, keep track of the column that should be used for the row entity ID\n */\n fileIdColumnName: string | undefined\n /**\n * PORTALS-3071: For Tables that are not entityviews or a datasets, keep track of the column that should be used for the row (entity) version\n */\n fileVersionColumnName: string | undefined\n /**\n * PORTALS-3071: For Tables that are not entityviews or a datasets, keep track of the column that should be used for the row (entity) name\n */\n fileNameColumnName: string | undefined\n\n /**\n * Optional factory to get react-query options for a given page number without calling the standard\n * table query API. When provided (e.g. by SearchQueryWrapper), usePrefetchTableRows will use this\n * instead of getTableQueryUseQueryOptions so that the correct API is called for prefetching.\n */\n getRowDataQueryOptionsForPage?: (\n pageNumber: number,\n ) => TableQueryUseQueryOptions['rowDataQueryOptions']\n}\n\n/**\n * This must be exported to use the context in class components.\n */\nexport const QueryContext = createContext<QueryContextType | undefined>(\n undefined,\n)\n\nexport type QueryContextProviderProps = PropsWithChildren<{\n queryContext: QueryContextType\n}>\n\n/**\n * Provides data related to a Synapse table query, and functions for iterating through pages of the data.\n */\nexport const QueryContextProvider = ({\n children,\n queryContext,\n}: QueryContextProviderProps): React.ReactNode => {\n return (\n <QueryContext.Provider value={queryContext}>\n {children}\n </QueryContext.Provider>\n )\n}\n\n/**\n * Returns the QueryContext, including QueryResultBundle\n *\n * @template TIncludedFields - If you know which specific optional fields will be included in the QueryResultBundle,\n * you can specify them in the generic TIncludedFields\n * @template ExcludeOtherFields - If set to true, will remove optional fields besides those specified in TIncludedFields,\n * default false\n */\nexport function useQueryContext(): QueryContextType {\n const context = useContext(QueryContext)\n if (context === undefined) {\n throw new Error('useQueryContext must be used within a QueryWrapper')\n }\n return context\n}\n\nexport type CombineRangeFacetConfig = {\n minFacetColumn: string\n maxFacetColumn: string\n label: string\n}\n\nexport const QueryContextConsumer = QueryContext.Consumer\n"],"mappings":";;;AA2FA,IAAa,IAAe,EAC1B,KAAA,CACF,GASa,KAAwB,EACnC,aACA,sBAGE,kBAAC,EAAa,UAAd;CAAuB,OAAO;CAC3B;AACoB,CAAA;AAY3B,SAAgB,IAAoC;CAClD,IAAM,IAAU,EAAW,CAAY;CACvC,IAAI,MAAY,KAAA,GACd,MAAU,MAAM,oDAAoD;CAEtE,OAAO;AACT;AAQA,IAAa,IAAuB,EAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryCount.js","names":[],"sources":["../../../src/components/QueryCount/QueryCount.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport React from 'react'\n\nexport type QueryCountProps = {\n query: Query\n parens?: boolean\n}\n\n/**\n * Shows the total count of results for a table query.\n */\nexport function QueryCount(props: QueryCountProps): React.ReactNode {\n const { query, parens } = props\n const entityId = parseEntityIdFromSqlStatement(query.sql)\n\n const request: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: query,\n entityId,\n partMask: SynapseConstants.BUNDLE_MASK_QUERY_COUNT,\n }\n\n const { data: queryResult } = useGetQueryResultBundle(request)\n\n const localCount = queryResult?.queryCount?.toLocaleString()\n /* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Using_toLocaleString */\n return <>{localCount && (parens ? `(${localCount})` : localCount)}</>\n}\nexport default QueryCount\n"],"mappings":";;;;;;;AAcA,SAAgB,EAAW,GAAyC;CAClE,IAAM,EAAE,UAAO,cAAW,GAUpB,EAAE,MAAM,MAAgB,EAAwB;EANpD,cAAc;EACP;EACP,UALe,EAA8B,EAAM,IAKnD;EACA,UAAU;EAG0C,CAAQ,EAExD,IAAa,GAAa,YAAY,gBAAgB;AAE5D,QAAO,kBAAA,GAAA,EAAA,UAAG,MAAe,IAAS,IAAI,EAAW,KAAK,IAAe,CAAA"}
1
+ {"version":3,"file":"QueryCount.js","names":[],"sources":["../../../src/components/QueryCount/QueryCount.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport React from 'react'\n\nexport type QueryCountProps = {\n query: Query\n parens?: boolean\n}\n\n/**\n * Shows the total count of results for a table query.\n */\nexport function QueryCount(props: QueryCountProps): React.ReactNode {\n const { query, parens } = props\n const entityId = parseEntityIdFromSqlStatement(query.sql)\n\n const request: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: query,\n entityId,\n partMask: SynapseConstants.BUNDLE_MASK_QUERY_COUNT,\n }\n\n const { data: queryResult } = useGetQueryResultBundle(request)\n\n const localCount = queryResult?.queryCount?.toLocaleString()\n /* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Using_toLocaleString */\n return <>{localCount && (parens ? `(${localCount})` : localCount)}</>\n}\nexport default QueryCount\n"],"mappings":";;;;;;;AAcA,SAAgB,EAAW,GAAyC;CAClE,IAAM,EAAE,UAAO,cAAW,GAUpB,EAAE,MAAM,MAAgB,EAAwB;EANpD,cAAc;EACP;EACP,UALe,EAA8B,EAAM,GAKnD;EACA,UAAU;CAG0C,CAAO,GAEvD,IAAa,GAAa,YAAY,eAAe;CAE3D,OAAO,kBAAA,GAAA,EAAA,UAAG,MAAe,IAAS,IAAI,EAAW,KAAK,GAAc,CAAA;AACtE"}
@@ -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"}