synapse-react-client 4.0.18 → 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 (1609) hide show
  1. package/dist/SWC.index.d.ts +3 -1
  2. package/dist/SWC.index.d.ts.map +1 -1
  3. package/dist/SWC.index.js +3 -1
  4. package/dist/SWC.index.js.map +1 -1
  5. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  6. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  7. package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
  8. package/dist/assets/GoogleIcon.js.map +1 -1
  9. package/dist/assets/GoogleIcon24.js.map +1 -1
  10. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  11. package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
  12. package/dist/assets/homepage/aacr.js.map +1 -1
  13. package/dist/assets/homepage/cri.js.map +1 -1
  14. package/dist/assets/homepage/ctf.js.map +1 -1
  15. package/dist/assets/homepage/egress.js.map +1 -1
  16. package/dist/assets/homepage/facebook.js.map +1 -1
  17. package/dist/assets/homepage/fisma.js.map +1 -1
  18. package/dist/assets/homepage/gff.js.map +1 -1
  19. package/dist/assets/homepage/github.js.map +1 -1
  20. package/dist/assets/homepage/gray.js.map +1 -1
  21. package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
  22. package/dist/assets/homepage/instagram.js.map +1 -1
  23. package/dist/assets/homepage/linkedin.js.map +1 -1
  24. package/dist/assets/homepage/ml-commons.js.map +1 -1
  25. package/dist/assets/homepage/nih-aging.js.map +1 -1
  26. package/dist/assets/homepage/nih-heart.js.map +1 -1
  27. package/dist/assets/homepage/nih-nci.js.map +1 -1
  28. package/dist/assets/homepage/nih-nimh.js.map +1 -1
  29. package/dist/assets/homepage/ntap.js.map +1 -1
  30. package/dist/assets/homepage/plan-item.js.map +1 -1
  31. package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
  32. package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
  33. package/dist/assets/homepage/python.js.map +1 -1
  34. package/dist/assets/homepage/r.js.map +1 -1
  35. package/dist/assets/homepage/research-credit-feature.js.map +1 -1
  36. package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
  37. package/dist/assets/homepage/sloan.js.map +1 -1
  38. package/dist/assets/homepage/twitter.js.map +1 -1
  39. package/dist/assets/homepage/users.js.map +1 -1
  40. package/dist/assets/homepage/youtube.js.map +1 -1
  41. package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
  42. package/dist/assets/icons/AccessPending.js.map +1 -1
  43. package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
  44. package/dist/assets/icons/AddAd.js.map +1 -1
  45. package/dist/assets/icons/AddToList.js.map +1 -1
  46. package/dist/assets/icons/Alert.js.map +1 -1
  47. package/dist/assets/icons/Arrow.js.map +1 -1
  48. package/dist/assets/icons/AwardScroll.js.map +1 -1
  49. package/dist/assets/icons/Baseline.js.map +1 -1
  50. package/dist/assets/icons/Cavatica.js.map +1 -1
  51. package/dist/assets/icons/CertifiedUser.js.map +1 -1
  52. package/dist/assets/icons/Challenge.js.map +1 -1
  53. package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
  54. package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
  55. package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
  56. package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
  57. package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
  58. package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
  59. package/dist/assets/icons/ClappingHands.js.map +1 -1
  60. package/dist/assets/icons/CloudWarning.js.map +1 -1
  61. package/dist/assets/icons/CommunicateFindings.js.map +1 -1
  62. package/dist/assets/icons/CreateVersion.js.map +1 -1
  63. package/dist/assets/icons/DNA_Two.js.map +1 -1
  64. package/dist/assets/icons/Data2.js.map +1 -1
  65. package/dist/assets/icons/DoubleQuotes.js.map +1 -1
  66. package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
  67. package/dist/assets/icons/FileWithShield.js.map +1 -1
  68. package/dist/assets/icons/FileWithShield2.js.map +1 -1
  69. package/dist/assets/icons/FrontHand.js.map +1 -1
  70. package/dist/assets/icons/HandWithMoney.js.map +1 -1
  71. package/dist/assets/icons/IconCopy.js.map +1 -1
  72. package/dist/assets/icons/IconMinus.js.map +1 -1
  73. package/dist/assets/icons/IconPlus.js.map +1 -1
  74. package/dist/assets/icons/Java.js.map +1 -1
  75. package/dist/assets/icons/MintDoi.js.map +1 -1
  76. package/dist/assets/icons/MultiFile.js.map +1 -1
  77. package/dist/assets/icons/MultiFile2.js.map +1 -1
  78. package/dist/assets/icons/NoData.js.map +1 -1
  79. package/dist/assets/icons/NoSearchResults.js.map +1 -1
  80. package/dist/assets/icons/ORCIDIcon.js.map +1 -1
  81. package/dist/assets/icons/OpenBook.js.map +1 -1
  82. package/dist/assets/icons/Podium.js.map +1 -1
  83. package/dist/assets/icons/Python.js.map +1 -1
  84. package/dist/assets/icons/QueryStructuredData.js.map +1 -1
  85. package/dist/assets/icons/RLogo.js.map +1 -1
  86. package/dist/assets/icons/RecordProvenance.js.map +1 -1
  87. package/dist/assets/icons/RosetteRibbon.js.map +1 -1
  88. package/dist/assets/icons/SageFullLogo.js.map +1 -1
  89. package/dist/assets/icons/SearchImage.js.map +1 -1
  90. package/dist/assets/icons/ShareYourResearch.js.map +1 -1
  91. package/dist/assets/icons/Sort.js.map +1 -1
  92. package/dist/assets/icons/StarTrophy.js.map +1 -1
  93. package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
  94. package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
  95. package/dist/assets/icons/SynapseLogoName.js.map +1 -1
  96. package/dist/assets/icons/TasksIcon.js.map +1 -1
  97. package/dist/assets/icons/Terminal.js.map +1 -1
  98. package/dist/assets/icons/ThreeStars.js.map +1 -1
  99. package/dist/assets/icons/UnpackagableFile.js.map +1 -1
  100. package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
  101. package/dist/assets/icons/ValidatedProfile.js.map +1 -1
  102. package/dist/assets/icons/account-certified.js.map +1 -1
  103. package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
  104. package/dist/assets/icons/account-validated.js.map +1 -1
  105. package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
  106. package/dist/assets/icons/chart2.js.map +1 -1
  107. package/dist/assets/icons/columns.js.map +1 -1
  108. package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
  109. package/dist/assets/icons/computationalTool.js.map +1 -1
  110. package/dist/assets/icons/dataReuse.js.map +1 -1
  111. package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
  112. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  113. package/dist/assets/icons/error_page/maintenance.js.map +1 -1
  114. package/dist/assets/icons/error_page/no-access.js.map +1 -1
  115. package/dist/assets/icons/error_page/unavailable.js.map +1 -1
  116. package/dist/assets/icons/file.js.map +1 -1
  117. package/dist/assets/icons/inSilicoModel.js.map +1 -1
  118. package/dist/assets/icons/institution.js.map +1 -1
  119. package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
  120. package/dist/assets/icons/modelSystem.js.map +1 -1
  121. package/dist/assets/icons/mouse.js.map +1 -1
  122. package/dist/assets/icons/organizations.js.map +1 -1
  123. package/dist/assets/icons/person.js.map +1 -1
  124. package/dist/assets/icons/spatialProfiling.js.map +1 -1
  125. package/dist/assets/icons/standardDataModel.js.map +1 -1
  126. package/dist/assets/icons/study-active.js.map +1 -1
  127. package/dist/assets/icons/study-complete.js.map +1 -1
  128. package/dist/assets/icons/subscribe_plus.js.map +1 -1
  129. package/dist/assets/icons/synapse-logo.js.map +1 -1
  130. package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
  131. package/dist/assets/icons/translational.js.map +1 -1
  132. package/dist/assets/icons/tree_horizontal.js.map +1 -1
  133. package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
  134. package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
  135. package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
  136. package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
  137. package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
  138. package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
  139. package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
  140. package/dist/assets/illustrations/docker_illustration.js.map +1 -1
  141. package/dist/assets/illustrations/donation_illustration.js.map +1 -1
  142. package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
  143. package/dist/assets/illustrations/files_illustration.js.map +1 -1
  144. package/dist/assets/illustrations/following_illustration.js.map +1 -1
  145. package/dist/assets/illustrations/index.js.map +1 -1
  146. package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
  147. package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
  148. package/dist/assets/illustrations/projects_illustration.js.map +1 -1
  149. package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
  150. package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
  151. package/dist/assets/illustrations/tables_illustration.js.map +1 -1
  152. package/dist/assets/illustrations/teams_illustration.js.map +1 -1
  153. package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
  154. package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
  155. package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
  156. package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
  157. package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
  158. package/dist/assets/logos/other/pluto-logo.js.map +1 -1
  159. package/dist/assets/logos/other/terra-logo.js.map +1 -1
  160. package/dist/assets/mui_components/AccessManagement.js.map +1 -1
  161. package/dist/assets/mui_components/AccountCertified.js.map +1 -1
  162. package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
  163. package/dist/assets/mui_components/AccountValidated.js.map +1 -1
  164. package/dist/assets/mui_components/ActionKey.js.map +1 -1
  165. package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
  166. package/dist/assets/mui_components/Chromatin.js.map +1 -1
  167. package/dist/assets/mui_components/Clinical.js.map +1 -1
  168. package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
  169. package/dist/assets/mui_components/Data.js.map +1 -1
  170. package/dist/assets/mui_components/DataLocked.js.map +1 -1
  171. package/dist/assets/mui_components/DataReuse.js.map +1 -1
  172. package/dist/assets/mui_components/Dataset.js.map +1 -1
  173. package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
  174. package/dist/assets/mui_components/Docker.js.map +1 -1
  175. package/dist/assets/mui_components/GeneExpression.js.map +1 -1
  176. package/dist/assets/mui_components/GeneVariants.js.map +1 -1
  177. package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
  178. package/dist/assets/mui_components/Imaging.js.map +1 -1
  179. package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
  180. package/dist/assets/mui_components/Kinomics.js.map +1 -1
  181. package/dist/assets/mui_components/LineGraph.js.map +1 -1
  182. package/dist/assets/mui_components/ModelSystem.js.map +1 -1
  183. package/dist/assets/mui_components/Other.js.map +1 -1
  184. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  185. package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
  186. package/dist/assets/mui_components/Proteomics.js.map +1 -1
  187. package/dist/assets/mui_components/Rat.js.map +1 -1
  188. package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
  189. package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
  190. package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
  191. package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
  192. package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
  193. package/dist/assets/sustainability/dialPosition1.js.map +1 -1
  194. package/dist/assets/sustainability/dialPosition2.js.map +1 -1
  195. package/dist/assets/sustainability/dialPosition3.js.map +1 -1
  196. package/dist/assets/sustainability/dialPosition4.js.map +1 -1
  197. package/dist/assets/themed_icons/Active.js.map +1 -1
  198. package/dist/assets/themed_icons/Chart.js.map +1 -1
  199. package/dist/assets/themed_icons/Close.js.map +1 -1
  200. package/dist/assets/themed_icons/Collapse.js.map +1 -1
  201. package/dist/assets/themed_icons/Columns.js.map +1 -1
  202. package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
  203. package/dist/assets/themed_icons/Database.js.map +1 -1
  204. package/dist/assets/themed_icons/Download.js.map +1 -1
  205. package/dist/assets/themed_icons/Expand.js.map +1 -1
  206. package/dist/assets/themed_icons/Explore.js.map +1 -1
  207. package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
  208. package/dist/assets/themed_icons/Filter.js.map +1 -1
  209. package/dist/assets/themed_icons/Program.js.map +1 -1
  210. package/dist/assets/themed_icons/Project.js.map +1 -1
  211. package/dist/assets/themed_icons/Publication.js.map +1 -1
  212. package/dist/assets/themed_icons/Search.js.map +1 -1
  213. package/dist/assets/themed_icons/Settings.js.map +1 -1
  214. package/dist/assets/themed_icons/SortDown.js.map +1 -1
  215. package/dist/assets/themed_icons/SortUp.js.map +1 -1
  216. package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
  217. package/dist/assets/themed_icons/Study.js.map +1 -1
  218. package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
  219. package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
  220. package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
  221. package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
  222. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
  223. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  224. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  225. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  226. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
  227. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  228. package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
  229. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  230. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  231. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  232. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  233. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  234. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  235. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  236. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  237. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
  238. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  239. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  240. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  241. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
  242. package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
  243. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  244. package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
  245. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
  246. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  247. package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
  248. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  249. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  250. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  251. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  252. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  253. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  254. package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
  255. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  256. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
  257. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
  258. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  259. package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
  260. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  261. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  262. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  263. package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
  264. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  265. package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
  266. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
  267. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  268. package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
  269. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  270. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  271. package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
  272. package/dist/components/AddToDownloadListV2.js.map +1 -1
  273. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  274. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  275. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  276. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  277. package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
  278. package/dist/components/Authentication/LoginForm.js.map +1 -1
  279. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  280. package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
  281. package/dist/components/Authentication/Logout.js.map +1 -1
  282. package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
  283. package/dist/components/Authentication/PasswordField.js.map +1 -1
  284. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  285. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  286. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  287. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  288. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  289. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  290. package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
  291. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  292. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  293. package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
  294. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  295. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  296. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  297. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  298. package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
  299. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  300. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  301. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  302. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  303. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  304. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  305. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  306. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  307. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  308. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  309. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  310. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  311. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  312. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  313. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  314. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  315. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  316. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  317. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  321. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  322. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  323. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  324. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  325. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  326. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  330. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  331. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  332. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  333. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  334. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  335. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  336. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  337. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  338. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  339. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  340. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  341. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  342. package/dist/components/ComponentCollapse.js.map +1 -1
  343. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  344. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  345. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  346. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  347. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  348. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  349. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  350. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  351. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  352. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  353. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  354. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  355. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  356. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  357. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  358. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  359. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  360. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  361. package/dist/components/DataExplorer/DataExplorer.css +1 -0
  362. package/dist/components/DataExplorer/DataExplorer.d.ts +13 -0
  363. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -0
  364. package/dist/components/DataExplorer/DataExplorer.js +116 -0
  365. package/dist/components/DataExplorer/DataExplorer.js.map +1 -0
  366. package/dist/components/DataExplorer/DataExplorer.module.js +22 -0
  367. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -0
  368. package/dist/components/DataExplorer/DataExplorer.module.scss +156 -0
  369. package/dist/components/DataGrid/DataGrid.js +72 -72
  370. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  371. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  372. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  373. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  374. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  375. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  376. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  377. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  378. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  379. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  380. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  381. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  382. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  383. package/dist/components/DataGrid/columns/AutocompleteColumn.js +106 -102
  384. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  385. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
  386. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +97 -89
  387. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  388. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  389. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  390. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +19 -8
  391. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -1
  392. package/dist/components/DataGrid/columns/useGridAutocompleteState.js +64 -43
  393. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  394. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  395. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  396. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  397. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  398. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  399. package/dist/components/DataGrid/components/UploadCsvToGridDialog.d.ts.map +1 -1
  400. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +9 -9
  401. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  402. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  403. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  404. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
  405. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  406. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  407. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.d.ts.map +1 -1
  408. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +8 -1
  409. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  410. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  411. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  412. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  413. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  414. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  415. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  416. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  417. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  418. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  419. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  420. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  421. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  422. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  423. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  424. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  425. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  426. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  427. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  428. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  429. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  430. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  431. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  432. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  433. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  434. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  435. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  436. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  437. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  438. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  439. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  440. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  441. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  442. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  443. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  444. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  445. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  446. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  447. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  448. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  449. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  450. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  451. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  452. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  453. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  454. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  455. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  456. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  457. package/dist/components/DialogBase.js.map +1 -1
  458. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  459. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  460. package/dist/components/DirectDownloadButton.js.map +1 -1
  461. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  462. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  463. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  464. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  465. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  466. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  467. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  468. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  469. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  470. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  471. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  472. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  473. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  474. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  475. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  476. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  477. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  478. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  479. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  480. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  481. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  482. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  483. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  484. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  485. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  486. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  487. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  488. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  489. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  490. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  491. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  492. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  493. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  494. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  495. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  496. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  497. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  498. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  499. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  500. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  501. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  502. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  503. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  504. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  505. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  506. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  507. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  508. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  509. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  510. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  511. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  513. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  514. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  515. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  516. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  517. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  518. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  519. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  520. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  521. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  522. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  523. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  524. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  525. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  526. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  527. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  528. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  529. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  530. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  531. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  532. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  533. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  534. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  535. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  536. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  537. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  538. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  539. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  540. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  541. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  542. package/dist/components/EntityIcon.js.map +1 -1
  543. package/dist/components/EntityLink.js.map +1 -1
  544. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  545. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  546. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  547. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  548. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  549. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  550. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  551. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  552. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  553. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  554. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  555. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  556. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  557. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  558. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  559. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  560. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  561. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  562. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  563. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  564. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  565. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  566. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  567. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  568. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  569. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  570. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  571. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  572. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  573. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  574. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  575. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  576. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  577. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  578. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  579. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  580. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  581. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  582. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  583. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  584. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  585. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  586. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  587. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  588. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  589. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  590. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  591. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  592. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  593. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  594. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  595. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  596. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  597. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  598. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  599. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  600. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  601. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  602. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  603. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  604. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  605. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  606. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  607. package/dist/components/Forum/ForumPage.js.map +1 -1
  608. package/dist/components/Forum/ForumTable.js.map +1 -1
  609. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  610. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  611. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  612. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  613. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  614. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  615. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  616. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  617. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  618. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  619. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  620. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  621. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  622. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  623. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  624. package/dist/components/GenericCard/Linkify.js.map +1 -1
  625. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  626. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  627. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  628. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  629. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  630. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  631. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  632. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  633. package/dist/components/Goals/Goals.js +25 -27
  634. package/dist/components/Goals/Goals.js.map +1 -1
  635. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  636. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  637. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  638. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  639. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  640. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  641. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  642. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  643. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  644. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  645. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  646. package/dist/components/HasAccess/AccessIcon.js +10 -10
  647. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  648. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  649. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  650. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  651. package/dist/components/HeaderCard.js.map +1 -1
  652. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  653. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  654. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  655. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  656. package/dist/components/Icon/Icon.js.map +1 -1
  657. package/dist/components/IconList.js.map +1 -1
  658. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  659. package/dist/components/IconSvgButton.js.map +1 -1
  660. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  661. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  662. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  663. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  664. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  665. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  666. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  667. package/dist/components/JsonLdScript.js.map +1 -1
  668. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  669. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  670. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  671. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  672. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  673. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  674. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  675. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  676. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  677. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  678. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  679. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  680. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  681. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  682. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  683. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  684. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  685. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  686. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  687. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  688. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  689. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  690. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  691. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  692. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  693. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  694. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  695. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  696. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  697. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  698. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  699. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  700. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  701. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  702. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  703. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  704. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  705. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  706. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  707. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  708. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  709. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  710. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  711. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  712. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  713. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  714. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  715. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  716. package/dist/components/MuiContainer.js.map +1 -1
  717. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  718. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  719. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  720. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  721. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  722. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  723. package/dist/components/Plot/BarPlot.js.map +1 -1
  724. package/dist/components/Plot/DotPlot.js.map +1 -1
  725. package/dist/components/Plot/Plot.d.ts +12 -1
  726. package/dist/components/Plot/Plot.d.ts.map +1 -1
  727. package/dist/components/Plot/Plot.js +5 -1
  728. package/dist/components/Plot/Plot.js.map +1 -1
  729. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  730. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  731. package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
  732. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  733. package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
  734. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  735. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  736. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  737. package/dist/components/Plot/index.d.ts +3 -1
  738. package/dist/components/Plot/index.d.ts.map +1 -1
  739. package/dist/components/Plot/index.js +2 -1
  740. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  741. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  742. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  743. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  744. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  745. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  746. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  747. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  748. package/dist/components/PortalList/PortalCard.js.map +1 -1
  749. package/dist/components/PortalList/PortalList.js.map +1 -1
  750. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  751. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  752. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  753. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  754. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  755. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  756. package/dist/components/Programs/Programs.js.map +1 -1
  757. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  758. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  759. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  760. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  761. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  762. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  763. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  764. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  765. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  766. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  767. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  768. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  769. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  770. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  771. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  772. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  773. package/dist/components/QuerySortSelector.js.map +1 -1
  774. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  775. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  776. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
  777. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +67 -65
  778. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  779. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  780. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  781. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  782. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  783. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  784. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  785. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  786. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  787. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  788. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  789. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  790. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  791. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  792. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  793. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -1
  794. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  795. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +1 -0
  796. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  797. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  798. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  799. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  800. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  801. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  802. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  803. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  804. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  805. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  806. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  807. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  808. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  809. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  810. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  811. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  812. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  813. package/dist/components/Resources/Resources.js +8 -11
  814. package/dist/components/Resources/Resources.js.map +1 -1
  815. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  816. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  817. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  818. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  819. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  820. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  821. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  822. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  823. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  824. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  825. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  826. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  827. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  828. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  829. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts +1 -1
  830. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts.map +1 -1
  831. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js +1 -0
  832. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  833. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  834. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  835. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  836. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  837. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  838. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  839. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  840. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  841. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  842. package/dist/components/SignInButton.js.map +1 -1
  843. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  844. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  845. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  846. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  847. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  848. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  849. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  850. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  851. package/dist/components/SourceAppImage.js.map +1 -1
  852. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  853. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  854. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  855. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts +1 -1
  856. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts.map +1 -1
  857. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  858. package/dist/components/StatisticsPlot.js.map +1 -1
  859. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  860. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  861. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  862. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  863. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  864. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  865. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  866. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  867. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  868. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  869. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  870. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  871. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  872. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  873. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  874. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  875. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  876. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  877. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  878. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  879. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  880. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  881. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  882. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  883. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  884. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  885. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  886. package/dist/components/SynapseForm/Header.js.map +1 -1
  887. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  888. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  889. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  890. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  891. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  892. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  893. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  894. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  895. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  896. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  897. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  898. package/dist/components/SynapseForm/types.js.map +1 -1
  899. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  900. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  901. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  902. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  903. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  904. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  905. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  906. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  907. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  908. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  909. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  910. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  911. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  912. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  913. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  914. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  915. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  916. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  917. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  918. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  919. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  920. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  921. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  922. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  923. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  924. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  925. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  926. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  927. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  928. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  929. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  930. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  931. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  932. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  933. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  934. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  935. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  936. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  937. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  938. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  939. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  940. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  941. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  942. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  943. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  944. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  945. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  946. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  947. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  948. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  949. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  950. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  951. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  952. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  953. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  954. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  955. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  956. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  957. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  958. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  959. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  960. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  961. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  962. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  963. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  964. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  965. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  966. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  967. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  968. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  969. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  970. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  971. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  972. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  973. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  974. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  975. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  976. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  977. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  978. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  979. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  980. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  981. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  982. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  983. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  984. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  985. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  986. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  987. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  988. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  989. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  990. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  991. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  992. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +12 -12
  993. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  994. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  995. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  996. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js +4 -4
  997. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  998. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  999. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  1000. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  1001. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  1002. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +32 -32
  1003. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  1004. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  1005. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  1006. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  1007. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  1008. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  1009. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  1010. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  1011. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  1012. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  1013. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  1014. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  1015. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  1016. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  1017. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  1018. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  1019. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  1020. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  1021. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  1022. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  1023. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  1024. package/dist/components/TeamBadge.js.map +1 -1
  1025. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  1026. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  1027. package/dist/components/TemplateComponent.js.map +1 -1
  1028. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1029. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1030. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1031. package/dist/components/TextField/TextField.js.map +1 -1
  1032. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1033. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1034. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1035. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1036. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1037. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1038. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1039. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1040. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1041. package/dist/components/TotalQueryResults.js.map +1 -1
  1042. package/dist/components/UserCard/Avatar.js.map +1 -1
  1043. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1044. package/dist/components/UserCard/UserCard.js.map +1 -1
  1045. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1046. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1047. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1048. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1049. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1050. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1051. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1052. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1053. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1054. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1055. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1056. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1057. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1058. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1059. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1060. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1061. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1062. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1063. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1064. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1065. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1066. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1067. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1068. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1069. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1070. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1071. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1072. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1073. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1074. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1075. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1076. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1077. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1078. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1079. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1080. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1081. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1082. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1083. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1084. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1085. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1086. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1087. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1088. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1089. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1090. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1091. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1092. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1093. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1094. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1095. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1096. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1097. package/dist/components/download_list/index.js.map +1 -1
  1098. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1099. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1100. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1101. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1102. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1103. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1104. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1105. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1106. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1107. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1108. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1109. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1110. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1111. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1112. package/dist/components/error/ErrorBanner.js.map +1 -1
  1113. package/dist/components/error/ErrorChip.js.map +1 -1
  1114. package/dist/components/error/ErrorPage.js +24 -24
  1115. package/dist/components/error/ErrorPage.js.map +1 -1
  1116. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1117. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1118. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1119. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1120. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1121. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1122. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1123. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1124. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1125. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1126. package/dist/components/index.js +48 -47
  1127. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1128. package/dist/components/layout/SWCHeader.js.map +1 -1
  1129. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1130. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1131. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1132. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1133. package/dist/components/row_renderers/Funder.js.map +1 -1
  1134. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1135. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1136. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1137. package/dist/components/styled/HoverPopover.js.map +1 -1
  1138. package/dist/components/styled/InlineBadge.js.map +1 -1
  1139. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1140. package/dist/components/styled/LargeButton.js.map +1 -1
  1141. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1142. package/dist/components/styled/LightTooltip.js.map +1 -1
  1143. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1144. package/dist/components/styled/StyledPopover.js.map +1 -1
  1145. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1146. package/dist/components/styled/WideButton.js.map +1 -1
  1147. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts +18 -0
  1148. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts.map +1 -0
  1149. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +113 -0
  1150. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -0
  1151. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1152. package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts +5 -5
  1153. package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts.map +1 -1
  1154. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +27 -76
  1155. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1156. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts +19 -0
  1157. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts.map +1 -0
  1158. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +41 -0
  1159. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -0
  1160. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts +12 -0
  1161. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts.map +1 -0
  1162. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js +25 -0
  1163. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -0
  1164. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts +18 -0
  1165. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts.map +1 -0
  1166. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js +55 -0
  1167. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -0
  1168. package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts +19 -0
  1169. package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts.map +1 -0
  1170. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js +35 -0
  1171. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -0
  1172. package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts +22 -0
  1173. package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts.map +1 -0
  1174. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +32 -0
  1175. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -0
  1176. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts +14 -0
  1177. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts.map +1 -0
  1178. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js +23 -0
  1179. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -0
  1180. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1181. package/dist/components/trash/TrashCanList.js.map +1 -1
  1182. package/dist/components/utils/Blocker.js.map +1 -1
  1183. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1184. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1185. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1186. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1187. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1188. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1189. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1190. package/dist/components/widgets/Range.js.map +1 -1
  1191. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1192. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1193. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1194. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1195. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1196. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1197. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1198. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1199. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1200. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1201. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1202. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1203. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1204. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1205. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1206. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1207. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1208. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1209. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1210. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1211. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1212. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1213. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1214. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1215. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1216. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1217. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1218. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1219. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1220. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1221. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1222. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1223. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1224. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1225. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1226. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1227. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1228. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1229. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1230. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1231. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1232. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1233. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1234. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1235. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  1236. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -34
  1237. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1238. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1239. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1240. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1241. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1242. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1243. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1244. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1245. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1246. package/dist/features/entity/metadata-task/utils/constants.d.ts +11 -3
  1247. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1248. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1249. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1250. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1251. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1252. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1253. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1254. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1255. package/dist/index.js +54 -53
  1256. package/dist/index.js.map +1 -1
  1257. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1258. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1259. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1260. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1261. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1262. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1263. package/dist/mocks/chat/mockChat.js.map +1 -1
  1264. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1265. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1266. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1267. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1268. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1269. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1270. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1271. package/dist/mocks/entity/index.js.map +1 -1
  1272. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1273. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1274. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1275. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1276. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1277. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1278. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1279. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1280. package/dist/mocks/entity/mockProject.js.map +1 -1
  1281. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1282. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1283. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1284. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1285. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1286. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1287. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1288. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1289. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1290. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1291. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1292. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1293. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1294. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1295. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1296. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1297. package/dist/mocks/mockSchema.js.map +1 -1
  1298. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1299. package/dist/mocks/mockShortIo.js.map +1 -1
  1300. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1301. package/dist/mocks/mockSubscription.js.map +1 -1
  1302. package/dist/mocks/mockWiki.js.map +1 -1
  1303. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1304. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1305. package/dist/mocks/mock_file_handle.js.map +1 -1
  1306. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1307. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1308. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1309. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1310. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1311. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1312. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1313. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1314. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1315. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1316. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1317. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1318. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1319. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1320. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1321. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1322. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1323. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1324. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1325. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1326. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1327. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1328. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1329. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1330. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1331. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1332. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1333. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1334. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1335. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1336. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1337. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1338. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1339. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1340. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1341. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1342. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1343. package/dist/mocks/msw/handlers.js.map +1 -1
  1344. package/dist/mocks/msw/server.d.ts +1 -1
  1345. package/dist/mocks/msw/server.d.ts.map +1 -1
  1346. package/dist/mocks/msw/server.js.map +1 -1
  1347. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1348. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1349. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1350. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1351. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1352. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1353. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1354. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1355. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1356. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1357. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1358. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1359. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1360. package/dist/mocks/query/syn16787123.js.map +1 -1
  1361. package/dist/mocks/query/syn17328596.js.map +1 -1
  1362. package/dist/mocks/query/syn51735464.js.map +1 -1
  1363. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1364. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1365. package/dist/mocks/team/mockTeam.js.map +1 -1
  1366. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1367. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1368. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1369. package/dist/ror-client/index.js.map +1 -1
  1370. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1371. package/dist/stories/ToastDemo.js.map +1 -1
  1372. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1373. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1374. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1375. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1376. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1377. package/dist/synapse-client/HttpClient.js.map +1 -1
  1378. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1379. package/dist/synapse-client/SynapseClient.js +61 -69
  1380. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1381. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1382. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1383. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1384. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1385. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1386. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1387. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1388. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1389. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1390. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1391. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1392. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1393. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1394. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1395. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1396. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1397. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1398. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1399. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1400. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1401. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1402. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1403. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1404. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1405. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1406. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1407. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1408. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1409. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1410. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1411. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1412. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1413. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1414. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1415. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1416. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1417. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1418. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1419. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1420. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1421. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1422. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1423. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1424. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1425. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1426. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1427. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1428. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1429. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1430. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1431. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1432. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1433. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1434. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1435. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1436. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1437. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1438. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1439. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1440. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1441. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1442. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1443. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1444. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1445. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1446. package/dist/synapse-queries/ror/index.js.map +1 -1
  1447. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1448. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1449. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1450. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1451. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1452. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1453. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1454. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1455. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1456. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1457. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1458. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1459. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1460. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1461. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1462. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1463. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1464. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1465. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1466. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1467. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1468. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1469. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1470. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1471. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1472. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1473. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1474. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1475. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1476. package/dist/testutils/LocationTracker.js.map +1 -1
  1477. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1478. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1479. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1480. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1481. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1482. package/dist/testutils/vitest.setup.js.map +1 -1
  1483. package/dist/theme/DefaultTheme.js.map +1 -1
  1484. package/dist/theme/ThemeProvider.js.map +1 -1
  1485. package/dist/theme/mergeTheme.js.map +1 -1
  1486. package/dist/theme/palette/Palettes.js.map +1 -1
  1487. package/dist/theme/spreadSx.js.map +1 -1
  1488. package/dist/theme/typography/Link.js.map +1 -1
  1489. package/dist/theme/typography/Typography.js.map +1 -1
  1490. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1491. package/dist/utils/APIConstants.js.map +1 -1
  1492. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1493. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1494. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1495. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1496. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1497. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1498. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1499. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1500. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1501. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1502. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1503. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1504. package/dist/utils/SynapseConstants.js.map +1 -1
  1505. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1506. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1507. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1508. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1509. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1510. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1511. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1512. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1513. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1514. package/dist/utils/context/SynapseContext.js.map +1 -1
  1515. package/dist/utils/featureflag/FeatureFlags.d.ts +2 -1
  1516. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  1517. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  1518. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1519. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1520. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1521. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1522. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1523. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1524. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1525. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1526. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1527. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1528. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1529. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1530. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1531. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1532. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1533. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1534. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1535. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1536. package/dist/utils/functions/StringUtils.js.map +1 -1
  1537. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1538. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1539. package/dist/utils/functions/colorPalette.js.map +1 -1
  1540. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1541. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1542. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1543. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1544. package/dist/utils/functions/getEndpoint.js +3 -3
  1545. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1546. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1547. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1548. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1549. package/dist/utils/functions/getUserData.js.map +1 -1
  1550. package/dist/utils/functions/queryUtils.js.map +1 -1
  1551. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1552. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1553. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1554. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1555. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1556. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1557. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1558. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1559. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1560. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1561. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1562. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1563. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1564. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1565. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1566. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1567. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1568. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1569. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1570. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1571. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1572. package/dist/utils/hooks/useListState.js.map +1 -1
  1573. package/dist/utils/hooks/useLogin.js.map +1 -1
  1574. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1575. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1576. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1577. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1578. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1579. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1580. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1581. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1582. package/dist/utils/hooks/useSet.js.map +1 -1
  1583. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1584. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1585. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1586. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1587. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1588. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1589. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1590. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1591. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1592. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1593. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1594. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1595. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1596. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1597. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1598. package/dist/utils/html/TargetEnum.js.map +1 -1
  1599. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1600. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1601. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1602. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1603. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1604. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1605. package/dist/utils/jsonschema/getType.js.map +1 -1
  1606. package/dist/utils/searchDefaults.js.map +1 -1
  1607. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1608. package/dist/utils/types/IsType.js.map +1 -1
  1609. package/package.json +67 -66
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelection.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/ColumnSelection.tsx"],"sourcesContent":["import { MenuItem } from '@mui/material'\nimport { SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { CSSProperties } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { ElementWithTooltip } from '../../widgets/ElementWithTooltip'\n\ntype ColumnSelectionProps = {\n headers?: SelectColumn[]\n isColumnSelected: string[]\n onChange?: () => void\n toggleColumnSelection: (name: string) => void\n darkTheme?: boolean\n}\n\nexport function ColumnSelection(props: ColumnSelectionProps) {\n const { headers, isColumnSelected, toggleColumnSelection, darkTheme } = props\n\n const { getColumnDisplayName } = useQueryVisualizationContext()\n return (\n <ElementWithTooltip\n tooltipText={'Show/Hide Columns'}\n icon={darkTheme ? 'columnsdark' : 'columns'}\n darkTheme={darkTheme}\n menuItems={headers?.map(header => {\n const { name } = header\n const isCurrentColumnSelected = isColumnSelected.includes(name)\n const iconStyle: CSSProperties = {\n width: '11px',\n marginRight: '10px',\n visibility: isCurrentColumnSelected ? undefined : 'hidden',\n }\n const maybeShowPrimaryColor = isCurrentColumnSelected\n ? 'SRC-primary-text-color'\n : ''\n return (\n <MenuItem onClick={() => toggleColumnSelection(name)} key={name}>\n <span className={maybeShowPrimaryColor} style={iconStyle}>\n <IconSvg icon=\"check\" sx={{ width: '14px' }} />\n </span>\n {getColumnDisplayName(name)}\n </MenuItem>\n )\n })}\n />\n )\n}\n"],"mappings":";;;;;;;AAeA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,YAAS,qBAAkB,0BAAuB,iBAAc,GAElE,EAAE,4BAAyB,GAA8B;AAC/D,QACE,kBAAC,GAAD;EACE,aAAa;EACb,MAAM,IAAY,gBAAgB;EACvB;EACX,WAAW,GAAS,KAAI,MAAU;GAChC,IAAM,EAAE,YAAS,GACX,IAA0B,EAAiB,SAAS,EAAK;AAS/D,UACE,kBAAC,GAAD;IAAU,eAAe,EAAsB,EAAK;cAApD,CACE,kBAAC,QAAD;KAAM,WALoB,IAC1B,2BACA;KAGwC,OAAO;MATjD,OAAO;MACP,aAAa;MACb,YAAY,IAA0B,KAAA,IAAY;MAOD;eAC7C,kBAAC,GAAD;MAAS,MAAK;MAAQ,IAAI,EAAE,OAAO,QAAQ;MAAI,CAAA;KAC1C,CAAA,EACN,EAAqB,EAAK,CAClB;MALgD,EAKhD;IAEb;EACF,CAAA"}
1
+ {"version":3,"file":"ColumnSelection.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/ColumnSelection.tsx"],"sourcesContent":["import { MenuItem } from '@mui/material'\nimport { SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { CSSProperties } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { ElementWithTooltip } from '../../widgets/ElementWithTooltip'\n\ntype ColumnSelectionProps = {\n headers?: SelectColumn[]\n isColumnSelected: string[]\n onChange?: () => void\n toggleColumnSelection: (name: string) => void\n darkTheme?: boolean\n}\n\nexport function ColumnSelection(props: ColumnSelectionProps) {\n const { headers, isColumnSelected, toggleColumnSelection, darkTheme } = props\n\n const { getColumnDisplayName } = useQueryVisualizationContext()\n return (\n <ElementWithTooltip\n tooltipText={'Show/Hide Columns'}\n icon={darkTheme ? 'columnsdark' : 'columns'}\n darkTheme={darkTheme}\n menuItems={headers?.map(header => {\n const { name } = header\n const isCurrentColumnSelected = isColumnSelected.includes(name)\n const iconStyle: CSSProperties = {\n width: '11px',\n marginRight: '10px',\n visibility: isCurrentColumnSelected ? undefined : 'hidden',\n }\n const maybeShowPrimaryColor = isCurrentColumnSelected\n ? 'SRC-primary-text-color'\n : ''\n return (\n <MenuItem onClick={() => toggleColumnSelection(name)} key={name}>\n <span className={maybeShowPrimaryColor} style={iconStyle}>\n <IconSvg icon=\"check\" sx={{ width: '14px' }} />\n </span>\n {getColumnDisplayName(name)}\n </MenuItem>\n )\n })}\n />\n )\n}\n"],"mappings":";;;;;;;AAeA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,YAAS,qBAAkB,0BAAuB,iBAAc,GAElE,EAAE,4BAAyB,EAA6B;CAC9D,OACE,kBAAC,GAAD;EACE,aAAa;EACb,MAAM,IAAY,gBAAgB;EACvB;EACX,WAAW,GAAS,KAAI,MAAU;GAChC,IAAM,EAAE,YAAS,GACX,IAA0B,EAAiB,SAAS,CAAI;GAS9D,OACE,kBAAC,GAAD;IAAU,eAAe,EAAsB,CAAI;cAAnD,CACE,kBAAC,QAAD;KAAM,WALoB,IAC1B,2BACA;KAGwC,OAAO;MATjD,OAAO;MACP,aAAa;MACb,YAAY,IAA0B,KAAA,IAAY;KAOD;eAC7C,kBAAC,GAAD;MAAS,MAAK;MAAQ,IAAI,EAAE,OAAO,OAAO;KAAI,CAAA;IAC1C,CAAA,GACL,EAAqB,CAAI,CAClB;MALiD,CAKjD;EAEd,CAAC;CACF,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadLoginModal.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/DownloadLoginModal.tsx"],"sourcesContent":["import { Link, Typography } from '@mui/material'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\n\nexport type DownloadLoginModalProps = {\n showModal?: boolean\n onHide: () => void\n}\n\nexport const CONFIRM_BUTTON_TEXT = 'Sign in'\n\nconst content = (\n <>\n <Typography\n variant=\"smallText1\"\n sx={{\n marginBottom: '10px',\n }}\n >\n Anyone can browse public content on the Synapse website, but in order to\n download and create content you will need to register for an account using\n an email address.\n </Typography>\n <Typography variant=\"smallText1\">\n To find out more see&nbsp;\n <Link\n href=\"https://help.synapse.org/docs/Managing-your-account.2055405596.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n User Accounts\n </Link>\n <span> and </span>\n <Link\n href=\"https://help.synapse.org/docs/Synapse-Governance.2004255211.html\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Governance Overview\n </Link>\n .\n </Typography>\n </>\n)\n\nexport function DownloadLoginModal(props: DownloadLoginModalProps) {\n return <SignInRequiredModal onHide={props.onHide} content={content} />\n}\n"],"mappings":";;;;AAQA,IAAa,IAAsB,WAE7B,IACJ,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;CACE,SAAQ;CACR,IAAI,EACF,cAAc,QACf;WACF;CAIY,CAAA,EACb,kBAAC,GAAD;CAAY,SAAQ;WAApB;EAAiC;EAE/B,kBAAC,GAAD;GACE,MAAK;GACL,QAAO;GACP,KAAI;aACL;GAEM,CAAA;EACP,kBAAC,QAAD,EAAA,UAAM,SAAY,CAAA;EAClB,kBAAC,GAAD;GACE,MAAK;GACL,KAAI;GACJ,QAAO;aACR;GAEM,CAAA;;EAEI;GACZ,EAAA,CAAA;AAGL,SAAgB,EAAmB,GAAgC;AACjE,QAAO,kBAAC,GAAD;EAAqB,QAAQ,EAAM;EAAiB;EAAW,CAAA"}
1
+ {"version":3,"file":"DownloadLoginModal.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/DownloadLoginModal.tsx"],"sourcesContent":["import { Link, Typography } from '@mui/material'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\n\nexport type DownloadLoginModalProps = {\n showModal?: boolean\n onHide: () => void\n}\n\nexport const CONFIRM_BUTTON_TEXT = 'Sign in'\n\nconst content = (\n <>\n <Typography\n variant=\"smallText1\"\n sx={{\n marginBottom: '10px',\n }}\n >\n Anyone can browse public content on the Synapse website, but in order to\n download and create content you will need to register for an account using\n an email address.\n </Typography>\n <Typography variant=\"smallText1\">\n To find out more see&nbsp;\n <Link\n href=\"https://help.synapse.org/docs/Managing-your-account.2055405596.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n User Accounts\n </Link>\n <span> and </span>\n <Link\n href=\"https://help.synapse.org/docs/Synapse-Governance.2004255211.html\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n Governance Overview\n </Link>\n .\n </Typography>\n </>\n)\n\nexport function DownloadLoginModal(props: DownloadLoginModalProps) {\n return <SignInRequiredModal onHide={props.onHide} content={content} />\n}\n"],"mappings":";;;;AAQA,IAAa,IAAsB,WAE7B,IACJ,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;CACE,SAAQ;CACR,IAAI,EACF,cAAc,OAChB;WACD;AAIW,CAAA,GACZ,kBAAC,GAAD;CAAY,SAAQ;WAApB;EAAiC;EAE/B,kBAAC,GAAD;GACE,MAAK;GACL,QAAO;GACP,KAAI;aACL;EAEK,CAAA;EACN,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;EACjB,kBAAC,GAAD;GACE,MAAK;GACL,KAAI;GACJ,QAAO;aACR;EAEK,CAAA;EAAC;CAEG;EACZ,EAAA,CAAA;AAGJ,SAAgB,EAAmB,GAAgC;CACjE,OAAO,kBAAC,GAAD;EAAqB,QAAQ,EAAM;EAAiB;CAAU,CAAA;AACvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadOptions.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/DownloadOptions.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { isDataset } from '@/utils/functions/EntityTypeUtils'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { MenuItem, Tooltip } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useMemo, useState } from 'react'\nimport ModalDownload from '../../ModalDownload/ModalDownload'\nimport ProgrammaticTableDownload from '../../ProgrammaticTableDownload/ProgrammaticTableDownload'\nimport { useQueryContext } from '../../QueryContext'\nimport {\n useHasSelectedRowsAtomValue,\n useSelectedRowsAtomValue,\n} from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { ElementWithTooltip } from '../../widgets/ElementWithTooltip'\nimport { getFileColumnModelId } from '../SynapseTableUtils'\nimport { getNumberOfResultsToAddToDownloadListCopy } from '../TopLevelControls/TopLevelControlsUtils'\nimport { DownloadLoginModal } from './DownloadLoginModal'\n\nexport type DownloadOptionsProps = {\n onDownloadFiles: () => void\n darkTheme?: boolean\n}\n\nexport function DownloadOptions(props: DownloadOptionsProps) {\n const { isAuthenticated } = useSynapseContext()\n const {\n entityId,\n versionNumber,\n getCurrentQueryRequest,\n hasResettableFilters,\n } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const selectedRows = useSelectedRowsAtomValue()\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const queryBundleRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n const [showLoginModal, setShowLoginModal] = useState(false)\n const [showExportMetadata, setShowExportMetadata] = useState(false)\n const [showProgrammaticOptions, setShowProgrammaticOptions] = useState(false)\n const { onDownloadFiles, darkTheme = true } = props\n\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n\n const showAddQueryToDownloadList = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n // SWC-5878 - Disable downloading a \"Draft\" dataset\n const disableDownload = entity && isDataset(entity) && entity.isLatestVersion\n\n const downloadMenuItems: ReactNode[] = useMemo(() => {\n const downloadMenuItems = []\n if (showAddQueryToDownloadList) {\n downloadMenuItems.push(\n <Tooltip\n key={'add-to-download-list'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be added to the Download Cart'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() =>\n isAuthenticated ? onDownloadFiles() : setShowLoginModal(true)\n }\n >\n {getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters,\n hasSelectedRows,\n selectedRows,\n queryMetadata?.queryCount,\n 'file',\n )}\n </MenuItem>\n </Tooltip>,\n )\n }\n downloadMenuItems.push(\n <MenuItem\n key={'export-table'}\n onClick={() => {\n setShowExportMetadata(true)\n }}\n >\n Export Table\n </MenuItem>,\n )\n downloadMenuItems.push(\n <Tooltip\n key={'programmatic-options'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be downloaded programmatically'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() => setShowProgrammaticOptions(true)}\n >\n Programmatic Options\n </MenuItem>\n </Tooltip>,\n )\n return downloadMenuItems\n }, [\n isAuthenticated,\n disableDownload,\n hasResettableFilters,\n hasSelectedRows,\n onDownloadFiles,\n queryMetadata?.queryCount,\n selectedRows,\n showAddQueryToDownloadList,\n ])\n\n return (\n <>\n <ElementWithTooltip\n tooltipText={'Download Options'}\n size=\"lg\"\n darkTheme={darkTheme}\n icon={'download'}\n menuItems={downloadMenuItems}\n />\n {showLoginModal && (\n <DownloadLoginModal\n showModal={showLoginModal}\n onHide={() => setShowLoginModal(false)}\n ></DownloadLoginModal>\n )}\n {\n // modal can render anywhere, this is not a particular location\n showExportMetadata && (\n <ModalDownload\n onClose={() => setShowExportMetadata(false)}\n queryBundleRequest={queryBundleRequest}\n />\n )\n }\n {showProgrammaticOptions && queryMetadata && (\n <ProgrammaticTableDownload\n onHide={() => setShowProgrammaticOptions(false)}\n queryBundleRequest={queryBundleRequest}\n ></ProgrammaticTableDownload>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,uBAAoB,GAAmB,EACzC,EACJ,aACA,kBACA,2BACA,4BACE,GAAiB,EACf,EAAE,MAAM,MAAW,EAAoB,GAAU,EAAc,EAC/D,EAAE,MAAM,MAAkB,GAAqB,EAE/C,IAAe,GAA0B,EACzC,IAAkB,GAA6B,EAE/C,IAAqB,QACnB,GAAwB,EAC9B,CAAC,EAAuB,CACzB,EAEK,CAAC,GAAgB,KAAqB,EAAS,GAAM,EACrD,CAAC,GAAoB,KAAyB,EAAS,GAAM,EAC7D,CAAC,GAAyB,KAA8B,EAAS,GAAM,EACvE,EAAE,oBAAiB,eAAY,OAAS,GAIxC,IAA6B,EACjC,GAHmB,EAAqB,GAAe,aAIvD,CACD,EAGK,IAAkB,KAAU,EAAU,EAAO,IAAI,EAAO;AAkF9D,QACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GACE,aAAa;GACb,MAAK;GACM;GACX,MAAM;GACN,WAvFiC,QAAc;IACnD,IAAM,IAAoB,EAAE;AAmE5B,WAlEI,KACF,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,sEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,QAAQ,GAAG,EAAE;MACvD,eACE,IAAkB,GAAiB,GAAG,EAAkB,GAAK;gBAG9D,EACC,GACA,GACA,GACA,GAAe,YACf,OACD;MACQ,CAAA;KACH,EA3BH,uBA2BG,CACX,EAEH,EAAkB,KAChB,kBAAC,GAAD;KAEE,eAAe;AACb,QAAsB,GAAK;;eAE9B;KAEU,EANJ,eAMI,CACZ,EACD,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,uEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,QAAQ,GAAG,EAAE;MACvD,eAAe,EAA2B,GAAK;gBAChD;MAEU,CAAA;KACH,EAnBH,uBAmBG,CACX,EACM;MACN;IACD;IACA;IACA;IACA;IACA;IACA,GAAe;IACf;IACA;IACD,CASgB;GACX,CAAA;EACD,KACC,kBAAC,GAAD;GACE,WAAW;GACX,cAAc,EAAkB,GAAM;GAClB,CAAA;EAItB,KACE,kBAAC,GAAD;GACE,eAAe,EAAsB,GAAM;GACvB;GACpB,CAAA;EAGL,KAA2B,KAC1B,kBAAC,GAAD;GACE,cAAc,EAA2B,GAAM;GAC3B;GACO,CAAA;EAE9B,EAAA,CAAA"}
1
+ {"version":3,"file":"DownloadOptions.js","names":[],"sources":["../../../../src/components/SynapseTable/table-top/DownloadOptions.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { isDataset } from '@/utils/functions/EntityTypeUtils'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport { MenuItem, Tooltip } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useMemo, useState } from 'react'\nimport ModalDownload from '../../ModalDownload/ModalDownload'\nimport ProgrammaticTableDownload from '../../ProgrammaticTableDownload/ProgrammaticTableDownload'\nimport { useQueryContext } from '../../QueryContext'\nimport {\n useHasSelectedRowsAtomValue,\n useSelectedRowsAtomValue,\n} from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { ElementWithTooltip } from '../../widgets/ElementWithTooltip'\nimport { getFileColumnModelId } from '../SynapseTableUtils'\nimport { getNumberOfResultsToAddToDownloadListCopy } from '../TopLevelControls/TopLevelControlsUtils'\nimport { DownloadLoginModal } from './DownloadLoginModal'\n\nexport type DownloadOptionsProps = {\n onDownloadFiles: () => void\n darkTheme?: boolean\n}\n\nexport function DownloadOptions(props: DownloadOptionsProps) {\n const { isAuthenticated } = useSynapseContext()\n const {\n entityId,\n versionNumber,\n getCurrentQueryRequest,\n hasResettableFilters,\n } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const selectedRows = useSelectedRowsAtomValue()\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const queryBundleRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n\n const [showLoginModal, setShowLoginModal] = useState(false)\n const [showExportMetadata, setShowExportMetadata] = useState(false)\n const [showProgrammaticOptions, setShowProgrammaticOptions] = useState(false)\n const { onDownloadFiles, darkTheme = true } = props\n\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n\n const showAddQueryToDownloadList = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n // SWC-5878 - Disable downloading a \"Draft\" dataset\n const disableDownload = entity && isDataset(entity) && entity.isLatestVersion\n\n const downloadMenuItems: ReactNode[] = useMemo(() => {\n const downloadMenuItems = []\n if (showAddQueryToDownloadList) {\n downloadMenuItems.push(\n <Tooltip\n key={'add-to-download-list'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be added to the Download Cart'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() =>\n isAuthenticated ? onDownloadFiles() : setShowLoginModal(true)\n }\n >\n {getNumberOfResultsToAddToDownloadListCopy(\n hasResettableFilters,\n hasSelectedRows,\n selectedRows,\n queryMetadata?.queryCount,\n 'file',\n )}\n </MenuItem>\n </Tooltip>,\n )\n }\n downloadMenuItems.push(\n <MenuItem\n key={'export-table'}\n onClick={() => {\n setShowExportMetadata(true)\n }}\n >\n Export Table\n </MenuItem>,\n )\n downloadMenuItems.push(\n <Tooltip\n key={'programmatic-options'}\n title={\n disableDownload\n ? 'A draft version of a dataset cannot be downloaded programmatically'\n : null\n }\n placement=\"left\"\n enterNextDelay={300}\n describeChild={true}\n >\n <MenuItem\n className={disableDownload ? 'ignoreLink' : undefined}\n disabled={disableDownload}\n // If disabled, add pointer-events-auto so the tooltip still works\n style={disableDownload ? { pointerEvents: 'auto' } : {}}\n onClick={() => setShowProgrammaticOptions(true)}\n >\n Programmatic Options\n </MenuItem>\n </Tooltip>,\n )\n return downloadMenuItems\n }, [\n isAuthenticated,\n disableDownload,\n hasResettableFilters,\n hasSelectedRows,\n onDownloadFiles,\n queryMetadata?.queryCount,\n selectedRows,\n showAddQueryToDownloadList,\n ])\n\n return (\n <>\n <ElementWithTooltip\n tooltipText={'Download Options'}\n size=\"lg\"\n darkTheme={darkTheme}\n icon={'download'}\n menuItems={downloadMenuItems}\n />\n {showLoginModal && (\n <DownloadLoginModal\n showModal={showLoginModal}\n onHide={() => setShowLoginModal(false)}\n ></DownloadLoginModal>\n )}\n {\n // modal can render anywhere, this is not a particular location\n showExportMetadata && (\n <ModalDownload\n onClose={() => setShowExportMetadata(false)}\n queryBundleRequest={queryBundleRequest}\n />\n )\n }\n {showProgrammaticOptions && queryMetadata && (\n <ProgrammaticTableDownload\n onHide={() => setShowProgrammaticOptions(false)}\n queryBundleRequest={queryBundleRequest}\n ></ProgrammaticTableDownload>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,EAAgB,GAA6B;CAC3D,IAAM,EAAE,uBAAoB,EAAkB,GACxC,EACJ,aACA,kBACA,2BACA,4BACE,EAAgB,GACd,EAAE,MAAM,MAAW,EAAoB,GAAU,CAAa,GAC9D,EAAE,MAAM,MAAkB,EAAoB,GAE9C,IAAe,EAAyB,GACxC,IAAkB,EAA4B,GAE9C,IAAqB,QACnB,EAAuB,GAC7B,CAAC,CAAsB,CACzB,GAEM,CAAC,GAAgB,KAAqB,EAAS,EAAK,GACpD,CAAC,GAAoB,KAAyB,EAAS,EAAK,GAC5D,CAAC,GAAyB,KAA8B,EAAS,EAAK,GACtE,EAAE,oBAAiB,eAAY,OAAS,GAIxC,IAA6B,EACjC,GAHmB,EAAqB,GAAe,YAIvD,CACF,GAGM,IAAkB,KAAU,EAAU,CAAM,KAAK,EAAO;CAkF9D,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GACE,aAAa;GACb,MAAK;GACM;GACX,MAAM;GACN,WAvFiC,QAAc;IACnD,IAAM,IAAoB,CAAC;IAmE3B,OAlEI,KACF,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,sEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,OAAO,IAAI,CAAC;MACtD,eACE,IAAkB,EAAgB,IAAI,EAAkB,EAAI;gBAG7D,EACC,GACA,GACA,GACA,GAAe,YACf,MACF;KACQ,CAAA;IACH,GA3BF,sBA2BE,CACX,GAEF,EAAkB,KAChB,kBAAC,GAAD;KAEE,eAAe;MACb,EAAsB,EAAI;KAC5B;eACD;IAES,GANH,cAMG,CACZ,GACA,EAAkB,KAChB,kBAAC,GAAD;KAEE,OACE,IACI,uEACA;KAEN,WAAU;KACV,gBAAgB;KAChB,eAAe;eAEf,kBAAC,GAAD;MACE,WAAW,IAAkB,eAAe,KAAA;MAC5C,UAAU;MAEV,OAAO,IAAkB,EAAE,eAAe,OAAO,IAAI,CAAC;MACtD,eAAe,EAA2B,EAAI;gBAC/C;KAES,CAAA;IACH,GAnBF,sBAmBE,CACX,GACO;GACT,GAAG;IACD;IACA;IACA;IACA;IACA;IACA,GAAe;IACf;IACA;GACF,CASiB;EACZ,CAAA;EACA,KACC,kBAAC,GAAD;GACE,WAAW;GACX,cAAc,EAAkB,EAAK;EAClB,CAAA;EAIrB,KACE,kBAAC,GAAD;GACE,eAAe,EAAsB,EAAK;GACtB;EACrB,CAAA;EAGJ,KAA2B,KAC1B,kBAAC,GAAD;GACE,cAAc,EAA2B,EAAK;GAC1B;EACM,CAAA;CAE9B,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePrefetchTableData.js","names":[],"sources":["../../../src/components/SynapseTable/usePrefetchTableData.ts"],"sourcesContent":["import {\n useGetEntity,\n useGetEntityHeaders,\n useGetFileBatch,\n useGetRestrictionInformationBatch,\n useGetUserGroupHeaders,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { getFieldIndex, getTypeIndices } from '@/utils/functions/queryUtils'\nimport { goToPage as transformQueryToGoToPage } from '@/utils/hooks/useImmutableTableQuery/TableQueryReducerActions'\nimport {\n ColumnTypeEnum,\n FileHandleAssociateType,\n FileHandleAssociation,\n QueryBundleRequest,\n ReferenceList,\n RestrictableObjectType,\n RowSet,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { cloneDeep } from 'lodash-es'\nimport { useCallback, useMemo } from 'react'\nimport { useQueryContext } from '../QueryContext'\nimport { getTableQueryUseQueryOptions } from '../QueryWrapper/TableQueryUseQueryOptions'\nimport { useGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport {\n isEntityViewOrDatasetOrCollection,\n isFileViewOrDataset,\n} from './SynapseTableUtils'\n\nfunction usePrefetchFileHandleData(rowSet: RowSet) {\n const { entityId, versionNumber } = useQueryContext()\n\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const fileHandleIdColumnIndices = getTypeIndices(\n ColumnTypeEnum.FILEHANDLEID,\n queryMetadata?.selectColumns,\n )\n\n let fileHandlesToPrefetch: FileHandleAssociation[] = []\n\n // Now add all IDs from the entity ID columns\n if (entity && rowSet && queryMetadata && queryMetadata.selectColumns) {\n fileHandlesToPrefetch = rowSet.rows.reduce(\n (prev: FileHandleAssociation[], curr) => {\n fileHandleIdColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value) {\n const selectColumn = queryMetadata?.selectColumns![index]\n if (\n isFileViewOrDataset(entity) &&\n selectColumn.name === 'dataFileHandleId'\n ) {\n // The association is the entity\n prev.push({\n fileHandleId: value,\n associateObjectId: String(curr.rowId),\n associateObjectType: FileHandleAssociateType.FileEntity,\n })\n } else {\n // The association is the table entity\n prev.push({\n fileHandleId: value,\n associateObjectId: entity.id!,\n associateObjectType: FileHandleAssociateType.TableEntity,\n })\n }\n }\n })\n return prev\n },\n\n fileHandlesToPrefetch,\n )\n }\n\n return useGetFileBatch(\n {\n requestedFiles: fileHandlesToPrefetch,\n includeFileHandles: true,\n includePreSignedURLs: false,\n includePreviewPreSignedURLs: false,\n },\n {\n enabled: fileHandlesToPrefetch.length > 0,\n },\n )\n}\n\nfunction useGetEntitiesInTable(rowSet: RowSet) {\n const { entityId, versionNumber } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n let entitiesInTable: ReferenceList = []\n\n // If this is a file view/dataset, collect all the row IDs; they correspond to entities that we'll end up fetching\n if (entity && isEntityViewOrDatasetOrCollection(entity)) {\n entitiesInTable = rowSet.rows.reduce((prev: ReferenceList, curr) => {\n const { rowId, versionNumber } = curr\n if (rowId) {\n prev.push({\n targetId: `syn${rowId}`,\n targetVersionNumber: versionNumber,\n })\n }\n return prev\n }, entitiesInTable)\n }\n\n let entityIdColumnIndices = getTypeIndices(\n ColumnTypeEnum.ENTITYID,\n queryMetadata?.selectColumns,\n )\n\n if (entity && isEntityViewOrDatasetOrCollection(entity)) {\n // If this is a view/dataset, we don't need to fetch the entities in the entity ID column\n // Collecting the row IDs in the last step was sufficient\n const idColumnIndex = getFieldIndex('id', queryMetadata)\n entityIdColumnIndices = entityIdColumnIndices.filter(\n index => index !== idColumnIndex,\n )\n }\n\n const entityIdListColumnIndices = getTypeIndices(\n ColumnTypeEnum.ENTITYID_LIST,\n queryMetadata?.selectColumns,\n )\n\n entitiesInTable = rowSet.rows.reduce((prev: ReferenceList, curr) => {\n // Get all IDs from the entity ID columns\n entityIdColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (\n value &&\n !prev.find(e => e.targetId === value && e.targetVersionNumber == null)\n ) {\n prev.push({ targetId: value })\n }\n })\n // Get all IDs from the entity ID list columns\n entityIdListColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value) {\n const ids = JSON.parse(value) as string[]\n ids.forEach(id => {\n if (\n id &&\n !prev.find(e => e.targetId === id && e.targetVersionNumber == null)\n ) {\n prev.push({ targetId: id })\n }\n })\n }\n })\n\n return prev\n }, entitiesInTable)\n\n return entitiesInTable\n}\n\nfunction usePrefetchEntityData(entitiesToPrefetch: ReferenceList) {\n return useGetEntityHeaders(entitiesToPrefetch, {\n enabled: entitiesToPrefetch.length > 0,\n })\n}\n\nfunction usePrefetchUserGroupHeaderData(rowSet: RowSet) {\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const userIdColumnIndices = getTypeIndices(\n ColumnTypeEnum.USERID,\n queryMetadata?.selectColumns,\n )\n\n const userIdListColumnIndices = getTypeIndices(\n ColumnTypeEnum.USERID_LIST,\n queryMetadata?.selectColumns,\n )\n\n const principalIdsToPrefetch: string[] = rowSet.rows.reduce(\n (prev: string[], curr) => {\n // Add all IDs from the USERID columns\n userIdColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value && !prev.includes(value)) {\n prev.push(value)\n }\n })\n // Add all IDs from the USERID_LIST columns\n userIdListColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value) {\n const userIds = JSON.parse(value) as number[]\n userIds.forEach(userId => {\n if (!prev.includes(String(userId))) {\n prev.push(String(userId))\n }\n })\n }\n })\n return prev\n },\n [],\n )\n\n return useGetUserGroupHeaders(principalIdsToPrefetch, {\n enabled: principalIdsToPrefetch.length > 0,\n })\n}\n\nfunction usePrefetchEntityRestrictionData(entitiesToPrefetch: ReferenceList) {\n // This information only varies by entity ID, not version number. The restriction information is the same for all versions.\n const uniqueEntityIds = useMemo(() => {\n const entityIds = entitiesToPrefetch.map(e => e.targetId)\n // Dedupe the list in case there were duplicates, e.g. there were multiple versions of the same entity\n return Array.from(new Set(entityIds))\n }, [entitiesToPrefetch])\n\n return useGetRestrictionInformationBatch(\n {\n objectIds: uniqueEntityIds,\n restrictableObjectType: RestrictableObjectType.ENTITY,\n },\n {\n enabled: entitiesToPrefetch.length > 0,\n },\n )\n}\n\n/**\n * Uses react-query to prefetch data rendered by SynapseTable. Each SynapseTableCell instance load data to render rich\n * content (e.g. entity data) for the cell based on its column type. This hook uses react-query hooks that will\n * fetch and de-normalize batch requests, so when the SynapseTableCell component renders, the data is already loaded\n * in the cache. In practice, this avoids Synapse backend throttling and 'waterfall' content rendering.\n */\nexport function usePrefetchResourcesInTable(rowSet: RowSet): {\n dataHasBeenPrefetched: boolean\n} {\n const entitiesToPrefetch = useGetEntitiesInTable(rowSet)\n const { isLoading: isLoadingEntityData } =\n usePrefetchEntityData(entitiesToPrefetch)\n const { isLoading: isLoadingEntityRestrictionData } =\n usePrefetchEntityRestrictionData(entitiesToPrefetch)\n const { isLoading: isLoadingFileHandleData } =\n usePrefetchFileHandleData(rowSet)\n const { isLoading: isLoadingUserGroupData } =\n usePrefetchUserGroupHeaderData(rowSet)\n\n return {\n dataHasBeenPrefetched:\n !isLoadingEntityData &&\n !isLoadingEntityRestrictionData &&\n !isLoadingFileHandleData &&\n !isLoadingUserGroupData,\n }\n}\n\n/**\n * Uses react-query to prefetch an entire page of row data.\n *\n * @returns A function that will prefetch the data for a given page number.\n */\nexport function usePrefetchTableRows(): (pageNumber: number) => Promise<void> {\n const { keyFactory, accessToken } = useSynapseContext()\n const { currentQueryRequest, getRowDataQueryOptionsForPage } =\n useQueryContext()\n const queryClient = useQueryClient()\n\n // locked column does not matter for row data\n const lockedColumn = undefined\n return useCallback(\n (pageNumber: number) => {\n let rowDataQueryOptions\n if (getRowDataQueryOptionsForPage) {\n // Use the context-provided factory (e.g. SearchQueryWrapper) to avoid calling\n // the standard table query API with a synthetic entity ID.\n rowDataQueryOptions = getRowDataQueryOptionsForPage(pageNumber)\n } else {\n // Standard table query path\n const queryWithUpdatedPage = transformQueryToGoToPage(\n { type: 'goToPage', pageNumber },\n cloneDeep(currentQueryRequest) as QueryBundleRequest,\n )\n rowDataQueryOptions = getTableQueryUseQueryOptions(\n queryWithUpdatedPage,\n lockedColumn,\n keyFactory,\n accessToken,\n ).rowDataQueryOptions\n }\n\n // Finally, prefetch the data\n return queryClient.prefetchQuery(rowDataQueryOptions)\n },\n [\n accessToken,\n currentQueryRequest,\n getRowDataQueryOptionsForPage,\n keyFactory,\n lockedColumn,\n queryClient,\n ],\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"usePrefetchTableData.js","names":[],"sources":["../../../src/components/SynapseTable/usePrefetchTableData.ts"],"sourcesContent":["import {\n useGetEntity,\n useGetEntityHeaders,\n useGetFileBatch,\n useGetRestrictionInformationBatch,\n useGetUserGroupHeaders,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { getFieldIndex, getTypeIndices } from '@/utils/functions/queryUtils'\nimport { goToPage as transformQueryToGoToPage } from '@/utils/hooks/useImmutableTableQuery/TableQueryReducerActions'\nimport {\n ColumnTypeEnum,\n FileHandleAssociateType,\n FileHandleAssociation,\n QueryBundleRequest,\n ReferenceList,\n RestrictableObjectType,\n RowSet,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { cloneDeep } from 'lodash-es'\nimport { useCallback, useMemo } from 'react'\nimport { useQueryContext } from '../QueryContext'\nimport { getTableQueryUseQueryOptions } from '../QueryWrapper/TableQueryUseQueryOptions'\nimport { useGetQueryMetadata } from '../QueryWrapper/useGetQueryMetadata'\nimport {\n isEntityViewOrDatasetOrCollection,\n isFileViewOrDataset,\n} from './SynapseTableUtils'\n\nfunction usePrefetchFileHandleData(rowSet: RowSet) {\n const { entityId, versionNumber } = useQueryContext()\n\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const fileHandleIdColumnIndices = getTypeIndices(\n ColumnTypeEnum.FILEHANDLEID,\n queryMetadata?.selectColumns,\n )\n\n let fileHandlesToPrefetch: FileHandleAssociation[] = []\n\n // Now add all IDs from the entity ID columns\n if (entity && rowSet && queryMetadata && queryMetadata.selectColumns) {\n fileHandlesToPrefetch = rowSet.rows.reduce(\n (prev: FileHandleAssociation[], curr) => {\n fileHandleIdColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value) {\n const selectColumn = queryMetadata?.selectColumns![index]\n if (\n isFileViewOrDataset(entity) &&\n selectColumn.name === 'dataFileHandleId'\n ) {\n // The association is the entity\n prev.push({\n fileHandleId: value,\n associateObjectId: String(curr.rowId),\n associateObjectType: FileHandleAssociateType.FileEntity,\n })\n } else {\n // The association is the table entity\n prev.push({\n fileHandleId: value,\n associateObjectId: entity.id!,\n associateObjectType: FileHandleAssociateType.TableEntity,\n })\n }\n }\n })\n return prev\n },\n\n fileHandlesToPrefetch,\n )\n }\n\n return useGetFileBatch(\n {\n requestedFiles: fileHandlesToPrefetch,\n includeFileHandles: true,\n includePreSignedURLs: false,\n includePreviewPreSignedURLs: false,\n },\n {\n enabled: fileHandlesToPrefetch.length > 0,\n },\n )\n}\n\nfunction useGetEntitiesInTable(rowSet: RowSet) {\n const { entityId, versionNumber } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n\n let entitiesInTable: ReferenceList = []\n\n // If this is a file view/dataset, collect all the row IDs; they correspond to entities that we'll end up fetching\n if (entity && isEntityViewOrDatasetOrCollection(entity)) {\n entitiesInTable = rowSet.rows.reduce((prev: ReferenceList, curr) => {\n const { rowId, versionNumber } = curr\n if (rowId) {\n prev.push({\n targetId: `syn${rowId}`,\n targetVersionNumber: versionNumber,\n })\n }\n return prev\n }, entitiesInTable)\n }\n\n let entityIdColumnIndices = getTypeIndices(\n ColumnTypeEnum.ENTITYID,\n queryMetadata?.selectColumns,\n )\n\n if (entity && isEntityViewOrDatasetOrCollection(entity)) {\n // If this is a view/dataset, we don't need to fetch the entities in the entity ID column\n // Collecting the row IDs in the last step was sufficient\n const idColumnIndex = getFieldIndex('id', queryMetadata)\n entityIdColumnIndices = entityIdColumnIndices.filter(\n index => index !== idColumnIndex,\n )\n }\n\n const entityIdListColumnIndices = getTypeIndices(\n ColumnTypeEnum.ENTITYID_LIST,\n queryMetadata?.selectColumns,\n )\n\n entitiesInTable = rowSet.rows.reduce((prev: ReferenceList, curr) => {\n // Get all IDs from the entity ID columns\n entityIdColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (\n value &&\n !prev.find(e => e.targetId === value && e.targetVersionNumber == null)\n ) {\n prev.push({ targetId: value })\n }\n })\n // Get all IDs from the entity ID list columns\n entityIdListColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value) {\n const ids = JSON.parse(value) as string[]\n ids.forEach(id => {\n if (\n id &&\n !prev.find(e => e.targetId === id && e.targetVersionNumber == null)\n ) {\n prev.push({ targetId: id })\n }\n })\n }\n })\n\n return prev\n }, entitiesInTable)\n\n return entitiesInTable\n}\n\nfunction usePrefetchEntityData(entitiesToPrefetch: ReferenceList) {\n return useGetEntityHeaders(entitiesToPrefetch, {\n enabled: entitiesToPrefetch.length > 0,\n })\n}\n\nfunction usePrefetchUserGroupHeaderData(rowSet: RowSet) {\n const { data: queryMetadata } = useGetQueryMetadata()\n\n const userIdColumnIndices = getTypeIndices(\n ColumnTypeEnum.USERID,\n queryMetadata?.selectColumns,\n )\n\n const userIdListColumnIndices = getTypeIndices(\n ColumnTypeEnum.USERID_LIST,\n queryMetadata?.selectColumns,\n )\n\n const principalIdsToPrefetch: string[] = rowSet.rows.reduce(\n (prev: string[], curr) => {\n // Add all IDs from the USERID columns\n userIdColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value && !prev.includes(value)) {\n prev.push(value)\n }\n })\n // Add all IDs from the USERID_LIST columns\n userIdListColumnIndices.forEach(index => {\n const value = curr.values[index]\n if (value) {\n const userIds = JSON.parse(value) as number[]\n userIds.forEach(userId => {\n if (!prev.includes(String(userId))) {\n prev.push(String(userId))\n }\n })\n }\n })\n return prev\n },\n [],\n )\n\n return useGetUserGroupHeaders(principalIdsToPrefetch, {\n enabled: principalIdsToPrefetch.length > 0,\n })\n}\n\nfunction usePrefetchEntityRestrictionData(entitiesToPrefetch: ReferenceList) {\n // This information only varies by entity ID, not version number. The restriction information is the same for all versions.\n const uniqueEntityIds = useMemo(() => {\n const entityIds = entitiesToPrefetch.map(e => e.targetId)\n // Dedupe the list in case there were duplicates, e.g. there were multiple versions of the same entity\n return Array.from(new Set(entityIds))\n }, [entitiesToPrefetch])\n\n return useGetRestrictionInformationBatch(\n {\n objectIds: uniqueEntityIds,\n restrictableObjectType: RestrictableObjectType.ENTITY,\n },\n {\n enabled: entitiesToPrefetch.length > 0,\n },\n )\n}\n\n/**\n * Uses react-query to prefetch data rendered by SynapseTable. Each SynapseTableCell instance load data to render rich\n * content (e.g. entity data) for the cell based on its column type. This hook uses react-query hooks that will\n * fetch and de-normalize batch requests, so when the SynapseTableCell component renders, the data is already loaded\n * in the cache. In practice, this avoids Synapse backend throttling and 'waterfall' content rendering.\n */\nexport function usePrefetchResourcesInTable(rowSet: RowSet): {\n dataHasBeenPrefetched: boolean\n} {\n const entitiesToPrefetch = useGetEntitiesInTable(rowSet)\n const { isLoading: isLoadingEntityData } =\n usePrefetchEntityData(entitiesToPrefetch)\n const { isLoading: isLoadingEntityRestrictionData } =\n usePrefetchEntityRestrictionData(entitiesToPrefetch)\n const { isLoading: isLoadingFileHandleData } =\n usePrefetchFileHandleData(rowSet)\n const { isLoading: isLoadingUserGroupData } =\n usePrefetchUserGroupHeaderData(rowSet)\n\n return {\n dataHasBeenPrefetched:\n !isLoadingEntityData &&\n !isLoadingEntityRestrictionData &&\n !isLoadingFileHandleData &&\n !isLoadingUserGroupData,\n }\n}\n\n/**\n * Uses react-query to prefetch an entire page of row data.\n *\n * @returns A function that will prefetch the data for a given page number.\n */\nexport function usePrefetchTableRows(): (pageNumber: number) => Promise<void> {\n const { keyFactory, accessToken } = useSynapseContext()\n const { currentQueryRequest, getRowDataQueryOptionsForPage } =\n useQueryContext()\n const queryClient = useQueryClient()\n\n // locked column does not matter for row data\n const lockedColumn = undefined\n return useCallback(\n (pageNumber: number) => {\n let rowDataQueryOptions\n if (getRowDataQueryOptionsForPage) {\n // Use the context-provided factory (e.g. SearchQueryWrapper) to avoid calling\n // the standard table query API with a synthetic entity ID.\n rowDataQueryOptions = getRowDataQueryOptionsForPage(pageNumber)\n } else {\n // Standard table query path\n const queryWithUpdatedPage = transformQueryToGoToPage(\n { type: 'goToPage', pageNumber },\n cloneDeep(currentQueryRequest) as QueryBundleRequest,\n )\n rowDataQueryOptions = getTableQueryUseQueryOptions(\n queryWithUpdatedPage,\n lockedColumn,\n keyFactory,\n accessToken,\n ).rowDataQueryOptions\n }\n\n // Finally, prefetch the data\n return queryClient.prefetchQuery(rowDataQueryOptions)\n },\n [\n accessToken,\n currentQueryRequest,\n getRowDataQueryOptionsForPage,\n keyFactory,\n lockedColumn,\n queryClient,\n ],\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableSort.js","names":[],"sources":["../../../src/components/SynapseTable/useTableSort.tsx"],"sourcesContent":["import { useQueryContext } from '../QueryContext'\nimport { useMemo } from 'react'\nimport { SortingState, Updater } from '@tanstack/react-table'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport { SortItem } from '@sage-bionetworks/synapse-types'\nimport { ReadonlyDeep } from 'type-fest'\n\nfunction transformQueryWrapperSortToTanStackSort(\n sort: ReadonlyDeep<SortItem[]>,\n): SortingState {\n return sort.map(sortItem => ({\n id: sortItem.column,\n desc: sortItem.direction === 'DESC',\n }))\n}\n\nfunction transformTanStackSortToQueryWrapperSort(\n sortingState: SortingState,\n): SortItem[] {\n return sortingState.map(columnSort => ({\n column: columnSort.id,\n direction: columnSort.desc ? 'DESC' : 'ASC',\n }))\n}\n\n// Transforms TanStack table sort into QueryWrapper-compatible sort\nexport function useTableSort() {\n const queryContext = useQueryContext()\n const sort = useDeepCompareMemoize(queryContext.nextQueryRequest?.query?.sort)\n\n const sortingState = useMemo(() => {\n return sort ? transformQueryWrapperSortToTanStackSort(sort) : []\n }, [sort])\n\n const setSortingState = (\n updaterOrValue: SortingState | Updater<SortingState>,\n ) => {\n let newSortingState: SortingState | undefined = undefined\n if (typeof updaterOrValue === 'function') {\n newSortingState = updaterOrValue(sortingState)\n } else {\n newSortingState = updaterOrValue\n }\n\n const newSort = transformTanStackSortToQueryWrapperSort(newSortingState)\n queryContext.executeQueryRequest(qr => ({\n ...qr,\n query: {\n ...qr.query,\n sort: newSort,\n offset: 0,\n },\n }))\n }\n\n return {\n sort: sortingState,\n setSort: setSortingState,\n }\n}\n"],"mappings":";;;;;AAOA,SAAS,EACP,GACc;AACd,QAAO,EAAK,KAAI,OAAa;EAC3B,IAAI,EAAS;EACb,MAAM,EAAS,cAAc;EAC9B,EAAE;;AAGL,SAAS,EACP,GACY;AACZ,QAAO,EAAa,KAAI,OAAe;EACrC,QAAQ,EAAW;EACnB,WAAW,EAAW,OAAO,SAAS;EACvC,EAAE;;AAIL,SAAgB,IAAe;CAC7B,IAAM,IAAe,GAAiB,EAChC,IAAO,EAAsB,EAAa,kBAAkB,OAAO,KAAK,EAExE,IAAe,QACZ,IAAO,EAAwC,EAAK,GAAG,EAAE,EAC/D,CAAC,EAAK,CAAC;AAuBV,QAAO;EACL,MAAM;EACN,UAtBA,MACG;GACH,IAAI;AACJ,GAGE,IAHE,OAAO,KAAmB,aACV,EAAe,EAAa,GAE5B;GAGpB,IAAM,IAAU,EAAwC,EAAgB;AACxE,KAAa,qBAAoB,OAAO;IACtC,GAAG;IACH,OAAO;KACL,GAAG,EAAG;KACN,MAAM;KACN,QAAQ;KACT;IACF,EAAE;;EAMJ"}
1
+ {"version":3,"file":"useTableSort.js","names":[],"sources":["../../../src/components/SynapseTable/useTableSort.tsx"],"sourcesContent":["import { useQueryContext } from '../QueryContext'\nimport { useMemo } from 'react'\nimport { SortingState, Updater } from '@tanstack/react-table'\nimport { useDeepCompareMemoize } from 'use-deep-compare-effect'\nimport { SortItem } from '@sage-bionetworks/synapse-types'\nimport { ReadonlyDeep } from 'type-fest'\n\nfunction transformQueryWrapperSortToTanStackSort(\n sort: ReadonlyDeep<SortItem[]>,\n): SortingState {\n return sort.map(sortItem => ({\n id: sortItem.column,\n desc: sortItem.direction === 'DESC',\n }))\n}\n\nfunction transformTanStackSortToQueryWrapperSort(\n sortingState: SortingState,\n): SortItem[] {\n return sortingState.map(columnSort => ({\n column: columnSort.id,\n direction: columnSort.desc ? 'DESC' : 'ASC',\n }))\n}\n\n// Transforms TanStack table sort into QueryWrapper-compatible sort\nexport function useTableSort() {\n const queryContext = useQueryContext()\n const sort = useDeepCompareMemoize(queryContext.nextQueryRequest?.query?.sort)\n\n const sortingState = useMemo(() => {\n return sort ? transformQueryWrapperSortToTanStackSort(sort) : []\n }, [sort])\n\n const setSortingState = (\n updaterOrValue: SortingState | Updater<SortingState>,\n ) => {\n let newSortingState: SortingState | undefined = undefined\n if (typeof updaterOrValue === 'function') {\n newSortingState = updaterOrValue(sortingState)\n } else {\n newSortingState = updaterOrValue\n }\n\n const newSort = transformTanStackSortToQueryWrapperSort(newSortingState)\n queryContext.executeQueryRequest(qr => ({\n ...qr,\n query: {\n ...qr.query,\n sort: newSort,\n offset: 0,\n },\n }))\n }\n\n return {\n sort: sortingState,\n setSort: setSortingState,\n }\n}\n"],"mappings":";;;;;AAOA,SAAS,EACP,GACc;CACd,OAAO,EAAK,KAAI,OAAa;EAC3B,IAAI,EAAS;EACb,MAAM,EAAS,cAAc;CAC/B,EAAE;AACJ;AAEA,SAAS,EACP,GACY;CACZ,OAAO,EAAa,KAAI,OAAe;EACrC,QAAQ,EAAW;EACnB,WAAW,EAAW,OAAO,SAAS;CACxC,EAAE;AACJ;AAGA,SAAgB,IAAe;CAC7B,IAAM,IAAe,EAAgB,GAC/B,IAAO,EAAsB,EAAa,kBAAkB,OAAO,IAAI,GAEvE,IAAe,QACZ,IAAO,EAAwC,CAAI,IAAI,CAAC,GAC9D,CAAC,CAAI,CAAC;CAuBT,OAAO;EACL,MAAM;EACN,UAtBA,MACG;GACH,IAAI;GACJ,AAGE,IAHE,OAAO,KAAmB,aACV,EAAe,CAAY,IAE3B;GAGpB,IAAM,IAAU,EAAwC,CAAe;GACvE,EAAa,qBAAoB,OAAO;IACtC,GAAG;IACH,OAAO;KACL,GAAG,EAAG;KACN,MAAM;KACN,QAAQ;IACV;GACF,EAAE;EACJ;CAKA;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SystemUseNotification.js","names":[],"sources":["../../../src/components/SystemUseNotification/SystemUseNotification.tsx"],"sourcesContent":["import { Box, Typography } from '@mui/material'\n\n/**\n * FISMA SAR V1-AC-8 System Use Notification, see https://sagebionetworks.jira.com/browse/SWC-6430\n */\nexport function SystemUseNotification() {\n return (\n <Box\n sx={{\n color: 'grey.700',\n maxHeight: { xs: '170px', md: '110px' },\n overflow: 'auto',\n margin: '20px 0px',\n }}\n >\n <Typography\n variant=\"smallText1\"\n sx={{\n fontWeight: 700,\n marginBottom: '5px',\n }}\n >\n System Use Notice\n </Typography>\n <Typography variant=\"smallText1\" sx={{ lineHeight: '21px' }}>\n Sage Bionetworks actively monitors this system and activity to maintain\n system security and availability and to ensure appropriate and\n legitimate usage. Any individual who intentionally accesses a computer\n or system without authorization, and who alters, damages, makes\n unauthorized modifications to, or destroys information, or exceeds\n authorized access, is in violation of applicable federal laws, Executive\n Orders, directives, policies, regulations, standards, and guidance. Any\n evidence of possible violations of proper use or applicable laws found\n as a result of this monitoring may be turned over to law enforcement.\n Any individual found to be in violation of the system&apos;s proper use\n rules or law could be punished with loss of system access, fines, and/or\n imprisonment. By proceeding, you hereby acknowledge your agreement with\n these terms and the system&apos;s rules of behavior and consent to such\n monitoring and information retrieval for law enforcement and other\n official purposes.\n </Typography>\n </Box>\n )\n}\n\nexport default SystemUseNotification\n"],"mappings":";;;AAKA,SAAgB,IAAwB;AACtC,QACE,kBAAC,GAAD;EACE,IAAI;GACF,OAAO;GACP,WAAW;IAAE,IAAI;IAAS,IAAI;IAAS;GACvC,UAAU;GACV,QAAQ;GACT;YANH,CAQE,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,cAAc;IACf;aACF;GAEY,CAAA,EACb,kBAAC,GAAD;GAAY,SAAQ;GAAa,IAAI,EAAE,YAAY,QAAQ;aAAE;GAgBhD,CAAA,CACT"}
1
+ {"version":3,"file":"SystemUseNotification.js","names":[],"sources":["../../../src/components/SystemUseNotification/SystemUseNotification.tsx"],"sourcesContent":["import { Box, Typography } from '@mui/material'\n\n/**\n * FISMA SAR V1-AC-8 System Use Notification, see https://sagebionetworks.jira.com/browse/SWC-6430\n */\nexport function SystemUseNotification() {\n return (\n <Box\n sx={{\n color: 'grey.700',\n maxHeight: { xs: '170px', md: '110px' },\n overflow: 'auto',\n margin: '20px 0px',\n }}\n >\n <Typography\n variant=\"smallText1\"\n sx={{\n fontWeight: 700,\n marginBottom: '5px',\n }}\n >\n System Use Notice\n </Typography>\n <Typography variant=\"smallText1\" sx={{ lineHeight: '21px' }}>\n Sage Bionetworks actively monitors this system and activity to maintain\n system security and availability and to ensure appropriate and\n legitimate usage. Any individual who intentionally accesses a computer\n or system without authorization, and who alters, damages, makes\n unauthorized modifications to, or destroys information, or exceeds\n authorized access, is in violation of applicable federal laws, Executive\n Orders, directives, policies, regulations, standards, and guidance. Any\n evidence of possible violations of proper use or applicable laws found\n as a result of this monitoring may be turned over to law enforcement.\n Any individual found to be in violation of the system&apos;s proper use\n rules or law could be punished with loss of system access, fines, and/or\n imprisonment. By proceeding, you hereby acknowledge your agreement with\n these terms and the system&apos;s rules of behavior and consent to such\n monitoring and information retrieval for law enforcement and other\n official purposes.\n </Typography>\n </Box>\n )\n}\n\nexport default SystemUseNotification\n"],"mappings":";;;AAKA,SAAgB,IAAwB;CACtC,OACE,kBAAC,GAAD;EACE,IAAI;GACF,OAAO;GACP,WAAW;IAAE,IAAI;IAAS,IAAI;GAAQ;GACtC,UAAU;GACV,QAAQ;EACV;YANF,CAQE,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,cAAc;GAChB;aACD;EAEW,CAAA,GACZ,kBAAC,GAAD;GAAY,SAAQ;GAAa,IAAI,EAAE,YAAY,OAAO;aAAG;EAgBjD,CAAA,CACT;;AAET"}
@@ -1,17 +1,17 @@
1
1
  import { convertToConcreteEntityType as e } from "../../utils/functions/EntityTypeUtils.js";
2
2
  import { canHaveDefault as t, canHaveMaxListLength as n, canHaveRestrictedValues as ee, canHaveSize as r, configureFacetsForType as te, getAllowedColumnTypes as i, getColumnTypeFriendlyName as a, getFacetTypeFriendlyName as o, getMaxSizeForType as s } from "./TableColumnSchemaEditorUtils.js";
3
- import { tableColumnSchemaFormDataAtom as c } from "./TableColumnSchemaFormReducer.js";
4
- import l from "./ColumnModelFormFields/MultiValueField.js";
5
- import u from "./ColumnModelFormFields/DefaultValueField.js";
6
- import { FieldWithRecommendedMinimum as d } from "./ColumnModelFormFields/FieldWithRecommendedMinimum.js";
3
+ import c from "./ColumnModelFormFields/MultiValueField.js";
4
+ import l from "./ColumnModelFormFields/DefaultValueField.js";
5
+ import { FieldWithRecommendedMinimum as u } from "./ColumnModelFormFields/FieldWithRecommendedMinimum.js";
6
+ import { tableColumnSchemaFormDataAtom as d } from "./TableColumnSchemaFormReducer.js";
7
7
  import { HIERARCHY_VERTICAL_LINE_COMPONENT as f } from "./TableColumnSchemaForm.js";
8
8
  import { useMemo as p } from "react";
9
9
  import { isArray as m, isEmpty as h, isEqual as g } from "lodash-es";
10
10
  import { Box as _, Checkbox as v, FormControl as y, Link as b, MenuItem as x, Select as S, TextField as C, Tooltip as w } from "@mui/material";
11
11
  import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
12
12
  import { VIEW_CONCRETE_TYPE_VALUES as O } from "@sage-bionetworks/synapse-types";
13
- import { useAtomValue as k, useSetAtom as A } from "jotai";
14
- import { InfoTwoTone as j } from "@mui/icons-material";
13
+ import { InfoTwoTone as k } from "@mui/icons-material";
14
+ import { useAtomValue as A, useSetAtom as j } from "jotai";
15
15
  import M from "@mui/material/FormHelperText";
16
16
  import { selectAtom as ne } from "jotai/utils";
17
17
  //#region src/components/TableColumnSchemaEditor/ColumnModelForm.tsx
@@ -38,7 +38,7 @@ function I(e) {
38
38
  }
39
39
  var L = !0;
40
40
  function R(R) {
41
- let { columnModelIndex: z, jsonSubColumnIndex: B, entityType: V, isDefaultColumn: H, disabled: U = !1, validationErrors: W = null, defaultAnnotationModel: G, originalColumnModel: K } = R, q = B != null, J = A(c), Y = O.includes(e(V)), X = k(p(() => ne(c, (e) => q ? e[z].jsonSubColumns[B] : e[z], g), [
41
+ let { columnModelIndex: z, jsonSubColumnIndex: B, entityType: V, isDefaultColumn: H, disabled: U = !1, validationErrors: W = null, defaultAnnotationModel: G, originalColumnModel: K } = R, q = B != null, J = j(d), Y = O.includes(e(V)), X = A(p(() => ne(d, (e) => q ? e[z].jsonSubColumns[B] : e[z], g), [
42
42
  z,
43
43
  q,
44
44
  B
@@ -144,7 +144,7 @@ function R(R) {
144
144
  }),
145
145
  /* @__PURE__ */ E(_, {
146
146
  sx: { my: H ? "auto" : void 0 },
147
- children: H ? X.maximumSize ?? "" : /* @__PURE__ */ E(d, {
147
+ children: H ? X.maximumSize ?? "" : /* @__PURE__ */ E(u, {
148
148
  value: X.maximumSize ?? "",
149
149
  originalValue: K?.maximumSize,
150
150
  recommendedValue: G?.maximumSize,
@@ -177,7 +177,7 @@ function R(R) {
177
177
  }),
178
178
  /* @__PURE__ */ E(_, {
179
179
  sx: { my: H ? "auto" : void 0 },
180
- children: H ? X.maximumListLength ?? "" : /* @__PURE__ */ E(d, {
180
+ children: H ? X.maximumListLength ?? "" : /* @__PURE__ */ E(u, {
181
181
  value: X.maximumListLength ?? "",
182
182
  originalValue: K?.maximumListLength,
183
183
  recommendedValue: G?.maximumListLength,
@@ -206,7 +206,7 @@ function R(R) {
206
206
  }),
207
207
  /* @__PURE__ */ E(_, {
208
208
  sx: { my: H ? "auto" : void 0 },
209
- children: H ? P(X?.defaultValue, X.columnType) : /* @__PURE__ */ E(u, {
209
+ children: H ? P(X?.defaultValue, X.columnType) : /* @__PURE__ */ E(l, {
210
210
  TextFieldProps: {
211
211
  InputProps: {
212
212
  disableInjectingGlobalStyles: L,
@@ -240,7 +240,7 @@ function R(R) {
240
240
  disabled: U || !t(X.columnType, Y, q)
241
241
  })
242
242
  }),
243
- /* @__PURE__ */ E(_, { children: /* @__PURE__ */ E(l, {
243
+ /* @__PURE__ */ E(_, { children: /* @__PURE__ */ E(c, {
244
244
  value: X?.enumValues,
245
245
  onChange: (e) => {
246
246
  J({
@@ -378,7 +378,7 @@ function R(R) {
378
378
  href: "https://dev.mysql.com/doc/refman/8.0/en/json.html#json-path-syntax",
379
379
  children: "Please use a valid JSON Path selector, following this format."
380
380
  }) }), /* @__PURE__ */ E("p", { children: "This field is for linking the sub-column facet to the corresponding location in the JSON data, so that it can be used as facet filter. The correct selector will point to the key referenced in the sub-column JSON Path." })] }),
381
- children: /* @__PURE__ */ E(j, { sx: { color: "grey.700" } })
381
+ children: /* @__PURE__ */ E(k, { sx: { color: "grey.700" } })
382
382
  }),
383
383
  slotProps: { input: { "aria-label": "JSON Path" } }
384
384
  } },
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnModelForm.js","names":[],"sources":["../../../src/components/TableColumnSchemaEditor/ColumnModelForm.tsx"],"sourcesContent":["import { convertToConcreteEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Box,\n Checkbox,\n FormControl,\n Link,\n MenuItem,\n Select,\n SxProps,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n FacetType,\n VIEW_CONCRETE_TYPE_VALUES,\n FacetColumnSortConfig,\n} from '@sage-bionetworks/synapse-types'\nimport { useAtomValue, useSetAtom } from 'jotai'\nimport { selectAtom } from 'jotai/utils'\nimport { isArray, isEmpty, isEqual } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { ZodIssue } from 'zod'\nimport DefaultValueField from './ColumnModelFormFields/DefaultValueField'\nimport { FieldWithRecommendedMinimum } from './ColumnModelFormFields/FieldWithRecommendedMinimum'\nimport MultiValueField from './ColumnModelFormFields/MultiValueField'\nimport {\n canHaveDefault,\n canHaveMaxListLength,\n canHaveRestrictedValues,\n canHaveSize,\n configureFacetsForType,\n getAllowedColumnTypes,\n getColumnTypeFriendlyName,\n getFacetTypeFriendlyName,\n getMaxSizeForType,\n} from './TableColumnSchemaEditorUtils'\nimport { HIERARCHY_VERTICAL_LINE_COMPONENT } from './TableColumnSchemaForm'\nimport { tableColumnSchemaFormDataAtom } from './TableColumnSchemaFormReducer'\nimport {\n ColumnModelFormData,\n JsonSubColumnModelFormData,\n} from './Validators/ColumnModelValidator'\n\ntype ColumnModelFormProps = {\n entityType: EntityType\n columnModelIndex: number\n jsonSubColumnIndex?: number\n /* Default Columns are read-only, except for the facetType */\n isDefaultColumn: boolean\n disabled?: boolean\n /* Can be used to override the schema used for validating ColumnModels */\n validationErrors?: ZodIssue[] | null\n defaultAnnotationModel?: ColumnModel | null\n originalColumnModel?: ColumnModel | null\n}\nconst jsonSubColumnFieldSx: SxProps = {\n height: '28px',\n fontSize: '12px',\n}\nconst topLevelColumnModelFieldSx: SxProps = {\n height: '38px',\n fontSize: '14px',\n}\n\nfunction renderDefaultValue(\n defaultValue: string | unknown[] | undefined,\n _columnType: ColumnTypeEnum,\n): string {\n if (defaultValue == null) {\n return ''\n }\n\n if (isArray(defaultValue)) {\n return defaultValue.map(String).join(', ')\n }\n return defaultValue\n}\n\n// Helper type for the combined sort configuration value\ntype FacetSortValue =\n | 'FREQUENCY_DESC'\n | 'FREQUENCY_ASC'\n | 'VALUE_DESC'\n | 'VALUE_ASC'\n | ''\n\n/**\n * Converts a FacetColumnSortConfig object to a single string value for the select dropdown\n */\nfunction facetSortConfigToValue(\n config: FacetColumnSortConfig | undefined,\n): FacetSortValue {\n if (!config || (!config.property && !config.direction)) {\n return ''\n }\n const property = config.property || 'FREQUENCY'\n const direction = config.direction || 'DESC'\n return `${property}_${direction}` as FacetSortValue\n}\n\n/**\n * Converts a select dropdown value to a FacetColumnSortConfig object\n */\nfunction valueToFacetSortConfig(\n value: FacetSortValue,\n): FacetColumnSortConfig | undefined {\n if (!value) {\n return undefined\n }\n const [property, direction] = value.split('_') as [\n 'FREQUENCY' | 'VALUE',\n 'DESC' | 'ASC',\n ]\n return { property, direction }\n}\n\n/*\n * Disable immediate MUI/Emotion style injection because it causes performance issues when adding many columns at once.\n * This can be a common occurence when adding annotation columns\n */\nconst DISABLE_INJECTING_GLOBAL_STYLES_VALUE = true\n\nexport default function ColumnModelForm(props: ColumnModelFormProps) {\n const {\n columnModelIndex,\n jsonSubColumnIndex,\n entityType,\n isDefaultColumn,\n disabled = false,\n validationErrors = null,\n defaultAnnotationModel,\n originalColumnModel,\n } = props\n const isJsonSubColumn = jsonSubColumnIndex != undefined\n const dispatch = useSetAtom(tableColumnSchemaFormDataAtom)\n const isView = (VIEW_CONCRETE_TYPE_VALUES as readonly string[]).includes(\n convertToConcreteEntityType(entityType),\n )\n\n const columnModelAtom = useMemo(\n () =>\n selectAtom(\n tableColumnSchemaFormDataAtom,\n v =>\n isJsonSubColumn\n ? v[columnModelIndex].jsonSubColumns![jsonSubColumnIndex]\n : v[columnModelIndex],\n isEqual,\n ),\n [columnModelIndex, isJsonSubColumn, jsonSubColumnIndex],\n )\n\n const columnModel = useAtomValue(columnModelAtom)\n\n const allowedColumnTypes = useMemo(\n () => getAllowedColumnTypes(isView, isJsonSubColumn),\n [isView, isJsonSubColumn],\n )\n\n const allowedFacetTypes = useMemo(\n () => configureFacetsForType(columnModel.columnType, isJsonSubColumn),\n [columnModel.columnType, isJsonSubColumn],\n )\n const fieldSx: SxProps = useMemo(\n () => (isJsonSubColumn ? jsonSubColumnFieldSx : topLevelColumnModelFieldSx),\n [isJsonSubColumn],\n )\n\n const errorsByField = useMemo(() => {\n if (validationErrors && isArray(validationErrors)) {\n const errorsByField: Record<string, string> = {}\n validationErrors.forEach(e => {\n if (e.path) {\n errorsByField[e.path[e.path.length - 1]] = e.message\n }\n })\n return errorsByField\n }\n return {}\n }, [validationErrors])\n\n return (\n <>\n <Box\n sx={{\n display: 'grid',\n gridColumn: '1 / span 11',\n gridTemplateColumns: 'subgrid',\n }}\n >\n {isJsonSubColumn && (\n <Box sx={{ gridColumn: '1 / span 1' }}>\n {HIERARCHY_VERTICAL_LINE_COMPONENT}\n </Box>\n )}\n <Box\n data-testid={`ColumnModelForm`}\n sx={{\n display: 'flex',\n alignItems: 'start',\n gridColumn: isJsonSubColumn ? '2 / span 1' : ' 1 / span 1',\n // Checkbox is offset from top; vertical centering causes issues when validation errors are displayed\n mt: isJsonSubColumn ? '0px' : '5px',\n }}\n >\n <Checkbox\n checked={columnModel.isSelected}\n inputProps={{ 'aria-label': 'Select' }}\n disabled={disabled}\n onChange={() => {\n dispatch({\n type: 'toggleSelect',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n })\n }}\n />\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n gridColumn: isJsonSubColumn\n ? /* If this is a JSON Subcolumn, we reduce the width of this grid column to create space to render the visual hierarchical line */\n '3 / span 1'\n : /* Otherwise, span across both grid columns */\n '2 / span 2',\n }}\n >\n {isDefaultColumn ? (\n columnModel.name\n ) : (\n <TextField\n value={columnModel.name}\n placeholder={isJsonSubColumn ? 'Facet name' : 'Column name'}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n name: e.target.value,\n },\n })\n }}\n disabled={disabled}\n fullWidth\n error={!!errorsByField['name']}\n helperText={errorsByField['name']}\n slotProps={{\n input: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n sx: fieldSx,\n slotProps: {\n input: {\n 'aria-label': 'Name',\n },\n },\n },\n }}\n />\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n getColumnTypeFriendlyName(columnModel.columnType)\n ) : (\n <FormControl fullWidth>\n <Select\n label=\"Column Type\"\n value={columnModel.columnType}\n onChange={e => {\n dispatch({\n type: 'changeColumnModelType',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n newColumnType: e.target.value as ColumnTypeEnum,\n })\n }}\n slotProps={{\n input: {\n 'aria-label': 'Column Type',\n },\n }}\n sx={fieldSx}\n disabled={disabled}\n error={!!errorsByField['columnType']}\n >\n {allowedColumnTypes.map(value => {\n return (\n <MenuItem value={value} key={value}>\n {getColumnTypeFriendlyName(value)}\n </MenuItem>\n )\n })}\n </Select>\n {errorsByField['columnType'] && (\n <FormHelperText color={'error.main'}>\n {errorsByField['columnType']}\n </FormHelperText>\n )}\n </FormControl>\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n ((columnModel as ColumnModelFormData).maximumSize ?? '')\n ) : (\n <FieldWithRecommendedMinimum\n value={(columnModel as ColumnModelFormData).maximumSize ?? ''}\n originalValue={originalColumnModel?.maximumSize}\n recommendedValue={defaultAnnotationModel?.maximumSize}\n columnType={columnModel.columnType as ColumnTypeEnum}\n disabled={disabled || !canHaveSize(columnModel.columnType)}\n InputProps={{\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n\n slotProps: {\n input: {\n 'aria-label': 'Maximum Size',\n min: 1,\n max: canHaveSize(columnModel.columnType)\n ? getMaxSizeForType(columnModel.columnType)\n : undefined,\n },\n },\n sx: fieldSx,\n }}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n maximumSize: e.target.value,\n },\n })\n }}\n fullWidth\n error={!!errorsByField['maximumSize']}\n helperText={errorsByField['maximumSize']}\n />\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n ((columnModel as ColumnModelFormData).maximumListLength ?? '')\n ) : (\n <FieldWithRecommendedMinimum\n value={\n (columnModel as ColumnModelFormData).maximumListLength ?? ''\n }\n originalValue={originalColumnModel?.maximumListLength}\n recommendedValue={defaultAnnotationModel?.maximumListLength}\n columnType={columnModel.columnType as ColumnTypeEnum}\n disabled={\n disabled || !canHaveMaxListLength(columnModel.columnType)\n }\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n maximumListLength: e.target.value,\n },\n })\n }}\n InputProps={{\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n slotProps: {\n input: {\n 'aria-label': 'Maximum List Length',\n },\n },\n sx: fieldSx,\n }}\n fullWidth\n error={!!errorsByField['maximumListLength']}\n helperText={errorsByField['maximumListLength']}\n />\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n renderDefaultValue(\n (columnModel as ColumnModelFormData)?.defaultValue,\n columnModel.columnType as ColumnTypeEnum,\n )\n ) : (\n <DefaultValueField\n TextFieldProps={{\n InputProps: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n slotProps: {\n input: {\n 'aria-label': 'Default Value',\n },\n },\n sx: fieldSx,\n },\n fullWidth: true,\n error: !!errorsByField['defaultValue'],\n helperText: errorsByField['defaultValue'],\n }}\n SelectProps={{\n label: 'Default Value',\n sx: fieldSx,\n slotProps: {\n input: {\n 'aria-label': 'Default Value',\n },\n },\n error: !!errorsByField['defaultValue'],\n }}\n selectFormHelperText={errorsByField['defaultValue']}\n columnModel={columnModel as ColumnModelFormData}\n value={(columnModel as ColumnModelFormData)?.defaultValue || null}\n onChange={value => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n defaultValue: value || undefined,\n },\n })\n }}\n disabled={\n disabled ||\n !canHaveDefault(columnModel.columnType, isView, isJsonSubColumn)\n }\n />\n )}\n </Box>\n <Box>\n <MultiValueField\n value={(columnModel as ColumnModelFormData)?.enumValues}\n onChange={newValue => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n enumValues:\n newValue == null || isEmpty(newValue)\n ? undefined\n : newValue,\n },\n })\n }}\n columnType={columnModel.columnType as ColumnTypeEnum}\n TextFieldProps={{\n fullWidth: true,\n disabled:\n disabled ||\n !canHaveRestrictedValues(\n columnModel.columnType,\n isJsonSubColumn,\n ),\n InputProps: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n // Is readOnly because edits are made with the JSONArrayEditorModal\n readOnly: true,\n sx: fieldSx,\n slotProps: {\n input: {\n 'aria-label': 'Restrict Values',\n },\n },\n },\n error: !!errorsByField['enumValues'],\n helperText: errorsByField['enumValues'],\n }}\n />\n </Box>\n <Box>\n <FormControl fullWidth>\n <Select\n label=\"Facet Type\"\n value={columnModel.facetType || ''}\n disabled={disabled || allowedFacetTypes === null}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n facetType: e.target.value as FacetType,\n },\n })\n }}\n sx={fieldSx}\n slotProps={{\n input: {\n 'aria-label': 'Facet Type',\n },\n }}\n error={!!errorsByField['facetType']}\n >\n {(allowedFacetTypes ?? []).map((value, index) => {\n return (\n <MenuItem value={value} key={index}>\n {value === undefined ? '' : getFacetTypeFriendlyName(value)}\n </MenuItem>\n )\n })}\n </Select>\n {errorsByField['facetType'] && (\n <FormHelperText color={'error.main'}>\n {errorsByField['facetType']}\n </FormHelperText>\n )}\n </FormControl>\n </Box>\n <Box>\n <FormControl fullWidth>\n <Select\n label=\"Sort Facet Values\"\n value={facetSortConfigToValue(\n 'facetSortConfig' in columnModel\n ? columnModel.facetSortConfig\n : undefined,\n )}\n disabled={disabled || columnModel.facetType !== 'enumeration'}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n facetSortConfig: valueToFacetSortConfig(\n e.target.value as FacetSortValue,\n ),\n },\n })\n }}\n sx={fieldSx}\n slotProps={{\n input: {\n 'aria-label': 'Sort Facet Values',\n },\n }}\n error={!!errorsByField['facetSortConfig']}\n >\n <MenuItem value=\"FREQUENCY_DESC\">Frequency Descending</MenuItem>\n <MenuItem value=\"FREQUENCY_ASC\">Frequency Ascending</MenuItem>\n <MenuItem value=\"VALUE_DESC\">Value Descending</MenuItem>\n <MenuItem value=\"VALUE_ASC\">Value Ascending</MenuItem>\n </Select>\n {errorsByField['facetSortConfig'] && (\n <FormHelperText color={'error.main'}>\n {errorsByField['facetSortConfig']}\n </FormHelperText>\n )}\n </FormControl>\n </Box>\n </Box>\n {isJsonSubColumn && (\n <Box\n sx={{\n display: 'grid',\n gridColumn: '1 / span 11',\n gridTemplateColumns: 'subgrid',\n }}\n >\n <Box\n sx={{\n gridColumn: '1 / span 1',\n }}\n >\n {HIERARCHY_VERTICAL_LINE_COMPONENT}\n </Box>\n <Box></Box>\n <Box\n sx={{\n gridColumn: '3 / span 7',\n }}\n >\n <TextField\n placeholder={'JSON Path'}\n value={(columnModel as JsonSubColumnModelFormData).jsonPath}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...(columnModel as JsonSubColumnModelFormData),\n jsonPath: e.target.value,\n },\n })\n }}\n disabled={disabled}\n fullWidth\n slotProps={{\n input: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n sx: fieldSx,\n endAdornment: (\n <Tooltip\n title={\n <>\n <p>\n <Link\n href={\n 'https://dev.mysql.com/doc/refman/8.0/en/json.html#json-path-syntax'\n }\n >\n Please use a valid JSON Path selector, following\n this format.\n </Link>\n </p>\n <p>\n This field is for linking the sub-column facet to\n the corresponding location in the JSON data, so that\n it can be used as facet filter. The correct selector\n will point to the key referenced in the sub-column\n JSON Path.\n </p>\n </>\n }\n >\n <InfoTwoTone sx={{ color: 'grey.700' }} />\n </Tooltip>\n ),\n slotProps: {\n input: { 'aria-label': 'JSON Path' },\n },\n },\n }}\n error={!!errorsByField['jsonPath']}\n helperText={errorsByField['jsonPath']}\n />\n </Box>\n </Box>\n )}\n </>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnModelForm.js","names":[],"sources":["../../../src/components/TableColumnSchemaEditor/ColumnModelForm.tsx"],"sourcesContent":["import { convertToConcreteEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Box,\n Checkbox,\n FormControl,\n Link,\n MenuItem,\n Select,\n SxProps,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n ColumnModel,\n ColumnTypeEnum,\n FacetType,\n VIEW_CONCRETE_TYPE_VALUES,\n FacetColumnSortConfig,\n} from '@sage-bionetworks/synapse-types'\nimport { useAtomValue, useSetAtom } from 'jotai'\nimport { selectAtom } from 'jotai/utils'\nimport { isArray, isEmpty, isEqual } from 'lodash-es'\nimport { useMemo } from 'react'\nimport { ZodIssue } from 'zod'\nimport DefaultValueField from './ColumnModelFormFields/DefaultValueField'\nimport { FieldWithRecommendedMinimum } from './ColumnModelFormFields/FieldWithRecommendedMinimum'\nimport MultiValueField from './ColumnModelFormFields/MultiValueField'\nimport {\n canHaveDefault,\n canHaveMaxListLength,\n canHaveRestrictedValues,\n canHaveSize,\n configureFacetsForType,\n getAllowedColumnTypes,\n getColumnTypeFriendlyName,\n getFacetTypeFriendlyName,\n getMaxSizeForType,\n} from './TableColumnSchemaEditorUtils'\nimport { HIERARCHY_VERTICAL_LINE_COMPONENT } from './TableColumnSchemaForm'\nimport { tableColumnSchemaFormDataAtom } from './TableColumnSchemaFormReducer'\nimport {\n ColumnModelFormData,\n JsonSubColumnModelFormData,\n} from './Validators/ColumnModelValidator'\n\ntype ColumnModelFormProps = {\n entityType: EntityType\n columnModelIndex: number\n jsonSubColumnIndex?: number\n /* Default Columns are read-only, except for the facetType */\n isDefaultColumn: boolean\n disabled?: boolean\n /* Can be used to override the schema used for validating ColumnModels */\n validationErrors?: ZodIssue[] | null\n defaultAnnotationModel?: ColumnModel | null\n originalColumnModel?: ColumnModel | null\n}\nconst jsonSubColumnFieldSx: SxProps = {\n height: '28px',\n fontSize: '12px',\n}\nconst topLevelColumnModelFieldSx: SxProps = {\n height: '38px',\n fontSize: '14px',\n}\n\nfunction renderDefaultValue(\n defaultValue: string | unknown[] | undefined,\n _columnType: ColumnTypeEnum,\n): string {\n if (defaultValue == null) {\n return ''\n }\n\n if (isArray(defaultValue)) {\n return defaultValue.map(String).join(', ')\n }\n return defaultValue\n}\n\n// Helper type for the combined sort configuration value\ntype FacetSortValue =\n | 'FREQUENCY_DESC'\n | 'FREQUENCY_ASC'\n | 'VALUE_DESC'\n | 'VALUE_ASC'\n | ''\n\n/**\n * Converts a FacetColumnSortConfig object to a single string value for the select dropdown\n */\nfunction facetSortConfigToValue(\n config: FacetColumnSortConfig | undefined,\n): FacetSortValue {\n if (!config || (!config.property && !config.direction)) {\n return ''\n }\n const property = config.property || 'FREQUENCY'\n const direction = config.direction || 'DESC'\n return `${property}_${direction}` as FacetSortValue\n}\n\n/**\n * Converts a select dropdown value to a FacetColumnSortConfig object\n */\nfunction valueToFacetSortConfig(\n value: FacetSortValue,\n): FacetColumnSortConfig | undefined {\n if (!value) {\n return undefined\n }\n const [property, direction] = value.split('_') as [\n 'FREQUENCY' | 'VALUE',\n 'DESC' | 'ASC',\n ]\n return { property, direction }\n}\n\n/*\n * Disable immediate MUI/Emotion style injection because it causes performance issues when adding many columns at once.\n * This can be a common occurence when adding annotation columns\n */\nconst DISABLE_INJECTING_GLOBAL_STYLES_VALUE = true\n\nexport default function ColumnModelForm(props: ColumnModelFormProps) {\n const {\n columnModelIndex,\n jsonSubColumnIndex,\n entityType,\n isDefaultColumn,\n disabled = false,\n validationErrors = null,\n defaultAnnotationModel,\n originalColumnModel,\n } = props\n const isJsonSubColumn = jsonSubColumnIndex != undefined\n const dispatch = useSetAtom(tableColumnSchemaFormDataAtom)\n const isView = (VIEW_CONCRETE_TYPE_VALUES as readonly string[]).includes(\n convertToConcreteEntityType(entityType),\n )\n\n const columnModelAtom = useMemo(\n () =>\n selectAtom(\n tableColumnSchemaFormDataAtom,\n v =>\n isJsonSubColumn\n ? v[columnModelIndex].jsonSubColumns![jsonSubColumnIndex]\n : v[columnModelIndex],\n isEqual,\n ),\n [columnModelIndex, isJsonSubColumn, jsonSubColumnIndex],\n )\n\n const columnModel = useAtomValue(columnModelAtom)\n\n const allowedColumnTypes = useMemo(\n () => getAllowedColumnTypes(isView, isJsonSubColumn),\n [isView, isJsonSubColumn],\n )\n\n const allowedFacetTypes = useMemo(\n () => configureFacetsForType(columnModel.columnType, isJsonSubColumn),\n [columnModel.columnType, isJsonSubColumn],\n )\n const fieldSx: SxProps = useMemo(\n () => (isJsonSubColumn ? jsonSubColumnFieldSx : topLevelColumnModelFieldSx),\n [isJsonSubColumn],\n )\n\n const errorsByField = useMemo(() => {\n if (validationErrors && isArray(validationErrors)) {\n const errorsByField: Record<string, string> = {}\n validationErrors.forEach(e => {\n if (e.path) {\n errorsByField[e.path[e.path.length - 1]] = e.message\n }\n })\n return errorsByField\n }\n return {}\n }, [validationErrors])\n\n return (\n <>\n <Box\n sx={{\n display: 'grid',\n gridColumn: '1 / span 11',\n gridTemplateColumns: 'subgrid',\n }}\n >\n {isJsonSubColumn && (\n <Box sx={{ gridColumn: '1 / span 1' }}>\n {HIERARCHY_VERTICAL_LINE_COMPONENT}\n </Box>\n )}\n <Box\n data-testid={`ColumnModelForm`}\n sx={{\n display: 'flex',\n alignItems: 'start',\n gridColumn: isJsonSubColumn ? '2 / span 1' : ' 1 / span 1',\n // Checkbox is offset from top; vertical centering causes issues when validation errors are displayed\n mt: isJsonSubColumn ? '0px' : '5px',\n }}\n >\n <Checkbox\n checked={columnModel.isSelected}\n inputProps={{ 'aria-label': 'Select' }}\n disabled={disabled}\n onChange={() => {\n dispatch({\n type: 'toggleSelect',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n })\n }}\n />\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n gridColumn: isJsonSubColumn\n ? /* If this is a JSON Subcolumn, we reduce the width of this grid column to create space to render the visual hierarchical line */\n '3 / span 1'\n : /* Otherwise, span across both grid columns */\n '2 / span 2',\n }}\n >\n {isDefaultColumn ? (\n columnModel.name\n ) : (\n <TextField\n value={columnModel.name}\n placeholder={isJsonSubColumn ? 'Facet name' : 'Column name'}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n name: e.target.value,\n },\n })\n }}\n disabled={disabled}\n fullWidth\n error={!!errorsByField['name']}\n helperText={errorsByField['name']}\n slotProps={{\n input: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n sx: fieldSx,\n slotProps: {\n input: {\n 'aria-label': 'Name',\n },\n },\n },\n }}\n />\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n getColumnTypeFriendlyName(columnModel.columnType)\n ) : (\n <FormControl fullWidth>\n <Select\n label=\"Column Type\"\n value={columnModel.columnType}\n onChange={e => {\n dispatch({\n type: 'changeColumnModelType',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n newColumnType: e.target.value as ColumnTypeEnum,\n })\n }}\n slotProps={{\n input: {\n 'aria-label': 'Column Type',\n },\n }}\n sx={fieldSx}\n disabled={disabled}\n error={!!errorsByField['columnType']}\n >\n {allowedColumnTypes.map(value => {\n return (\n <MenuItem value={value} key={value}>\n {getColumnTypeFriendlyName(value)}\n </MenuItem>\n )\n })}\n </Select>\n {errorsByField['columnType'] && (\n <FormHelperText color={'error.main'}>\n {errorsByField['columnType']}\n </FormHelperText>\n )}\n </FormControl>\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n ((columnModel as ColumnModelFormData).maximumSize ?? '')\n ) : (\n <FieldWithRecommendedMinimum\n value={(columnModel as ColumnModelFormData).maximumSize ?? ''}\n originalValue={originalColumnModel?.maximumSize}\n recommendedValue={defaultAnnotationModel?.maximumSize}\n columnType={columnModel.columnType as ColumnTypeEnum}\n disabled={disabled || !canHaveSize(columnModel.columnType)}\n InputProps={{\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n\n slotProps: {\n input: {\n 'aria-label': 'Maximum Size',\n min: 1,\n max: canHaveSize(columnModel.columnType)\n ? getMaxSizeForType(columnModel.columnType)\n : undefined,\n },\n },\n sx: fieldSx,\n }}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n maximumSize: e.target.value,\n },\n })\n }}\n fullWidth\n error={!!errorsByField['maximumSize']}\n helperText={errorsByField['maximumSize']}\n />\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n ((columnModel as ColumnModelFormData).maximumListLength ?? '')\n ) : (\n <FieldWithRecommendedMinimum\n value={\n (columnModel as ColumnModelFormData).maximumListLength ?? ''\n }\n originalValue={originalColumnModel?.maximumListLength}\n recommendedValue={defaultAnnotationModel?.maximumListLength}\n columnType={columnModel.columnType as ColumnTypeEnum}\n disabled={\n disabled || !canHaveMaxListLength(columnModel.columnType)\n }\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n maximumListLength: e.target.value,\n },\n })\n }}\n InputProps={{\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n slotProps: {\n input: {\n 'aria-label': 'Maximum List Length',\n },\n },\n sx: fieldSx,\n }}\n fullWidth\n error={!!errorsByField['maximumListLength']}\n helperText={errorsByField['maximumListLength']}\n />\n )}\n </Box>\n <Box\n sx={{\n my: isDefaultColumn ? 'auto' : undefined,\n }}\n >\n {isDefaultColumn ? (\n renderDefaultValue(\n (columnModel as ColumnModelFormData)?.defaultValue,\n columnModel.columnType as ColumnTypeEnum,\n )\n ) : (\n <DefaultValueField\n TextFieldProps={{\n InputProps: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n slotProps: {\n input: {\n 'aria-label': 'Default Value',\n },\n },\n sx: fieldSx,\n },\n fullWidth: true,\n error: !!errorsByField['defaultValue'],\n helperText: errorsByField['defaultValue'],\n }}\n SelectProps={{\n label: 'Default Value',\n sx: fieldSx,\n slotProps: {\n input: {\n 'aria-label': 'Default Value',\n },\n },\n error: !!errorsByField['defaultValue'],\n }}\n selectFormHelperText={errorsByField['defaultValue']}\n columnModel={columnModel as ColumnModelFormData}\n value={(columnModel as ColumnModelFormData)?.defaultValue || null}\n onChange={value => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n defaultValue: value || undefined,\n },\n })\n }}\n disabled={\n disabled ||\n !canHaveDefault(columnModel.columnType, isView, isJsonSubColumn)\n }\n />\n )}\n </Box>\n <Box>\n <MultiValueField\n value={(columnModel as ColumnModelFormData)?.enumValues}\n onChange={newValue => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n enumValues:\n newValue == null || isEmpty(newValue)\n ? undefined\n : newValue,\n },\n })\n }}\n columnType={columnModel.columnType as ColumnTypeEnum}\n TextFieldProps={{\n fullWidth: true,\n disabled:\n disabled ||\n !canHaveRestrictedValues(\n columnModel.columnType,\n isJsonSubColumn,\n ),\n InputProps: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n // Is readOnly because edits are made with the JSONArrayEditorModal\n readOnly: true,\n sx: fieldSx,\n slotProps: {\n input: {\n 'aria-label': 'Restrict Values',\n },\n },\n },\n error: !!errorsByField['enumValues'],\n helperText: errorsByField['enumValues'],\n }}\n />\n </Box>\n <Box>\n <FormControl fullWidth>\n <Select\n label=\"Facet Type\"\n value={columnModel.facetType || ''}\n disabled={disabled || allowedFacetTypes === null}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n facetType: e.target.value as FacetType,\n },\n })\n }}\n sx={fieldSx}\n slotProps={{\n input: {\n 'aria-label': 'Facet Type',\n },\n }}\n error={!!errorsByField['facetType']}\n >\n {(allowedFacetTypes ?? []).map((value, index) => {\n return (\n <MenuItem value={value} key={index}>\n {value === undefined ? '' : getFacetTypeFriendlyName(value)}\n </MenuItem>\n )\n })}\n </Select>\n {errorsByField['facetType'] && (\n <FormHelperText color={'error.main'}>\n {errorsByField['facetType']}\n </FormHelperText>\n )}\n </FormControl>\n </Box>\n <Box>\n <FormControl fullWidth>\n <Select\n label=\"Sort Facet Values\"\n value={facetSortConfigToValue(\n 'facetSortConfig' in columnModel\n ? columnModel.facetSortConfig\n : undefined,\n )}\n disabled={disabled || columnModel.facetType !== 'enumeration'}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...columnModel,\n facetSortConfig: valueToFacetSortConfig(\n e.target.value as FacetSortValue,\n ),\n },\n })\n }}\n sx={fieldSx}\n slotProps={{\n input: {\n 'aria-label': 'Sort Facet Values',\n },\n }}\n error={!!errorsByField['facetSortConfig']}\n >\n <MenuItem value=\"FREQUENCY_DESC\">Frequency Descending</MenuItem>\n <MenuItem value=\"FREQUENCY_ASC\">Frequency Ascending</MenuItem>\n <MenuItem value=\"VALUE_DESC\">Value Descending</MenuItem>\n <MenuItem value=\"VALUE_ASC\">Value Ascending</MenuItem>\n </Select>\n {errorsByField['facetSortConfig'] && (\n <FormHelperText color={'error.main'}>\n {errorsByField['facetSortConfig']}\n </FormHelperText>\n )}\n </FormControl>\n </Box>\n </Box>\n {isJsonSubColumn && (\n <Box\n sx={{\n display: 'grid',\n gridColumn: '1 / span 11',\n gridTemplateColumns: 'subgrid',\n }}\n >\n <Box\n sx={{\n gridColumn: '1 / span 1',\n }}\n >\n {HIERARCHY_VERTICAL_LINE_COMPONENT}\n </Box>\n <Box></Box>\n <Box\n sx={{\n gridColumn: '3 / span 7',\n }}\n >\n <TextField\n placeholder={'JSON Path'}\n value={(columnModel as JsonSubColumnModelFormData).jsonPath}\n onChange={e => {\n dispatch({\n type: 'setColumnModelValue',\n columnModelIndex,\n jsonSubColumnModelIndex: jsonSubColumnIndex,\n value: {\n ...(columnModel as JsonSubColumnModelFormData),\n jsonPath: e.target.value,\n },\n })\n }}\n disabled={disabled}\n fullWidth\n slotProps={{\n input: {\n disableInjectingGlobalStyles:\n DISABLE_INJECTING_GLOBAL_STYLES_VALUE,\n sx: fieldSx,\n endAdornment: (\n <Tooltip\n title={\n <>\n <p>\n <Link\n href={\n 'https://dev.mysql.com/doc/refman/8.0/en/json.html#json-path-syntax'\n }\n >\n Please use a valid JSON Path selector, following\n this format.\n </Link>\n </p>\n <p>\n This field is for linking the sub-column facet to\n the corresponding location in the JSON data, so that\n it can be used as facet filter. The correct selector\n will point to the key referenced in the sub-column\n JSON Path.\n </p>\n </>\n }\n >\n <InfoTwoTone sx={{ color: 'grey.700' }} />\n </Tooltip>\n ),\n slotProps: {\n input: { 'aria-label': 'JSON Path' },\n },\n },\n }}\n error={!!errorsByField['jsonPath']}\n helperText={errorsByField['jsonPath']}\n />\n </Box>\n </Box>\n )}\n </>\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultValueField.js","names":[],"sources":["../../../../src/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.tsx"],"sourcesContent":["import { ReactNode, useMemo } from 'react'\nimport { ColumnTypeEnum } from '@sage-bionetworks/synapse-types'\nimport {\n FormControl,\n MenuItem,\n Select,\n SelectProps,\n TextField,\n TextFieldProps,\n} from '@mui/material'\nimport DateTimePicker from '../../DateTimePicker/DateTimePicker'\nimport dayjs from 'dayjs'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport MultiValueField from './MultiValueField'\nimport { ColumnModelFormData } from '../Validators/ColumnModelValidator'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\n// required to parse unix timestamp below\ndayjs.extend(customParseFormat)\n\nexport type DefaultValueFieldProps<TValue, TReturn = TValue> = {\n columnModel: ColumnModelFormData\n value: TValue | undefined\n onChange: (newValue: TReturn | undefined) => void\n disabled?: boolean\n TextFieldProps?: Omit<TextFieldProps, 'value' | 'onChange' | 'disabled'>\n SelectProps?: Omit<SelectProps, 'variant' | 'value' | 'onChange' | 'disabled'>\n selectFormHelperText?: ReactNode\n}\n\nfunction DefaultValueBooleanField(props: DefaultValueFieldProps<string>) {\n const { onChange, value, disabled, SelectProps, selectFormHelperText } = props\n return (\n <FormControl fullWidth>\n <Select\n {...SelectProps}\n disabled={disabled}\n value={value || ''}\n onChange={e => {\n if (e.target.value == null) {\n onChange(undefined)\n } else {\n onChange(e.target.value as string)\n }\n }}\n >\n <MenuItem value={undefined}>{''}</MenuItem>\n <MenuItem value={'true'}>true</MenuItem>\n <MenuItem value={'false'}>false</MenuItem>\n </Select>\n {selectFormHelperText && (\n <FormHelperText color={'error.main'}>\n {selectFormHelperText}\n </FormHelperText>\n )}\n </FormControl>\n )\n}\n\nfunction DefaultValueDateField(props: DefaultValueFieldProps<string>) {\n const { onChange, value = null, disabled, TextFieldProps } = props\n\n const valueAsDayjs = useMemo(() => {\n if (value) {\n // The backend service returns a string that contains an integer unix timestamp with millisecond precision\n // Passing the raw string to dayjs without a format option will parse the value incorrectly\n // 'x' indicates parsing the value as a ms Unix Timestamp - https://day.js.org/docs/en/parse/string-format\n return dayjs(value, 'x')\n }\n return null\n }, [value])\n\n return (\n <DateTimePicker\n value={valueAsDayjs}\n onChange={newValue => {\n if (newValue == null) {\n onChange(undefined)\n } else {\n // onChange argument should match the backend's passed value\n onChange(String(newValue.valueOf()))\n }\n }}\n disabled={disabled}\n slotProps={{\n textField: TextFieldProps,\n }}\n />\n )\n}\n\nfunction DefaultValueListField(\n props: DefaultValueFieldProps<(string | number)[], (string | number)[]>,\n) {\n // Note the backend returns a string that is a serialized JSON array.\n // However, TableColumnSchemaEditorUtils.transformColumnModelsToFormData will parse this before this component receives the value.\n // So this component will get an array of strings or numbers\n const {\n onChange,\n value: _value = null,\n columnModel,\n TextFieldProps,\n disabled,\n } = props\n const value = useMemo(() => {\n try {\n if (\n columnModel.columnType === ColumnTypeEnum.DATE_LIST &&\n Array.isArray(_value)\n ) {\n // if it's a DATE_LIST, then the values are Unix timestamps in milliseconds\n // The `MultiValueField` component expects ISO strings to match the JSON Schema 'date-time' format\n return _value.map(v => {\n return dayjs(v, 'x').toISOString()\n })\n }\n return _value\n } catch (e) {\n return null\n }\n }, [_value, columnModel.columnType])\n\n return (\n <MultiValueField\n value={value}\n onChange={arr => {\n if (arr == null) {\n // Convert null to undefined\n onChange(undefined)\n } else if (columnModel.columnType === ColumnTypeEnum.DATE_LIST) {\n // Transform the ISO Timestamps to integer unix timestamps to match the passed value\n onChange(arr.map(val => dayjs(val).valueOf()))\n } else {\n onChange(arr)\n }\n }}\n columnType={columnModel.columnType as ColumnTypeEnum}\n TextFieldProps={{ ...TextFieldProps, disabled }}\n />\n )\n}\n\nexport default function DefaultValueField<T>(props: DefaultValueFieldProps<T>) {\n const { columnModel, onChange, value, disabled, TextFieldProps } = props\n\n const { columnType } = columnModel\n\n if (columnType === ColumnTypeEnum.BOOLEAN) {\n return (\n <DefaultValueBooleanField\n {...(props as unknown as DefaultValueFieldProps<string>)}\n />\n )\n }\n\n if (columnType === ColumnTypeEnum.DATE) {\n return (\n <DefaultValueDateField\n {...(props as unknown as DefaultValueFieldProps<string>)}\n />\n )\n }\n\n if (columnType.endsWith('_LIST')) {\n return (\n <DefaultValueListField\n {...(props as unknown as DefaultValueFieldProps<(string | number)[]>)}\n />\n )\n }\n\n return (\n <TextField\n {...TextFieldProps}\n type={'text'}\n value={value || undefined}\n onChange={event => {\n if (event.target.value == '') {\n onChange(undefined as T)\n } else {\n onChange(event.target.value as T)\n }\n }}\n disabled={disabled}\n />\n )\n}\n"],"mappings":";;;;;;;;;;AAkBA,EAAM,OAAO,EAAkB;AAY/B,SAAS,EAAyB,GAAuC;CACvE,IAAM,EAAE,aAAU,UAAO,aAAU,gBAAa,4BAAyB;AACzE,QACE,kBAAC,GAAD;EAAa,WAAA;YAAb,CACE,kBAAC,GAAD;GACE,GAAI;GACM;GACV,OAAO,KAAS;GAChB,WAAU,MAAK;AACb,IAAI,EAAE,OAAO,SAAS,OACpB,EAAS,KAAA,EAAU,GAEnB,EAAS,EAAE,OAAO,MAAgB;;aARxC;IAYE,kBAAC,GAAD;KAAU,OAAO,KAAA;eAAY;KAAc,CAAA;IAC3C,kBAAC,GAAD;KAAU,OAAO;eAAQ;KAAe,CAAA;IACxC,kBAAC,GAAD;KAAU,OAAO;eAAS;KAAgB,CAAA;IACnC;MACR,KACC,kBAAC,GAAD;GAAgB,OAAO;aACpB;GACc,CAAA,CAEP;;;AAIlB,SAAS,EAAsB,GAAuC;CACpE,IAAM,EAAE,aAAU,WAAQ,MAAM,aAAU,sBAAmB;AAY7D,QACE,kBAAC,GAAD;EACE,OAZiB,QACf,IAIK,EAAM,GAAO,IAAI,GAEnB,MACN,CAAC,EAAM,CAIC;EACP,WAAU,MAAY;AACpB,GACE,EADE,KAAY,OACL,KAAA,IAGA,OAAO,EAAS,SAAS,CAAC,CAAC;;EAG9B;EACV,WAAW,EACT,WAAW,GACZ;EACD,CAAA;;AAIN,SAAS,EACP,GACA;CAIA,IAAM,EACJ,aACA,OAAO,IAAS,MAChB,gBACA,mBACA,gBACE;AAmBJ,QACE,kBAAC,GAAD;EACS,OApBG,QAAc;AAC1B,OAAI;AAWF,WATE,EAAY,eAAe,EAAe,aAC1C,MAAM,QAAQ,EAAO,GAId,EAAO,KAAI,MACT,EAAM,GAAG,IAAI,CAAC,aAAa,CAClC,GAEG;WACG;AACV,WAAO;;KAER,CAAC,GAAQ,EAAY,WAAW,CAIxB;EACP,WAAU,MAAO;AACf,GAAI,KAAO,OAET,EAAS,KAAA,EAAU,GACV,EAAY,eAAe,EAAe,YAEnD,EAAS,EAAI,KAAI,MAAO,EAAM,EAAI,CAAC,SAAS,CAAC,CAAC,GAE9C,EAAS,EAAI;;EAGjB,YAAY,EAAY;EACxB,gBAAgB;GAAE,GAAG;GAAgB;GAAU;EAC/C,CAAA;;AAIN,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,gBAAa,aAAU,UAAO,aAAU,sBAAmB,GAE7D,EAAE,kBAAe;AA0BvB,QAxBI,MAAe,EAAe,UAE9B,kBAAC,GAAD,EACE,GAAK,GACL,CAAA,GAIF,MAAe,EAAe,OAE9B,kBAAC,GAAD,EACE,GAAK,GACL,CAAA,GAIF,EAAW,SAAS,QAAQ,GAE5B,kBAAC,GAAD,EACE,GAAK,GACL,CAAA,GAKJ,kBAAC,GAAD;EACE,GAAI;EACJ,MAAM;EACN,OAAO,KAAS,KAAA;EAChB,WAAU,MAAS;AACjB,GAAI,EAAM,OAAO,SAAS,KACxB,EAAS,KAAA,EAAe,GAExB,EAAS,EAAM,OAAO,MAAW;;EAG3B;EACV,CAAA"}
1
+ {"version":3,"file":"DefaultValueField.js","names":[],"sources":["../../../../src/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.tsx"],"sourcesContent":["import { ReactNode, useMemo } from 'react'\nimport { ColumnTypeEnum } from '@sage-bionetworks/synapse-types'\nimport {\n FormControl,\n MenuItem,\n Select,\n SelectProps,\n TextField,\n TextFieldProps,\n} from '@mui/material'\nimport DateTimePicker from '../../DateTimePicker/DateTimePicker'\nimport dayjs from 'dayjs'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport MultiValueField from './MultiValueField'\nimport { ColumnModelFormData } from '../Validators/ColumnModelValidator'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\n// required to parse unix timestamp below\ndayjs.extend(customParseFormat)\n\nexport type DefaultValueFieldProps<TValue, TReturn = TValue> = {\n columnModel: ColumnModelFormData\n value: TValue | undefined\n onChange: (newValue: TReturn | undefined) => void\n disabled?: boolean\n TextFieldProps?: Omit<TextFieldProps, 'value' | 'onChange' | 'disabled'>\n SelectProps?: Omit<SelectProps, 'variant' | 'value' | 'onChange' | 'disabled'>\n selectFormHelperText?: ReactNode\n}\n\nfunction DefaultValueBooleanField(props: DefaultValueFieldProps<string>) {\n const { onChange, value, disabled, SelectProps, selectFormHelperText } = props\n return (\n <FormControl fullWidth>\n <Select\n {...SelectProps}\n disabled={disabled}\n value={value || ''}\n onChange={e => {\n if (e.target.value == null) {\n onChange(undefined)\n } else {\n onChange(e.target.value as string)\n }\n }}\n >\n <MenuItem value={undefined}>{''}</MenuItem>\n <MenuItem value={'true'}>true</MenuItem>\n <MenuItem value={'false'}>false</MenuItem>\n </Select>\n {selectFormHelperText && (\n <FormHelperText color={'error.main'}>\n {selectFormHelperText}\n </FormHelperText>\n )}\n </FormControl>\n )\n}\n\nfunction DefaultValueDateField(props: DefaultValueFieldProps<string>) {\n const { onChange, value = null, disabled, TextFieldProps } = props\n\n const valueAsDayjs = useMemo(() => {\n if (value) {\n // The backend service returns a string that contains an integer unix timestamp with millisecond precision\n // Passing the raw string to dayjs without a format option will parse the value incorrectly\n // 'x' indicates parsing the value as a ms Unix Timestamp - https://day.js.org/docs/en/parse/string-format\n return dayjs(value, 'x')\n }\n return null\n }, [value])\n\n return (\n <DateTimePicker\n value={valueAsDayjs}\n onChange={newValue => {\n if (newValue == null) {\n onChange(undefined)\n } else {\n // onChange argument should match the backend's passed value\n onChange(String(newValue.valueOf()))\n }\n }}\n disabled={disabled}\n slotProps={{\n textField: TextFieldProps,\n }}\n />\n )\n}\n\nfunction DefaultValueListField(\n props: DefaultValueFieldProps<(string | number)[], (string | number)[]>,\n) {\n // Note the backend returns a string that is a serialized JSON array.\n // However, TableColumnSchemaEditorUtils.transformColumnModelsToFormData will parse this before this component receives the value.\n // So this component will get an array of strings or numbers\n const {\n onChange,\n value: _value = null,\n columnModel,\n TextFieldProps,\n disabled,\n } = props\n const value = useMemo(() => {\n try {\n if (\n columnModel.columnType === ColumnTypeEnum.DATE_LIST &&\n Array.isArray(_value)\n ) {\n // if it's a DATE_LIST, then the values are Unix timestamps in milliseconds\n // The `MultiValueField` component expects ISO strings to match the JSON Schema 'date-time' format\n return _value.map(v => {\n return dayjs(v, 'x').toISOString()\n })\n }\n return _value\n } catch (e) {\n return null\n }\n }, [_value, columnModel.columnType])\n\n return (\n <MultiValueField\n value={value}\n onChange={arr => {\n if (arr == null) {\n // Convert null to undefined\n onChange(undefined)\n } else if (columnModel.columnType === ColumnTypeEnum.DATE_LIST) {\n // Transform the ISO Timestamps to integer unix timestamps to match the passed value\n onChange(arr.map(val => dayjs(val).valueOf()))\n } else {\n onChange(arr)\n }\n }}\n columnType={columnModel.columnType as ColumnTypeEnum}\n TextFieldProps={{ ...TextFieldProps, disabled }}\n />\n )\n}\n\nexport default function DefaultValueField<T>(props: DefaultValueFieldProps<T>) {\n const { columnModel, onChange, value, disabled, TextFieldProps } = props\n\n const { columnType } = columnModel\n\n if (columnType === ColumnTypeEnum.BOOLEAN) {\n return (\n <DefaultValueBooleanField\n {...(props as unknown as DefaultValueFieldProps<string>)}\n />\n )\n }\n\n if (columnType === ColumnTypeEnum.DATE) {\n return (\n <DefaultValueDateField\n {...(props as unknown as DefaultValueFieldProps<string>)}\n />\n )\n }\n\n if (columnType.endsWith('_LIST')) {\n return (\n <DefaultValueListField\n {...(props as unknown as DefaultValueFieldProps<(string | number)[]>)}\n />\n )\n }\n\n return (\n <TextField\n {...TextFieldProps}\n type={'text'}\n value={value || undefined}\n onChange={event => {\n if (event.target.value == '') {\n onChange(undefined as T)\n } else {\n onChange(event.target.value as T)\n }\n }}\n disabled={disabled}\n />\n )\n}\n"],"mappings":";;;;;;;;;;AAkBA,EAAM,OAAO,CAAiB;AAY9B,SAAS,EAAyB,GAAuC;CACvE,IAAM,EAAE,aAAU,UAAO,aAAU,gBAAa,4BAAyB;CACzE,OACE,kBAAC,GAAD;EAAa,WAAA;YAAb,CACE,kBAAC,GAAD;GACE,GAAI;GACM;GACV,OAAO,KAAS;GAChB,WAAU,MAAK;IACb,AAAI,EAAE,OAAO,SAAS,OACpB,EAAS,KAAA,CAAS,IAElB,EAAS,EAAE,OAAO,KAAe;GAErC;aAVF;IAYE,kBAAC,GAAD;KAAU,OAAO,KAAA;eAAY;IAAa,CAAA;IAC1C,kBAAC,GAAD;KAAU,OAAO;eAAQ;IAAc,CAAA;IACvC,kBAAC,GAAD;KAAU,OAAO;eAAS;IAAe,CAAA;GACnC;MACP,KACC,kBAAC,GAAD;GAAgB,OAAO;aACpB;EACa,CAAA,CAEP;;AAEjB;AAEA,SAAS,EAAsB,GAAuC;CACpE,IAAM,EAAE,aAAU,WAAQ,MAAM,aAAU,sBAAmB;CAY7D,OACE,kBAAC,GAAD;EACE,OAZiB,QACf,IAIK,EAAM,GAAO,GAAG,IAElB,MACN,CAAC,CAAK,CAIE;EACP,WAAU,MAAY;GACpB,AACE,EADE,KAAY,OACL,KAAA,IAGA,OAAO,EAAS,QAAQ,CAAC,CAAC;EAEvC;EACU;EACV,WAAW,EACT,WAAW,EACb;CACD,CAAA;AAEL;AAEA,SAAS,EACP,GACA;CAIA,IAAM,EACJ,aACA,OAAO,IAAS,MAChB,gBACA,mBACA,gBACE;CAmBJ,OACE,kBAAC,GAAD;EACS,OApBG,QAAc;GAC1B,IAAI;IAWF,OATE,EAAY,eAAe,EAAe,aAC1C,MAAM,QAAQ,CAAM,IAIb,EAAO,KAAI,MACT,EAAM,GAAG,GAAG,EAAE,YAAY,CAClC,IAEI;GACT,QAAY;IACV,OAAO;GACT;EACF,GAAG,CAAC,GAAQ,EAAY,UAAU,CAIvB;EACP,WAAU,MAAO;GACf,AAAI,KAAO,OAET,EAAS,KAAA,CAAS,IACT,EAAY,eAAe,EAAe,YAEnD,EAAS,EAAI,KAAI,MAAO,EAAM,CAAG,EAAE,QAAQ,CAAC,CAAC,IAE7C,EAAS,CAAG;EAEhB;EACA,YAAY,EAAY;EACxB,gBAAgB;GAAE,GAAG;GAAgB;EAAS;CAC/C,CAAA;AAEL;AAEA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,gBAAa,aAAU,UAAO,aAAU,sBAAmB,GAE7D,EAAE,kBAAe;CA0BvB,OAxBI,MAAe,EAAe,UAE9B,kBAAC,GAAD,EACE,GAAK,EACN,CAAA,IAID,MAAe,EAAe,OAE9B,kBAAC,GAAD,EACE,GAAK,EACN,CAAA,IAID,EAAW,SAAS,OAAO,IAE3B,kBAAC,GAAD,EACE,GAAK,EACN,CAAA,IAKH,kBAAC,GAAD;EACE,GAAI;EACJ,MAAM;EACN,OAAO,KAAS,KAAA;EAChB,WAAU,MAAS;GACjB,AAAI,EAAM,OAAO,SAAS,KACxB,EAAS,KAAA,CAAc,IAEvB,EAAS,EAAM,OAAO,KAAU;EAEpC;EACU;CACX,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldWithRecommendedMinimum.js","names":[],"sources":["../../../../src/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.tsx"],"sourcesContent":["import {\n alpha,\n SxProps,\n TextField,\n TextFieldProps,\n Theme,\n Tooltip,\n} from '@mui/material'\nimport { ColumnType, ColumnTypeEnum } from '@sage-bionetworks/synapse-types'\nimport {\n getFormDataValueAsNumber,\n isFormDataValueSmallerThanRecommendedValue,\n} from '../TableColumnSchemaEditorUtils'\n\nexport type FieldWithRecommendedValueProps = Omit<TextFieldProps, 'value'> & {\n value: string | number | undefined\n originalValue?: string | number | undefined\n recommendedValue?: number\n columnType: ColumnType\n}\n\nexport function FieldWithRecommendedMinimum(\n props: FieldWithRecommendedValueProps,\n) {\n const {\n value,\n originalValue,\n recommendedValue,\n columnType,\n error: errorFromProps,\n ...textFieldProps\n } = props\n\n const isSmallerThanRecommendedValue =\n isFormDataValueSmallerThanRecommendedValue(value, recommendedValue)\n\n const hasChangedFromOriginal =\n originalValue != null &&\n getFormDataValueAsNumber(value) !== getFormDataValueAsNumber(originalValue)\n\n const showError = !!errorFromProps || isSmallerThanRecommendedValue\n\n let tooltipText = null\n let additionalSx: SxProps<Theme> | undefined = undefined\n if (isSmallerThanRecommendedValue) {\n tooltipText = (\n <>\n <p>Data annotations are longer than allowed by current schema.</p>\n <p>\n Recommended size is <strong>{recommendedValue}</strong>.\n </p>\n {ColumnTypeEnum.STRING === columnType && (\n <p>If unsure, choose “MediumText” from the Column Type menu.</p>\n )}\n </>\n )\n } else if (hasChangedFromOriginal) {\n tooltipText = (\n <>\n <p>This value has changed since the table was last saved.</p>\n <p>The last saved value was {originalValue}.</p>\n </>\n )\n additionalSx = theme => ({\n '& .MuiInputBase-root': {\n backgroundColor: alpha(theme.palette.info.main, 0.1),\n border: '1px solid',\n borderColor: theme.palette.info.main,\n },\n })\n }\n\n return (\n <Tooltip title={tooltipText}>\n <TextField\n value={value ?? ''}\n error={showError}\n color={showError ? 'error' : undefined}\n focused={isSmallerThanRecommendedValue ? true : undefined}\n sx={[\n ...(Array.isArray(textFieldProps.sx)\n ? textFieldProps.sx\n : [textFieldProps.sx]),\n additionalSx,\n ]}\n {...textFieldProps}\n />\n </Tooltip>\n )\n}\n"],"mappings":";;;;;AAqBA,SAAgB,EACd,GACA;CACA,IAAM,EACJ,UACA,kBACA,qBACA,eACA,OAAO,GACP,GAAG,MACD,GAEE,IACJ,EAA2C,GAAO,EAAiB,EAE/D,IACJ,KAAiB,QACjB,EAAyB,EAAM,KAAK,EAAyB,EAAc,EAEvE,IAAY,CAAC,CAAC,KAAkB,GAElC,IAAc,MACd;AA6BJ,QA5BI,IACF,IACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,KAAD,EAAA,UAAG,+DAA+D,CAAA;EAClE,kBAAC,KAAD,EAAA,UAAA;GAAG;GACmB,kBAAC,UAAD,EAAA,UAAS,GAA0B,CAAA;;GACrD,EAAA,CAAA;EACH,EAAe,WAAW,KACzB,kBAAC,KAAD,EAAA,UAAG,6DAA6D,CAAA;EAEjE,EAAA,CAAA,GAEI,MACT,IACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,KAAD,EAAA,UAAG,0DAA0D,CAAA,EAC7D,kBAAC,KAAD,EAAA,UAAA;EAAG;EAA0B;EAAc;EAAK,EAAA,CAAA,CAC/C,EAAA,CAAA,EAEL,KAAe,OAAU,EACvB,wBAAwB;EACtB,iBAAiB,EAAM,EAAM,QAAQ,KAAK,MAAM,GAAI;EACpD,QAAQ;EACR,aAAa,EAAM,QAAQ,KAAK;EACjC,EACF,IAID,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,GAAD;GACE,OAAO,KAAS;GAChB,OAAO;GACP,OAAO,IAAY,UAAU,KAAA;GAC7B,SAAS,IAAgC,KAAO,KAAA;GAChD,IAAI,CACF,GAAI,MAAM,QAAQ,EAAe,GAAG,GAChC,EAAe,KACf,CAAC,EAAe,GAAG,EACvB,EACD;GACD,GAAI;GACJ,CAAA;EACM,CAAA"}
1
+ {"version":3,"file":"FieldWithRecommendedMinimum.js","names":[],"sources":["../../../../src/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.tsx"],"sourcesContent":["import {\n alpha,\n SxProps,\n TextField,\n TextFieldProps,\n Theme,\n Tooltip,\n} from '@mui/material'\nimport { ColumnType, ColumnTypeEnum } from '@sage-bionetworks/synapse-types'\nimport {\n getFormDataValueAsNumber,\n isFormDataValueSmallerThanRecommendedValue,\n} from '../TableColumnSchemaEditorUtils'\n\nexport type FieldWithRecommendedValueProps = Omit<TextFieldProps, 'value'> & {\n value: string | number | undefined\n originalValue?: string | number | undefined\n recommendedValue?: number\n columnType: ColumnType\n}\n\nexport function FieldWithRecommendedMinimum(\n props: FieldWithRecommendedValueProps,\n) {\n const {\n value,\n originalValue,\n recommendedValue,\n columnType,\n error: errorFromProps,\n ...textFieldProps\n } = props\n\n const isSmallerThanRecommendedValue =\n isFormDataValueSmallerThanRecommendedValue(value, recommendedValue)\n\n const hasChangedFromOriginal =\n originalValue != null &&\n getFormDataValueAsNumber(value) !== getFormDataValueAsNumber(originalValue)\n\n const showError = !!errorFromProps || isSmallerThanRecommendedValue\n\n let tooltipText = null\n let additionalSx: SxProps<Theme> | undefined = undefined\n if (isSmallerThanRecommendedValue) {\n tooltipText = (\n <>\n <p>Data annotations are longer than allowed by current schema.</p>\n <p>\n Recommended size is <strong>{recommendedValue}</strong>.\n </p>\n {ColumnTypeEnum.STRING === columnType && (\n <p>If unsure, choose “MediumText” from the Column Type menu.</p>\n )}\n </>\n )\n } else if (hasChangedFromOriginal) {\n tooltipText = (\n <>\n <p>This value has changed since the table was last saved.</p>\n <p>The last saved value was {originalValue}.</p>\n </>\n )\n additionalSx = theme => ({\n '& .MuiInputBase-root': {\n backgroundColor: alpha(theme.palette.info.main, 0.1),\n border: '1px solid',\n borderColor: theme.palette.info.main,\n },\n })\n }\n\n return (\n <Tooltip title={tooltipText}>\n <TextField\n value={value ?? ''}\n error={showError}\n color={showError ? 'error' : undefined}\n focused={isSmallerThanRecommendedValue ? true : undefined}\n sx={[\n ...(Array.isArray(textFieldProps.sx)\n ? textFieldProps.sx\n : [textFieldProps.sx]),\n additionalSx,\n ]}\n {...textFieldProps}\n />\n </Tooltip>\n )\n}\n"],"mappings":";;;;;AAqBA,SAAgB,EACd,GACA;CACA,IAAM,EACJ,UACA,kBACA,qBACA,eACA,OAAO,GACP,GAAG,MACD,GAEE,IACJ,EAA2C,GAAO,CAAgB,GAE9D,IACJ,KAAiB,QACjB,EAAyB,CAAK,MAAM,EAAyB,CAAa,GAEtE,IAAY,CAAC,CAAC,KAAkB,GAElC,IAAc,MACd;CA6BJ,OA5BI,IACF,IACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,KAAD,EAAA,UAAG,8DAA8D,CAAA;EACjE,kBAAC,KAAD,EAAA,UAAA;GAAG;GACmB,kBAAC,UAAD,EAAA,UAAS,EAAyB,CAAA;GAAC;EACtD,EAAA,CAAA;EACF,EAAe,WAAW,KACzB,kBAAC,KAAD,EAAA,UAAG,4DAA4D,CAAA;CAEjE,EAAA,CAAA,IAEK,MACT,IACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,KAAD,EAAA,UAAG,yDAAyD,CAAA,GAC5D,kBAAC,KAAD,EAAA,UAAA;EAAG;EAA0B;EAAc;CAAI,EAAA,CAAA,CAC/C,EAAA,CAAA,GAEJ,KAAe,OAAU,EACvB,wBAAwB;EACtB,iBAAiB,EAAM,EAAM,QAAQ,KAAK,MAAM,EAAG;EACnD,QAAQ;EACR,aAAa,EAAM,QAAQ,KAAK;CAClC,EACF,KAIA,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,GAAD;GACE,OAAO,KAAS;GAChB,OAAO;GACP,OAAO,IAAY,UAAU,KAAA;GAC7B,SAAS,IAAgC,KAAO,KAAA;GAChD,IAAI,CACF,GAAI,MAAM,QAAQ,EAAe,EAAE,IAC/B,EAAe,KACf,CAAC,EAAe,EAAE,GACtB,CACF;GACA,GAAI;EACL,CAAA;CACM,CAAA;AAEb"}
@@ -1,6 +1,6 @@
1
1
  import { formatDate as e } from "../../../utils/functions/DateFormatter.js";
2
- import { getJsonSchemaItemDefinitionForColumnType as t } from "../TableColumnSchemaEditorUtils.js";
3
- import n from "../../JSONArrayEditor/JSONArrayEditorModal.js";
2
+ import t from "../../JSONArrayEditor/JSONArrayEditorModal.js";
3
+ import { getJsonSchemaItemDefinitionForColumnType as n } from "../TableColumnSchemaEditorUtils.js";
4
4
  import { useMemo as r, useState as i } from "react";
5
5
  import { TextField as a } from "@mui/material";
6
6
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -8,8 +8,8 @@ import { ColumnTypeEnum as l } from "@sage-bionetworks/synapse-types";
8
8
  import u from "dayjs";
9
9
  //#region src/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.tsx
10
10
  function d(d) {
11
- let { columnType: f, onChange: p, value: m = [], TextFieldProps: h } = d, [g, _] = i(!1), v = r(() => t(f), [f]), y = r(() => m == null ? "" : f === l.DATE_LIST ? m.map((t) => e(u(t))).join(", ") : m.join(", "), [m, f]);
12
- return /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s(n, {
11
+ let { columnType: f, onChange: p, value: m = [], TextFieldProps: h } = d, [g, _] = i(!1), v = r(() => n(f), [f]), y = r(() => m == null ? "" : f === l.DATE_LIST ? m.map((t) => e(u(t))).join(", ") : m.join(", "), [m, f]);
12
+ return /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s(t, {
13
13
  arrayItemDefinition: v,
14
14
  value: m ?? void 0,
15
15
  isShowingModal: g,
@@ -1 +1 @@
1
- {"version":3,"file":"MultiValueField.js","names":[],"sources":["../../../../src/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport { TextField, TextFieldProps } from '@mui/material'\nimport { ColumnTypeEnum } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useMemo, useState } from 'react'\nimport JSONArrayEditorModal from '../../JSONArrayEditor/JSONArrayEditorModal'\nimport { getJsonSchemaItemDefinitionForColumnType } from '../TableColumnSchemaEditorUtils'\n\nexport type MultiValueFieldProps<T = unknown> = {\n value?: T[] | null\n onChange: (newValue: T[] | null) => void\n columnType: ColumnTypeEnum\n TextFieldProps?: Omit<TextFieldProps, 'value' | 'onChange'>\n}\n\nexport default function MultiValueField<T = unknown>(\n props: MultiValueFieldProps<T>,\n) {\n const { columnType, onChange, value = [], TextFieldProps } = props\n const [isShowingModal, setIsShowingModal] = useState(false)\n\n const arrayItemDefinition = useMemo(\n () => getJsonSchemaItemDefinitionForColumnType(columnType),\n [columnType],\n )\n\n const textFieldDisplayedValue = useMemo(() => {\n if (value == null) {\n return ''\n }\n if (columnType === ColumnTypeEnum.DATE_LIST) {\n return value.map(v => formatDate(dayjs(v as string))).join(', ')\n }\n return value.join(', ')\n }, [value, columnType])\n\n return (\n <>\n <JSONArrayEditorModal\n arrayItemDefinition={arrayItemDefinition}\n value={value ?? undefined}\n isShowingModal={isShowingModal}\n onConfirm={values => {\n onChange(values)\n setIsShowingModal(false)\n }}\n onCancel={() => setIsShowingModal(false)}\n />\n <TextField\n {...TextFieldProps}\n value={textFieldDisplayedValue}\n onClick={() => {\n setIsShowingModal(true)\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAeA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,aAAU,WAAQ,EAAE,EAAE,sBAAmB,GACvD,CAAC,GAAgB,KAAqB,EAAS,GAAM,EAErD,IAAsB,QACpB,EAAyC,EAAW,EAC1D,CAAC,EAAW,CACb,EAEK,IAA0B,QAC1B,KAAS,OACJ,KAEL,MAAe,EAAe,YACzB,EAAM,KAAI,MAAK,EAAW,EAAM,EAAY,CAAC,CAAC,CAAC,KAAK,KAAK,GAE3D,EAAM,KAAK,KAAK,EACtB,CAAC,GAAO,EAAW,CAAC;AAEvB,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACuB;EACrB,OAAO,KAAS,KAAA;EACA;EAChB,YAAW,MAAU;AAEnB,GADA,EAAS,EAAO,EAChB,EAAkB,GAAM;;EAE1B,gBAAgB,EAAkB,GAAM;EACxC,CAAA,EACF,kBAAC,GAAD;EACE,GAAI;EACJ,OAAO;EACP,eAAe;AACb,KAAkB,GAAK;;EAEzB,CAAA,CACD,EAAA,CAAA"}
1
+ {"version":3,"file":"MultiValueField.js","names":[],"sources":["../../../../src/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.tsx"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport { TextField, TextFieldProps } from '@mui/material'\nimport { ColumnTypeEnum } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useMemo, useState } from 'react'\nimport JSONArrayEditorModal from '../../JSONArrayEditor/JSONArrayEditorModal'\nimport { getJsonSchemaItemDefinitionForColumnType } from '../TableColumnSchemaEditorUtils'\n\nexport type MultiValueFieldProps<T = unknown> = {\n value?: T[] | null\n onChange: (newValue: T[] | null) => void\n columnType: ColumnTypeEnum\n TextFieldProps?: Omit<TextFieldProps, 'value' | 'onChange'>\n}\n\nexport default function MultiValueField<T = unknown>(\n props: MultiValueFieldProps<T>,\n) {\n const { columnType, onChange, value = [], TextFieldProps } = props\n const [isShowingModal, setIsShowingModal] = useState(false)\n\n const arrayItemDefinition = useMemo(\n () => getJsonSchemaItemDefinitionForColumnType(columnType),\n [columnType],\n )\n\n const textFieldDisplayedValue = useMemo(() => {\n if (value == null) {\n return ''\n }\n if (columnType === ColumnTypeEnum.DATE_LIST) {\n return value.map(v => formatDate(dayjs(v as string))).join(', ')\n }\n return value.join(', ')\n }, [value, columnType])\n\n return (\n <>\n <JSONArrayEditorModal\n arrayItemDefinition={arrayItemDefinition}\n value={value ?? undefined}\n isShowingModal={isShowingModal}\n onConfirm={values => {\n onChange(values)\n setIsShowingModal(false)\n }}\n onCancel={() => setIsShowingModal(false)}\n />\n <TextField\n {...TextFieldProps}\n value={textFieldDisplayedValue}\n onClick={() => {\n setIsShowingModal(true)\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAeA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,aAAU,WAAQ,CAAC,GAAG,sBAAmB,GACvD,CAAC,GAAgB,KAAqB,EAAS,EAAK,GAEpD,IAAsB,QACpB,EAAyC,CAAU,GACzD,CAAC,CAAU,CACb,GAEM,IAA0B,QAC1B,KAAS,OACJ,KAEL,MAAe,EAAe,YACzB,EAAM,KAAI,MAAK,EAAW,EAAM,CAAW,CAAC,CAAC,EAAE,KAAK,IAAI,IAE1D,EAAM,KAAK,IAAI,GACrB,CAAC,GAAO,CAAU,CAAC;CAEtB,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACuB;EACrB,OAAO,KAAS,KAAA;EACA;EAChB,YAAW,MAAU;GAEnB,AADA,EAAS,CAAM,GACf,EAAkB,EAAK;EACzB;EACA,gBAAgB,EAAkB,EAAK;CACxC,CAAA,GACD,kBAAC,GAAD;EACE,GAAI;EACJ,OAAO;EACP,eAAe;GACb,EAAkB,EAAI;EACxB;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImportTableColumnsButton.js","names":[],"sources":["../../../src/components/TableColumnSchemaEditor/ImportTableColumnsButton.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport { EntityTypeGroup } from '@/utils/functions/EntityTypeUtils'\nimport { DownloadTwoTone } from '@mui/icons-material'\nimport { Button, ButtonProps } from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { ColumnModel, Reference } from '@sage-bionetworks/synapse-types'\nimport { useCallback, useState } from 'react'\nimport { SetOptional } from 'type-fest'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport { VersionSelectionType } from '../EntityFinder/VersionSelectionType'\nimport { displayToast } from '../ToastMessage'\n\nexport type ImportTableColumnsButtonProps = Omit<ButtonProps, 'onClick'> & {\n initialFinderProjectId?: string\n onAddColumns: (columnModels: SetOptional<ColumnModel, 'id'>[]) => void\n}\n\nexport default function ImportTableColumnsButton(\n props: ImportTableColumnsButtonProps,\n) {\n const { initialFinderProjectId, onAddColumns, ...buttonProps } = props\n const [showFinder, setShowFinder] = useState(false)\n const { accessToken } = useSynapseContext()\n\n const fetchColumnModels = useCallback(\n async (reference: Reference): Promise<SetOptional<ColumnModel, 'id'>[]> => {\n const { tableBundle } = await SynapseClient.getEntityBundleV2(\n reference.targetId,\n { includeTableBundle: true },\n reference.targetVersionNumber,\n accessToken,\n )\n return tableBundle!.columnModels.map(columnModel => ({\n ...columnModel,\n id: undefined,\n }))\n },\n [accessToken],\n )\n\n const onConfirmEntityFinder = useCallback(\n async (selected: Reference[]) => {\n try {\n const selectedEntity = selected[0]\n\n if (selectedEntity) {\n // Get the column models from the selected table\n const columnModels = await fetchColumnModels(selectedEntity)\n onAddColumns(columnModels)\n }\n } catch (err) {\n console.error(err)\n displayToast(err.message, 'danger')\n } finally {\n setShowFinder(false)\n }\n },\n [fetchColumnModels, onAddColumns],\n )\n\n return (\n <>\n <EntityFinderModal\n configuration={{\n initialScope: initialFinderProjectId\n ? FinderScope.CURRENT_PROJECT\n : FinderScope.ALL_PROJECTS,\n initialContainer: initialFinderProjectId ?? 'root',\n selectMultiple: false,\n selectableTypes: EntityTypeGroup.ALL_TABLES,\n visibleTypesInTree: [EntityType.project],\n versionSelection: VersionSelectionType.UNTRACKED,\n }}\n show={showFinder}\n title={'Import Columns from Table'}\n promptCopy={'Find Tables to import columns'}\n titleHelpPopoverProps={{\n markdownText:\n 'Search or Browse Synapse to find an existing Table in order to import columns into this Table',\n }}\n onConfirm={selected => {\n onConfirmEntityFinder(selected)\n }}\n confirmButtonCopy={'Import Columns'}\n onCancel={() => {\n setShowFinder(false)\n }}\n />\n <Button\n variant={'outlined'}\n onClick={() => {\n setShowFinder(true)\n }}\n startIcon={<DownloadTwoTone />}\n {...buttonProps}\n >\n Import Columns\n </Button>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,2BAAwB,iBAAc,GAAG,MAAgB,GAC3D,CAAC,GAAY,KAAiB,EAAS,GAAM,EAC7C,EAAE,mBAAgB,GAAmB,EAErC,IAAoB,EACxB,OAAO,MAAoE;EACzE,IAAM,EAAE,mBAAgB,MAAM,EAAc,kBAC1C,EAAU,UACV,EAAE,oBAAoB,IAAM,EAC5B,EAAU,qBACV,EACD;AACD,SAAO,EAAa,aAAa,KAAI,OAAgB;GACnD,GAAG;GACH,IAAI,KAAA;GACL,EAAE;IAEL,CAAC,EAAY,CACd,EAEK,IAAwB,EAC5B,OAAO,MAA0B;AAC/B,MAAI;GACF,IAAM,IAAiB,EAAS;AAEhC,GAAI,KAGF,EAAa,MADc,EAAkB,EAAe,CAClC;WAErB,GAAK;AAEZ,GADA,QAAQ,MAAM,EAAI,EAClB,EAAa,EAAI,SAAS,SAAS;YAC3B;AACR,KAAc,GAAM;;IAGxB,CAAC,GAAmB,EAAa,CAClC;AAED,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,eAAe;GACb,cAAc,IACV,EAAY,kBACZ,EAAY;GAChB,kBAAkB,KAA0B;GAC5C,gBAAgB;GAChB,iBAAiB,EAAgB;GACjC,oBAAoB,CAAC,EAAW,QAAQ;GACxC,kBAAkB,EAAqB;GACxC;EACD,MAAM;EACN,OAAO;EACP,YAAY;EACZ,uBAAuB,EACrB,cACE,iGACH;EACD,YAAW,MAAY;AACrB,KAAsB,EAAS;;EAEjC,mBAAmB;EACnB,gBAAgB;AACd,KAAc,GAAM;;EAEtB,CAAA,EACF,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;AACb,KAAc,GAAK;;EAErB,WAAW,kBAAC,GAAD,EAAmB,CAAA;EAC9B,GAAI;YACL;EAEQ,CAAA,CACR,EAAA,CAAA"}
1
+ {"version":3,"file":"ImportTableColumnsButton.js","names":[],"sources":["../../../src/components/TableColumnSchemaEditor/ImportTableColumnsButton.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useSynapseContext } from '@/utils'\nimport { EntityTypeGroup } from '@/utils/functions/EntityTypeUtils'\nimport { DownloadTwoTone } from '@mui/icons-material'\nimport { Button, ButtonProps } from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { ColumnModel, Reference } from '@sage-bionetworks/synapse-types'\nimport { useCallback, useState } from 'react'\nimport { SetOptional } from 'type-fest'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport { VersionSelectionType } from '../EntityFinder/VersionSelectionType'\nimport { displayToast } from '../ToastMessage'\n\nexport type ImportTableColumnsButtonProps = Omit<ButtonProps, 'onClick'> & {\n initialFinderProjectId?: string\n onAddColumns: (columnModels: SetOptional<ColumnModel, 'id'>[]) => void\n}\n\nexport default function ImportTableColumnsButton(\n props: ImportTableColumnsButtonProps,\n) {\n const { initialFinderProjectId, onAddColumns, ...buttonProps } = props\n const [showFinder, setShowFinder] = useState(false)\n const { accessToken } = useSynapseContext()\n\n const fetchColumnModels = useCallback(\n async (reference: Reference): Promise<SetOptional<ColumnModel, 'id'>[]> => {\n const { tableBundle } = await SynapseClient.getEntityBundleV2(\n reference.targetId,\n { includeTableBundle: true },\n reference.targetVersionNumber,\n accessToken,\n )\n return tableBundle!.columnModels.map(columnModel => ({\n ...columnModel,\n id: undefined,\n }))\n },\n [accessToken],\n )\n\n const onConfirmEntityFinder = useCallback(\n async (selected: Reference[]) => {\n try {\n const selectedEntity = selected[0]\n\n if (selectedEntity) {\n // Get the column models from the selected table\n const columnModels = await fetchColumnModels(selectedEntity)\n onAddColumns(columnModels)\n }\n } catch (err) {\n console.error(err)\n displayToast(err.message, 'danger')\n } finally {\n setShowFinder(false)\n }\n },\n [fetchColumnModels, onAddColumns],\n )\n\n return (\n <>\n <EntityFinderModal\n configuration={{\n initialScope: initialFinderProjectId\n ? FinderScope.CURRENT_PROJECT\n : FinderScope.ALL_PROJECTS,\n initialContainer: initialFinderProjectId ?? 'root',\n selectMultiple: false,\n selectableTypes: EntityTypeGroup.ALL_TABLES,\n visibleTypesInTree: [EntityType.project],\n versionSelection: VersionSelectionType.UNTRACKED,\n }}\n show={showFinder}\n title={'Import Columns from Table'}\n promptCopy={'Find Tables to import columns'}\n titleHelpPopoverProps={{\n markdownText:\n 'Search or Browse Synapse to find an existing Table in order to import columns into this Table',\n }}\n onConfirm={selected => {\n onConfirmEntityFinder(selected)\n }}\n confirmButtonCopy={'Import Columns'}\n onCancel={() => {\n setShowFinder(false)\n }}\n />\n <Button\n variant={'outlined'}\n onClick={() => {\n setShowFinder(true)\n }}\n startIcon={<DownloadTwoTone />}\n {...buttonProps}\n >\n Import Columns\n </Button>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,2BAAwB,iBAAc,GAAG,MAAgB,GAC3D,CAAC,GAAY,KAAiB,EAAS,EAAK,GAC5C,EAAE,mBAAgB,EAAkB,GAEpC,IAAoB,EACxB,OAAO,MAAoE;EACzE,IAAM,EAAE,mBAAgB,MAAM,EAAc,kBAC1C,EAAU,UACV,EAAE,oBAAoB,GAAK,GAC3B,EAAU,qBACV,CACF;EACA,OAAO,EAAa,aAAa,KAAI,OAAgB;GACnD,GAAG;GACH,IAAI,KAAA;EACN,EAAE;CACJ,GACA,CAAC,CAAW,CACd,GAEM,IAAwB,EAC5B,OAAO,MAA0B;EAC/B,IAAI;GACF,IAAM,IAAiB,EAAS;GAEhC,AAAI,KAGF,EAAa,MADc,EAAkB,CAAc,CAClC;EAE7B,SAAS,GAAK;GAEZ,AADA,QAAQ,MAAM,CAAG,GACjB,EAAa,EAAI,SAAS,QAAQ;EACpC,UAAU;GACR,EAAc,EAAK;EACrB;CACF,GACA,CAAC,GAAmB,CAAY,CAClC;CAEA,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,eAAe;GACb,cAAc,IACV,EAAY,kBACZ,EAAY;GAChB,kBAAkB,KAA0B;GAC5C,gBAAgB;GAChB,iBAAiB,EAAgB;GACjC,oBAAoB,CAAC,EAAW,OAAO;GACvC,kBAAkB,EAAqB;EACzC;EACA,MAAM;EACN,OAAO;EACP,YAAY;EACZ,uBAAuB,EACrB,cACE,gGACJ;EACA,YAAW,MAAY;GACrB,EAAsB,CAAQ;EAChC;EACA,mBAAmB;EACnB,gBAAgB;GACd,EAAc,EAAK;EACrB;CACD,CAAA,GACD,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;GACb,EAAc,EAAI;EACpB;EACA,WAAW,kBAAC,GAAD,CAAkB,CAAA;EAC7B,GAAI;YACL;CAEO,CAAA,CACR,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnSchemaEditor.js","names":[],"sources":["../../../src/components/TableColumnSchemaEditor/TableColumnSchemaEditor.tsx"],"sourcesContent":["import { useGetEntityBundle, useUpdateTableColumns } from '@/synapse-queries'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { Alert } from '@mui/material'\nimport { ColumnModel, ViewScope } from '@sage-bionetworks/synapse-types'\nimport { isUndefined, noop, omitBy } from 'lodash-es'\nimport { useCallback, useMemo, useRef } from 'react'\nimport { SetOptional } from 'type-fest'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { SkeletonTable } from '../Skeleton'\nimport { getViewScopeForEntity } from './TableColumnSchemaEditorUtils'\nimport TableColumnSchemaForm, { SubmitHandle } from './TableColumnSchemaForm'\n\nexport type TableColumnSchemaEditorProps = {\n entityId: string\n open: boolean\n onColumnsUpdated?: () => void\n onCancel?: () => void\n}\n\n/**\n * Fetches column model data for a Synapse Table and renders a form to edit the column models.\n * @param props\n * @constructor\n */\nexport default function TableColumnSchemaEditor(\n props: TableColumnSchemaEditorProps,\n) {\n const { entityId, open, onColumnsUpdated = noop, onCancel = noop } = props\n\n const formRef = useRef<SubmitHandle>(null)\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n undefined,\n {\n includeEntity: true,\n includeTableBundle: true,\n },\n {\n // This data is inserted into a form, so don't refetch it.\n staleTime: Infinity,\n throwOnError: true,\n },\n )\n\n const entity = bundle?.entity\n const originalColumnModels = bundle?.tableBundle?.columnModels\n\n const {\n mutate,\n isPending: updateIsPending,\n error,\n } = useUpdateTableColumns({\n onSuccess: () => {\n onColumnsUpdated()\n },\n })\n\n const onSubmit = useCallback(\n (newColumnModels: SetOptional<ColumnModel, 'id'>[]) => {\n // Update the table schema with the new column models.\n mutate({\n entityId,\n originalColumnModels: originalColumnModels!,\n newColumnModels: newColumnModels.map(cm =>\n // Remove undefined properties from the new column models\n omitBy(cm, isUndefined),\n ) as SetOptional<ColumnModel, 'id'>[],\n })\n },\n [entityId, mutate, originalColumnModels],\n )\n\n const viewScope: ViewScope | undefined = useMemo(() => {\n if (!entity) {\n return undefined\n }\n return getViewScopeForEntity(entity)\n }, [entity])\n\n if (isLoading || !bundle || !entity) {\n return (\n <SkeletonTable\n numRows={8}\n numCols={7}\n rowHeight={'50px'}\n fullWidthCells\n />\n )\n }\n\n return (\n <ConfirmationDialog\n open={open}\n maxWidth={'xl'}\n title={'Edit Columns'}\n content={\n <>\n <TableColumnSchemaForm\n ref={formRef}\n entityType={convertToEntityType(entity.concreteType)}\n viewScope={viewScope}\n initialData={bundle?.tableBundle?.columnModels}\n isSubmitting={updateIsPending}\n onSubmit={formData => {\n onSubmit(formData)\n }}\n originalColumnModels={originalColumnModels}\n />\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }}>\n {error?.message}\n </Alert>\n )}\n </>\n }\n confirmButtonProps={{\n children: updateIsPending ? 'Saving...' : 'Save',\n disabled: updateIsPending,\n startIcon: updateIsPending ? <SynapseSpinner /> : undefined,\n }}\n onConfirm={() => {\n if (formRef.current) {\n formRef.current.submit()\n }\n }}\n cancelButtonProps={{\n disabled: updateIsPending,\n }}\n onCancel={onCancel}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,SAAM,sBAAmB,GAAM,cAAW,MAAS,GAE/D,IAAU,EAAqB,KAAK,EACpC,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,KAAA,GACA;EACE,eAAe;EACf,oBAAoB;EACrB,EACD;EAEE,WAAW;EACX,cAAc;EACf,CACF,EAEK,IAAS,GAAQ,QACjB,IAAuB,GAAQ,aAAa,cAE5C,EACJ,WACA,WAAW,GACX,aACE,EAAsB,EACxB,iBAAiB;AACf,KAAkB;IAErB,CAAC,EAEI,IAAW,GACd,MAAsD;AAErD,IAAO;GACL;GACsB;GACtB,iBAAiB,EAAgB,KAAI,MAEnC,EAAO,GAAI,EAAY,CACxB;GACF,CAAC;IAEJ;EAAC;EAAU;EAAQ;EAAqB,CACzC,EAEK,IAAmC,QAAc;AAChD,QAGL,QAAO,EAAsB,EAAO;IACnC,CAAC,EAAO,CAAC;AAaZ,QAXI,KAAa,CAAC,KAAU,CAAC,IAEzB,kBAAC,GAAD;EACE,SAAS;EACT,SAAS;EACT,WAAW;EACX,gBAAA;EACA,CAAA,GAKJ,kBAAC,GAAD;EACQ;EACN,UAAU;EACV,OAAO;EACP,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,KAAK;GACL,YAAY,EAAoB,EAAO,aAAa;GACzC;GACX,aAAa,GAAQ,aAAa;GAClC,cAAc;GACd,WAAU,MAAY;AACpB,MAAS,EAAS;;GAEE;GACtB,CAAA,EACD,KACC,kBAAC,GAAD;GAAO,UAAU;GAAS,IAAI,EAAE,IAAI,GAAG;aACpC,GAAO;GACF,CAAA,CAET,EAAA,CAAA;EAEL,oBAAoB;GAClB,UAAU,IAAkB,cAAc;GAC1C,UAAU;GACV,WAAW,IAAkB,kBAAC,GAAD,EAAkB,CAAA,GAAG,KAAA;GACnD;EACD,iBAAiB;AACf,GAAI,EAAQ,WACV,EAAQ,QAAQ,QAAQ;;EAG5B,mBAAmB,EACjB,UAAU,GACX;EACS;EACV,CAAA"}
1
+ {"version":3,"file":"TableColumnSchemaEditor.js","names":[],"sources":["../../../src/components/TableColumnSchemaEditor/TableColumnSchemaEditor.tsx"],"sourcesContent":["import { useGetEntityBundle, useUpdateTableColumns } from '@/synapse-queries'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { Alert } from '@mui/material'\nimport { ColumnModel, ViewScope } from '@sage-bionetworks/synapse-types'\nimport { isUndefined, noop, omitBy } from 'lodash-es'\nimport { useCallback, useMemo, useRef } from 'react'\nimport { SetOptional } from 'type-fest'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { SkeletonTable } from '../Skeleton'\nimport { getViewScopeForEntity } from './TableColumnSchemaEditorUtils'\nimport TableColumnSchemaForm, { SubmitHandle } from './TableColumnSchemaForm'\n\nexport type TableColumnSchemaEditorProps = {\n entityId: string\n open: boolean\n onColumnsUpdated?: () => void\n onCancel?: () => void\n}\n\n/**\n * Fetches column model data for a Synapse Table and renders a form to edit the column models.\n * @param props\n * @constructor\n */\nexport default function TableColumnSchemaEditor(\n props: TableColumnSchemaEditorProps,\n) {\n const { entityId, open, onColumnsUpdated = noop, onCancel = noop } = props\n\n const formRef = useRef<SubmitHandle>(null)\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n undefined,\n {\n includeEntity: true,\n includeTableBundle: true,\n },\n {\n // This data is inserted into a form, so don't refetch it.\n staleTime: Infinity,\n throwOnError: true,\n },\n )\n\n const entity = bundle?.entity\n const originalColumnModels = bundle?.tableBundle?.columnModels\n\n const {\n mutate,\n isPending: updateIsPending,\n error,\n } = useUpdateTableColumns({\n onSuccess: () => {\n onColumnsUpdated()\n },\n })\n\n const onSubmit = useCallback(\n (newColumnModels: SetOptional<ColumnModel, 'id'>[]) => {\n // Update the table schema with the new column models.\n mutate({\n entityId,\n originalColumnModels: originalColumnModels!,\n newColumnModels: newColumnModels.map(cm =>\n // Remove undefined properties from the new column models\n omitBy(cm, isUndefined),\n ) as SetOptional<ColumnModel, 'id'>[],\n })\n },\n [entityId, mutate, originalColumnModels],\n )\n\n const viewScope: ViewScope | undefined = useMemo(() => {\n if (!entity) {\n return undefined\n }\n return getViewScopeForEntity(entity)\n }, [entity])\n\n if (isLoading || !bundle || !entity) {\n return (\n <SkeletonTable\n numRows={8}\n numCols={7}\n rowHeight={'50px'}\n fullWidthCells\n />\n )\n }\n\n return (\n <ConfirmationDialog\n open={open}\n maxWidth={'xl'}\n title={'Edit Columns'}\n content={\n <>\n <TableColumnSchemaForm\n ref={formRef}\n entityType={convertToEntityType(entity.concreteType)}\n viewScope={viewScope}\n initialData={bundle?.tableBundle?.columnModels}\n isSubmitting={updateIsPending}\n onSubmit={formData => {\n onSubmit(formData)\n }}\n originalColumnModels={originalColumnModels}\n />\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }}>\n {error?.message}\n </Alert>\n )}\n </>\n }\n confirmButtonProps={{\n children: updateIsPending ? 'Saving...' : 'Save',\n disabled: updateIsPending,\n startIcon: updateIsPending ? <SynapseSpinner /> : undefined,\n }}\n onConfirm={() => {\n if (formRef.current) {\n formRef.current.submit()\n }\n }}\n cancelButtonProps={{\n disabled: updateIsPending,\n }}\n onCancel={onCancel}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,SAAM,sBAAmB,GAAM,cAAW,MAAS,GAE/D,IAAU,EAAqB,IAAI,GACnC,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,KAAA,GACA;EACE,eAAe;EACf,oBAAoB;CACtB,GACA;EAEE,WAAW;EACX,cAAc;CAChB,CACF,GAEM,IAAS,GAAQ,QACjB,IAAuB,GAAQ,aAAa,cAE5C,EACJ,WACA,WAAW,GACX,aACE,EAAsB,EACxB,iBAAiB;EACf,EAAiB;CACnB,EACF,CAAC,GAEK,IAAW,GACd,MAAsD;EAErD,EAAO;GACL;GACsB;GACtB,iBAAiB,EAAgB,KAAI,MAEnC,EAAO,GAAI,CAAW,CACxB;EACF,CAAC;CACH,GACA;EAAC;EAAU;EAAQ;CAAoB,CACzC,GAEM,IAAmC,QAAc;EAChD,OAGL,OAAO,EAAsB,CAAM;CACrC,GAAG,CAAC,CAAM,CAAC;CAaX,OAXI,KAAa,CAAC,KAAU,CAAC,IAEzB,kBAAC,GAAD;EACE,SAAS;EACT,SAAS;EACT,WAAW;EACX,gBAAA;CACD,CAAA,IAKH,kBAAC,GAAD;EACQ;EACN,UAAU;EACV,OAAO;EACP,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,KAAK;GACL,YAAY,EAAoB,EAAO,YAAY;GACxC;GACX,aAAa,GAAQ,aAAa;GAClC,cAAc;GACd,WAAU,MAAY;IACpB,EAAS,CAAQ;GACnB;GACsB;EACvB,CAAA,GACA,KACC,kBAAC,GAAD;GAAO,UAAU;GAAS,IAAI,EAAE,IAAI,EAAE;aACnC,GAAO;EACH,CAAA,CAET,EAAA,CAAA;EAEJ,oBAAoB;GAClB,UAAU,IAAkB,cAAc;GAC1C,UAAU;GACV,WAAW,IAAkB,kBAAC,GAAD,CAAiB,CAAA,IAAI,KAAA;EACpD;EACA,iBAAiB;GACf,AAAI,EAAQ,WACV,EAAQ,QAAQ,OAAO;EAE3B;EACA,mBAAmB,EACjB,UAAU,EACZ;EACU;CACX,CAAA;AAEL"}