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":"EntityNameCell.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityNameCell.tsx"],"sourcesContent":["import { CellContext } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { Box } from '@mui/system'\nimport { IconButton } from '@mui/material'\nimport { ChevronRight, ExpandMore } from '@mui/icons-material'\nimport { useEntityTreeTableContext } from './EntityTreeTableContext'\nimport { EntityLink } from '@/components/EntityLink'\nimport { SynapseSpinner } from '@/components/LoadingScreen/LoadingScreen'\n\nexport const depthPaddingMultiplierPx = 16\n\nexport const NameCell: React.FC<CellContext<EntityBundleRow, unknown>> = ({\n row,\n}) => {\n const { expanded, loadingIds, handleToggleExpanded, onEntityIdClicked } =\n useEntityTreeTableContext()\n const { entityHeader, depth, isLeaf } = row.original\n const isExpanded = !!expanded[entityHeader.id]\n const hasChildren = !isLeaf\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n pl: `${depth * depthPaddingMultiplierPx}px`,\n }}\n >\n {hasChildren && (\n <IconButton\n size=\"small\"\n loading={loadingIds.has(entityHeader.id)}\n loadingIndicator={<SynapseSpinner />}\n onClick={() => handleToggleExpanded(entityHeader.id)}\n aria-label={isExpanded ? 'Collapse' : 'Expand'}\n >\n {isExpanded ? <ExpandMore /> : <ChevronRight />}\n </IconButton>\n )}\n {!hasChildren && <Box sx={{ width: 32 }} />}\n\n {/*\n Ensure the name column can shrink and long names are truncated.\n `minWidth: 0` is required on flex children so `overflow: hidden`\n can actually clip the content. We target descendant `a` and `p`\n elements because `EntityLink` renders a MUI Link (anchor) or a p.\n */}\n <Box\n sx={{\n flex: 1,\n minWidth: 0,\n marginLeft: 1,\n // Style the inner Link or paragraph for truncation\n '& a, & p': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n }}\n >\n <EntityLink\n entity={entityHeader}\n onEntityIdClicked={onEntityIdClicked}\n />\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;AASA,IAAa,IAA2B,IAE3B,KAA6D,EACxE,aACI;CACJ,IAAM,EAAE,aAAU,eAAY,yBAAsB,yBAClD,GAA2B,EACvB,EAAE,iBAAc,UAAO,cAAW,EAAI,UACtC,IAAa,CAAC,CAAC,EAAS,EAAa,KACrC,IAAc,CAAC;AACrB,QACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,IAAI,GAAG,IAAA,GAAiC;GACzC;YALH;GAOG,KACC,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAW,IAAI,EAAa,GAAG;IACxC,kBAAkB,kBAAC,GAAD,EAAkB,CAAA;IACpC,eAAe,EAAqB,EAAa,GAAG;IACpD,cAAY,IAAa,aAAa;cAExB,EAAb,IAAc,IAAiB,GAAlB,EAAc,CAAmB;IACpC,CAAA;GAEd,CAAC,KAAe,kBAAC,GAAD,EAAK,IAAI,EAAE,OAAO,IAAI,EAAI,CAAA;GAQ3C,kBAAC,GAAD;IACE,IAAI;KACF,MAAM;KACN,UAAU;KACV,YAAY;KAEZ,YAAY;MACV,SAAS;MACT,UAAU;MACV,cAAc;MACd,YAAY;MACb;KACF;cAED,kBAAC,GAAD;KACE,QAAQ;KACW;KACnB,CAAA;IACE,CAAA;GACF"}
1
+ {"version":3,"file":"EntityNameCell.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityNameCell.tsx"],"sourcesContent":["import { CellContext } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { Box } from '@mui/system'\nimport { IconButton } from '@mui/material'\nimport { ChevronRight, ExpandMore } from '@mui/icons-material'\nimport { useEntityTreeTableContext } from './EntityTreeTableContext'\nimport { EntityLink } from '@/components/EntityLink'\nimport { SynapseSpinner } from '@/components/LoadingScreen/LoadingScreen'\n\nexport const depthPaddingMultiplierPx = 16\n\nexport const NameCell: React.FC<CellContext<EntityBundleRow, unknown>> = ({\n row,\n}) => {\n const { expanded, loadingIds, handleToggleExpanded, onEntityIdClicked } =\n useEntityTreeTableContext()\n const { entityHeader, depth, isLeaf } = row.original\n const isExpanded = !!expanded[entityHeader.id]\n const hasChildren = !isLeaf\n return (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n pl: `${depth * depthPaddingMultiplierPx}px`,\n }}\n >\n {hasChildren && (\n <IconButton\n size=\"small\"\n loading={loadingIds.has(entityHeader.id)}\n loadingIndicator={<SynapseSpinner />}\n onClick={() => handleToggleExpanded(entityHeader.id)}\n aria-label={isExpanded ? 'Collapse' : 'Expand'}\n >\n {isExpanded ? <ExpandMore /> : <ChevronRight />}\n </IconButton>\n )}\n {!hasChildren && <Box sx={{ width: 32 }} />}\n\n {/*\n Ensure the name column can shrink and long names are truncated.\n `minWidth: 0` is required on flex children so `overflow: hidden`\n can actually clip the content. We target descendant `a` and `p`\n elements because `EntityLink` renders a MUI Link (anchor) or a p.\n */}\n <Box\n sx={{\n flex: 1,\n minWidth: 0,\n marginLeft: 1,\n // Style the inner Link or paragraph for truncation\n '& a, & p': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n }}\n >\n <EntityLink\n entity={entityHeader}\n onEntityIdClicked={onEntityIdClicked}\n />\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;AASA,IAAa,IAA2B,IAE3B,KAA6D,EACxE,aACI;CACJ,IAAM,EAAE,aAAU,eAAY,yBAAsB,yBAClD,EAA0B,GACtB,EAAE,iBAAc,UAAO,cAAW,EAAI,UACtC,IAAa,CAAC,CAAC,EAAS,EAAa,KACrC,IAAc,CAAC;CACrB,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,IAAI,GAAG,IAAA,GAAiC;EAC1C;YALF;GAOG,KACC,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,EAAW,IAAI,EAAa,EAAE;IACvC,kBAAkB,kBAAC,GAAD,CAAiB,CAAA;IACnC,eAAe,EAAqB,EAAa,EAAE;IACnD,cAAY,IAAa,aAAa;cAExB,EAAb,IAAc,IAAiB,GAAlB,CAAa,CAAmB;GACpC,CAAA;GAEb,CAAC,KAAe,kBAAC,GAAD,EAAK,IAAI,EAAE,OAAO,GAAG,EAAI,CAAA;GAQ1C,kBAAC,GAAD;IACE,IAAI;KACF,MAAM;KACN,UAAU;KACV,YAAY;KAEZ,YAAY;MACV,SAAS;MACT,UAAU;MACV,cAAc;MACd,YAAY;KACd;IACF;cAEA,kBAAC,GAAD;KACE,QAAQ;KACW;IACpB,CAAA;GACE,CAAA;EACF;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTreeTableContext.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityTreeTableContext.tsx"],"sourcesContent":["import React from 'react'\nexport type EntityTreeTableContextType = {\n expanded: Record<string, boolean>\n loadingIds: Set<string>\n handleToggleExpanded: (entityId: string) => void\n loadMoreChildren: (parentId: string, pageToken?: string) => void\n nextPageTokens: Record<string, string | undefined>\n onEntityIdClicked?: (entityId: string) => void\n}\n\nexport const EntityTreeTableContext = React.createContext<\n EntityTreeTableContextType | undefined\n>(undefined)\n\nexport function useEntityTreeTableContext(): EntityTreeTableContextType {\n const ctx = React.useContext(EntityTreeTableContext)\n if (!ctx)\n throw new Error(\n 'useEntityTreeTableContext must be used within EntityTreeTableContext.Provider',\n )\n return ctx\n}\n\nexport default EntityTreeTableContext\n"],"mappings":";;AAUA,IAAa,IAAyB,EAAM,cAE1C,KAAA,EAAU;AAEZ,SAAgB,IAAwD;CACtE,IAAM,IAAM,EAAM,WAAW,EAAuB;AACpD,KAAI,CAAC,EACH,OAAU,MACR,gFACD;AACH,QAAO"}
1
+ {"version":3,"file":"EntityTreeTableContext.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityTreeTableContext.tsx"],"sourcesContent":["import React from 'react'\nexport type EntityTreeTableContextType = {\n expanded: Record<string, boolean>\n loadingIds: Set<string>\n handleToggleExpanded: (entityId: string) => void\n loadMoreChildren: (parentId: string, pageToken?: string) => void\n nextPageTokens: Record<string, string | undefined>\n onEntityIdClicked?: (entityId: string) => void\n}\n\nexport const EntityTreeTableContext = React.createContext<\n EntityTreeTableContextType | undefined\n>(undefined)\n\nexport function useEntityTreeTableContext(): EntityTreeTableContextType {\n const ctx = React.useContext(EntityTreeTableContext)\n if (!ctx)\n throw new Error(\n 'useEntityTreeTableContext must be used within EntityTreeTableContext.Provider',\n )\n return ctx\n}\n\nexport default EntityTreeTableContext\n"],"mappings":";;AAUA,IAAa,IAAyB,EAAM,cAE1C,KAAA,CAAS;AAEX,SAAgB,IAAwD;CACtE,IAAM,IAAM,EAAM,WAAW,CAAsB;CACnD,IAAI,CAAC,GACH,MAAU,MACR,+EACF;CACF,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTreeTableRow.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityTreeTableRow.tsx"],"sourcesContent":["import React from 'react'\nimport { Row } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { AutoLoadMore } from './AutoLoadMore'\nimport { useEntityTreeTableContext } from './EntityTreeTableContext'\nimport { TableCellRenderer } from '../../TanStackTable/TableCellRenderer'\nimport { TrProps } from '../../TanStackTable/types'\n\nexport type EntityTreeTableRowProps = TrProps<\n EntityBundleRow,\n Row<EntityBundleRow>\n>\n\n// Custom table row component to handle load-more rows\nexport const EntityTreeTableRow: React.FC<EntityTreeTableRowProps> = ({\n row,\n tableRow,\n ...rest\n}) => {\n const { loadingIds, loadMoreChildren } = useEntityTreeTableContext()\n\n if (!tableRow) return null\n\n const original = tableRow.original\n if (original.isLoadMore) {\n const colCount = tableRow.getAllCells().length\n const isLoading = loadingIds.has(original.parentId!)\n\n return (\n <tr {...rest}>\n <td colSpan={colCount}>\n <AutoLoadMore\n depth={original.depth}\n isLoading={isLoading}\n pageToken={original.pageToken}\n onLoadMore={() => {\n loadMoreChildren(original.parentId!, original.pageToken)\n }}\n />\n </td>\n </tr>\n )\n }\n\n // For normal rows, render cells normally\n return (\n <tr {...rest}>\n {tableRow.getVisibleCells().map(cell => (\n <TableCellRenderer key={cell.id} {...cell} />\n ))}\n </tr>\n )\n}\n"],"mappings":";;;;;;AAcA,IAAa,KAAyD,EACpE,QACA,aACA,GAAG,QACC;CACJ,IAAM,EAAE,eAAY,wBAAqB,GAA2B;AAEpE,KAAI,CAAC,EAAU,QAAO;CAEtB,IAAM,IAAW,EAAS;AAC1B,KAAI,EAAS,YAAY;EACvB,IAAM,IAAW,EAAS,aAAa,CAAC,QAClC,IAAY,EAAW,IAAI,EAAS,SAAU;AAEpD,SACE,kBAAC,MAAD;GAAI,GAAI;aACN,kBAAC,MAAD;IAAI,SAAS;cACX,kBAAC,GAAD;KACE,OAAO,EAAS;KACL;KACX,WAAW,EAAS;KACpB,kBAAkB;AAChB,QAAiB,EAAS,UAAW,EAAS,UAAU;;KAE1D,CAAA;IACC,CAAA;GACF,CAAA;;AAKT,QACE,kBAAC,MAAD;EAAI,GAAI;YACL,EAAS,iBAAiB,CAAC,KAAI,MAC9B,kBAAC,GAAD,EAAiC,GAAI,GAAQ,EAArB,EAAK,GAAgB,CAC7C;EACC,CAAA"}
1
+ {"version":3,"file":"EntityTreeTableRow.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityTreeTableRow.tsx"],"sourcesContent":["import React from 'react'\nimport { Row } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { AutoLoadMore } from './AutoLoadMore'\nimport { useEntityTreeTableContext } from './EntityTreeTableContext'\nimport { TableCellRenderer } from '../../TanStackTable/TableCellRenderer'\nimport { TrProps } from '../../TanStackTable/types'\n\nexport type EntityTreeTableRowProps = TrProps<\n EntityBundleRow,\n Row<EntityBundleRow>\n>\n\n// Custom table row component to handle load-more rows\nexport const EntityTreeTableRow: React.FC<EntityTreeTableRowProps> = ({\n row,\n tableRow,\n ...rest\n}) => {\n const { loadingIds, loadMoreChildren } = useEntityTreeTableContext()\n\n if (!tableRow) return null\n\n const original = tableRow.original\n if (original.isLoadMore) {\n const colCount = tableRow.getAllCells().length\n const isLoading = loadingIds.has(original.parentId!)\n\n return (\n <tr {...rest}>\n <td colSpan={colCount}>\n <AutoLoadMore\n depth={original.depth}\n isLoading={isLoading}\n pageToken={original.pageToken}\n onLoadMore={() => {\n loadMoreChildren(original.parentId!, original.pageToken)\n }}\n />\n </td>\n </tr>\n )\n }\n\n // For normal rows, render cells normally\n return (\n <tr {...rest}>\n {tableRow.getVisibleCells().map(cell => (\n <TableCellRenderer key={cell.id} {...cell} />\n ))}\n </tr>\n )\n}\n"],"mappings":";;;;;;AAcA,IAAa,KAAyD,EACpE,QACA,aACA,GAAG,QACC;CACJ,IAAM,EAAE,eAAY,wBAAqB,EAA0B;CAEnE,IAAI,CAAC,GAAU,OAAO;CAEtB,IAAM,IAAW,EAAS;CAC1B,IAAI,EAAS,YAAY;EACvB,IAAM,IAAW,EAAS,YAAY,EAAE,QAClC,IAAY,EAAW,IAAI,EAAS,QAAS;EAEnD,OACE,kBAAC,MAAD;GAAI,GAAI;aACN,kBAAC,MAAD;IAAI,SAAS;cACX,kBAAC,GAAD;KACE,OAAO,EAAS;KACL;KACX,WAAW,EAAS;KACpB,kBAAkB;MAChB,EAAiB,EAAS,UAAW,EAAS,SAAS;KACzD;IACD,CAAA;GACC,CAAA;EACF,CAAA;CAER;CAGA,OACE,kBAAC,MAAD;EAAI,GAAI;YACL,EAAS,gBAAgB,EAAE,KAAI,MAC9B,kBAAC,GAAD,EAAiC,GAAI,EAAO,GAApB,EAAK,EAAe,CAC7C;CACC,CAAA;AAER"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTreeTableView.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityTreeTableView.tsx"],"sourcesContent":["import React from 'react'\nimport { Table } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { EntityTreeTableRow } from './EntityTreeTableRow'\nimport StyledTanStackTable from '../../TanStackTable/StyledTanStackTable'\n\ntype EntityTreeTableViewProps = {\n table: Table<EntityBundleRow>\n className?: string\n}\n\nexport const EntityTreeTableView: React.FC<EntityTreeTableViewProps> = ({\n table,\n className,\n}) => {\n return (\n <div style={{ overflowX: 'auto' }}>\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{\n className,\n }}\n fullWidth={true}\n slots={{\n Tr: EntityTreeTableRow,\n }}\n />\n </div>\n )\n}\n"],"mappings":";;;;;AAWA,IAAa,KAA2D,EACtE,UACA,mBAGE,kBAAC,OAAD;CAAK,OAAO,EAAE,WAAW,QAAQ;WAC/B,kBAAC,GAAD;EACS;EACP,2BAA2B,EACzB,cACD;EACD,WAAW;EACX,OAAO,EACL,IAAI,GACL;EACD,CAAA;CACE,CAAA"}
1
+ {"version":3,"file":"EntityTreeTableView.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/EntityTreeTableView.tsx"],"sourcesContent":["import React from 'react'\nimport { Table } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { EntityTreeTableRow } from './EntityTreeTableRow'\nimport StyledTanStackTable from '../../TanStackTable/StyledTanStackTable'\n\ntype EntityTreeTableViewProps = {\n table: Table<EntityBundleRow>\n className?: string\n}\n\nexport const EntityTreeTableView: React.FC<EntityTreeTableViewProps> = ({\n table,\n className,\n}) => {\n return (\n <div style={{ overflowX: 'auto' }}>\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{\n className,\n }}\n fullWidth={true}\n slots={{\n Tr: EntityTreeTableRow,\n }}\n />\n </div>\n )\n}\n"],"mappings":";;;;;AAWA,IAAa,KAA2D,EACtE,UACA,mBAGE,kBAAC,OAAD;CAAK,OAAO,EAAE,WAAW,OAAO;WAC9B,kBAAC,GAAD;EACS;EACP,2BAA2B,EACzB,aACF;EACA,WAAW;EACX,OAAO,EACL,IAAI,EACN;CACD,CAAA;AACE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdCell.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/IdCell.tsx"],"sourcesContent":["import React from 'react'\nimport { CellContext } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { Typography } from '@mui/material'\n\nexport const IdCell: React.FC<CellContext<EntityBundleRow, unknown>> = ({\n row,\n}) => {\n const { entityId, isLoadMore } = row.original\n // Don't show anything for load more rows\n if (isLoadMore) {\n return null\n }\n return <Typography variant=\"body1\">{entityId}</Typography>\n}\n"],"mappings":";;;;AAKA,IAAa,KAA2D,EACtE,aACI;CACJ,IAAM,EAAE,aAAU,kBAAe,EAAI;AAKrC,QAHI,IACK,OAEF,kBAAC,GAAD;EAAY,SAAQ;YAAS;EAAsB,CAAA"}
1
+ {"version":3,"file":"IdCell.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/IdCell.tsx"],"sourcesContent":["import React from 'react'\nimport { CellContext } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { Typography } from '@mui/material'\n\nexport const IdCell: React.FC<CellContext<EntityBundleRow, unknown>> = ({\n row,\n}) => {\n const { entityId, isLoadMore } = row.original\n // Don't show anything for load more rows\n if (isLoadMore) {\n return null\n }\n return <Typography variant=\"body1\">{entityId}</Typography>\n}\n"],"mappings":";;;;AAKA,IAAa,KAA2D,EACtE,aACI;CACJ,IAAM,EAAE,aAAU,kBAAe,EAAI;CAKrC,OAHI,IACK,OAEF,kBAAC,GAAD;EAAY,SAAQ;YAAS;CAAqB,CAAA;AAC3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdColumnHeader.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/IdColumnHeader.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { HeaderContext } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport ColumnHeader from '../../TanStackTable/ColumnHeader'\nimport { CopyToClipboardIcon } from '../../CopyToClipboardIcon'\n\nexport const IdColumnHeader: React.FC<\n HeaderContext<EntityBundleRow, unknown>\n> = props => {\n const { table } = props\n\n // Get all visible rows and extract their entity IDs\n const visibleIds = useMemo(() => {\n const visibleRows = table.getRowModel().rows\n return visibleRows\n .filter(row => !row.original.isLoadMore && row.original.entityId) // Exclude \"Load More\" rows and rows without entityId\n .map(row => row.original.entityId)\n .join('\\n')\n }, [table.getRowModel().rows])\n\n const copyButton = <CopyToClipboardIcon value={visibleIds} sizePx={16} />\n\n return <ColumnHeader {...props} title=\"ID\" additionalButtons={copyButton} />\n}\n"],"mappings":";;;;;AAMA,IAAa,KAET,MAAS;CACX,IAAM,EAAE,aAAU,GAWZ,IAAa,kBAAC,GAAD;EAAqB,OARrB,QACG,EAAM,aAAa,CAAC,KAErC,QAAO,MAAO,CAAC,EAAI,SAAS,cAAc,EAAI,SAAS,SAAS,CAChE,KAAI,MAAO,EAAI,SAAS,SAAS,CACjC,KAAK,KAAK,EACZ,CAAC,EAAM,aAAa,CAAC,KAAK,CAEkB;EAAY,QAAQ;EAAM,CAAA;AAEzE,QAAO,kBAAC,GAAD;EAAc,GAAI;EAAO,OAAM;EAAK,mBAAmB;EAAc,CAAA"}
1
+ {"version":3,"file":"IdColumnHeader.js","names":[],"sources":["../../../../src/components/EntityTreeTable/components/IdColumnHeader.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { HeaderContext } from '@tanstack/react-table'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport ColumnHeader from '../../TanStackTable/ColumnHeader'\nimport { CopyToClipboardIcon } from '../../CopyToClipboardIcon'\n\nexport const IdColumnHeader: React.FC<\n HeaderContext<EntityBundleRow, unknown>\n> = props => {\n const { table } = props\n\n // Get all visible rows and extract their entity IDs\n const visibleIds = useMemo(() => {\n const visibleRows = table.getRowModel().rows\n return visibleRows\n .filter(row => !row.original.isLoadMore && row.original.entityId) // Exclude \"Load More\" rows and rows without entityId\n .map(row => row.original.entityId)\n .join('\\n')\n }, [table.getRowModel().rows])\n\n const copyButton = <CopyToClipboardIcon value={visibleIds} sizePx={16} />\n\n return <ColumnHeader {...props} title=\"ID\" additionalButtons={copyButton} />\n}\n"],"mappings":";;;;;AAMA,IAAa,KAET,MAAS;CACX,IAAM,EAAE,aAAU,GAWZ,IAAa,kBAAC,GAAD;EAAqB,OARrB,QACG,EAAM,YAAY,EAAE,KAErC,QAAO,MAAO,CAAC,EAAI,SAAS,cAAc,EAAI,SAAS,QAAQ,EAC/D,KAAI,MAAO,EAAI,SAAS,QAAQ,EAChC,KAAK,IAAI,GACX,CAAC,EAAM,YAAY,EAAE,IAAI,CAEmB;EAAY,QAAQ;CAAK,CAAA;CAExE,OAAO,kBAAC,GAAD;EAAc,GAAI;EAAO,OAAM;EAAK,mBAAmB;CAAa,CAAA;AAC7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityTreeState.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useEntityTreeState.ts"],"sourcesContent":["import { useState, useCallback, useEffect, useMemo } from 'react'\nimport { SortingState } from '@tanstack/react-table'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { matchQuery } from '@tanstack/query-core'\nimport {\n EntityChildrenRequest,\n EntityHeader,\n SortBy,\n Direction,\n} from '@sage-bionetworks/synapse-types'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { useGetEntityHeader } from '@/synapse-queries'\nimport { useGetEntityChildren } from '@/synapse-queries/entity/useGetEntityChildren'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\n\nexport type TreeNode = {\n entityHeader: EntityHeader\n parentId?: string\n depth: number\n isLeaf: boolean\n children?: TreeNode[]\n}\n\nconst includeTypes: EntityType[] = [\n EntityType.folder,\n EntityType.file,\n EntityType.link,\n EntityType.recordset,\n]\n\n/**\n * Hook that manages all tree state and data initialization.\n */\nexport const useEntityTreeState = (\n rootId: string,\n expandRootByDefault: boolean,\n showRootNode: boolean,\n) => {\n // Core state\n const [expanded, setExpanded] = useState<Record<string, boolean>>({})\n const [tree, setTree] = useState<Record<string, TreeNode>>({})\n const [loadingIds, setLoadingIds] = useState<Set<string>>(new Set())\n const [loadedChildren, setLoadedChildren] = useState<Set<string>>(new Set())\n const [nextPageTokens, setNextPageTokens] = useState<\n Record<string, string | undefined>\n >({})\n const [loadingPageTokens, setLoadingPageTokens] = useState<\n Record<string, string | undefined>\n >({})\n const [sorting, setSorting] = useState<SortingState>([])\n const queryClient = useQueryClient()\n const { keyFactory } = useSynapseContext()\n const rootEntityQueryKey = useMemo(\n () => keyFactory.getEntityQueryKey(rootId),\n [keyFactory, rootId],\n )\n\n // Derive sorting parameters from state\n const { sortBy, sortDirection } = useMemo(() => {\n if (!sorting.length) return {}\n\n const firstSort = sorting[0]\n let sortBy: SortBy | undefined\n\n switch (firstSort.id) {\n case 'name':\n sortBy = SortBy.NAME\n break\n case 'createdOn':\n sortBy = SortBy.CREATED_ON\n break\n case 'modifiedOn':\n sortBy = SortBy.MODIFIED_ON\n break\n default:\n return {}\n }\n\n return {\n sortBy,\n sortDirection: firstSort.desc ? Direction.DESC : Direction.ASC,\n }\n }, [sorting])\n\n const rootChildrenRequest: EntityChildrenRequest = useMemo(() => {\n const baseRequest: EntityChildrenRequest = {\n parentId: rootId,\n includeTypes,\n sortBy,\n sortDirection,\n }\n\n return baseRequest\n }, [rootId, sortBy, sortDirection])\n\n const rootChildrenQueryKey = useMemo(\n () => keyFactory.getEntityChildrenQueryKey(rootChildrenRequest, false),\n [keyFactory, rootChildrenRequest],\n )\n\n // Reset tree data when sorting changes\n const resetTreeData = useCallback(() => {\n void queryClient.removeQueries({\n queryKey: rootChildrenQueryKey,\n exact: true,\n })\n\n setTree({})\n setLoadedChildren(new Set())\n setExpanded({})\n setNextPageTokens({})\n setLoadingPageTokens({})\n setLoadingIds(new Set())\n }, [queryClient, rootChildrenQueryKey])\n\n // Get root entity header\n const { data: rootHeader } = useGetEntityHeader(rootId)\n // Get root children - only fetch when we have header and haven't loaded children yet\n const shouldFetchChildren = !!rootHeader && !loadedChildren.has(rootId)\n const { data: rootChildren } = useGetEntityChildren(rootChildrenRequest, {\n enabled: shouldFetchChildren,\n })\n\n // Effect to reset data when sorting changes\n useEffect(() => {\n resetTreeData()\n }, [resetTreeData, sorting])\n\n useEffect(() => {\n const unsubscribe = queryClient.getQueryCache().subscribe(event => {\n if (event?.type === 'updated' && event.action?.type === 'invalidate') {\n // Check if any entity in the tree was invalidated\n const entityIds = Object.keys(tree)\n for (const entityId of entityIds) {\n const entityQueryKey = keyFactory.getEntityQueryKey(entityId)\n if (\n matchQuery({ queryKey: entityQueryKey, exact: false }, event.query)\n ) {\n resetTreeData()\n return\n }\n }\n }\n })\n\n return () => {\n unsubscribe()\n }\n }, [queryClient, rootEntityQueryKey, resetTreeData, tree, keyFactory])\n\n // Effect to initialize root node and its children\n useEffect(() => {\n if (rootHeader && rootChildren && !tree[rootId]) {\n // Build the children nodes from the response\n const children: TreeNode[] = rootChildren.page.map(\n (eh: EntityHeader) => ({\n entityHeader: eh,\n parentId: rootId,\n depth: showRootNode ? 1 : 0,\n isLeaf: !(\n convertToEntityType(eh.type) === EntityType.project ||\n convertToEntityType(eh.type) === EntityType.folder\n ),\n }),\n )\n\n // Create child entries for the tree\n const childEntries = Object.fromEntries(\n children.map(child => [child.entityHeader.id, child]),\n )\n\n // Set up the complete tree state in one go\n setTree({\n [rootId]: {\n entityHeader: rootHeader,\n depth: showRootNode ? 0 : -1,\n isLeaf: false,\n children,\n },\n ...childEntries,\n })\n\n // Set up pagination token\n const rootNext = rootChildren.nextPageToken\n setNextPageTokens({ [rootId]: rootNext })\n\n // Mark as loaded if there's no next page token\n if (!rootNext) {\n setLoadedChildren(new Set([rootId]))\n }\n\n // Expand root node by default if the flag is set\n if (expandRootByDefault) {\n setExpanded(prev => ({ ...prev, [rootId]: true }))\n }\n }\n }, [\n rootHeader,\n rootChildren,\n rootId,\n expandRootByDefault,\n showRootNode,\n tree,\n ])\n\n return {\n // State\n expanded,\n setExpanded,\n tree,\n setTree,\n loadingIds,\n setLoadingIds,\n loadedChildren,\n setLoadedChildren,\n nextPageTokens,\n setNextPageTokens,\n loadingPageTokens,\n setLoadingPageTokens,\n sorting,\n setSorting,\n\n // Derived values\n sortBy,\n sortDirection,\n\n // Data\n rootHeader,\n rootChildren,\n\n // Actions\n resetTreeData,\n }\n}\n"],"mappings":";;;;;;;;;;;AAwBA,IAAM,IAA6B;CACjC,EAAW;CACX,EAAW;CACX,EAAW;CACX,EAAW;CACZ,EAKY,KACX,GACA,GACA,MACG;CAEH,IAAM,CAAC,GAAU,KAAe,EAAkC,EAAE,CAAC,EAC/D,CAAC,GAAM,KAAW,EAAmC,EAAE,CAAC,EACxD,CAAC,GAAY,KAAiB,kBAAsB,IAAI,KAAK,CAAC,EAC9D,CAAC,GAAgB,KAAqB,kBAAsB,IAAI,KAAK,CAAC,EACtE,CAAC,GAAgB,KAAqB,EAE1C,EAAE,CAAC,EACC,CAAC,GAAmB,KAAwB,EAEhD,EAAE,CAAC,EACC,CAAC,GAAS,KAAc,EAAuB,EAAE,CAAC,EAClD,IAAc,GAAgB,EAC9B,EAAE,kBAAe,GAAmB,EACpC,IAAqB,QACnB,EAAW,kBAAkB,EAAO,EAC1C,CAAC,GAAY,EAAO,CACrB,EAGK,EAAE,WAAQ,qBAAkB,QAAc;AAC9C,MAAI,CAAC,EAAQ,OAAQ,QAAO,EAAE;EAE9B,IAAM,IAAY,EAAQ,IACtB;AAEJ,UAAQ,EAAU,IAAlB;GACE,KAAK;AACH,QAAS,EAAO;AAChB;GACF,KAAK;AACH,QAAS,EAAO;AAChB;GACF,KAAK;AACH,QAAS,EAAO;AAChB;GACF,QACE,QAAO,EAAE;;AAGb,SAAO;GACL;GACA,eAAe,EAAU,OAAO,EAAU,OAAO,EAAU;GAC5D;IACA,CAAC,EAAQ,CAAC,EAEP,IAA6C,SAQ1C;EANL,UAAU;EACV;EACA;EACA;EAGK,GACN;EAAC;EAAQ;EAAQ;EAAc,CAAC,EAE7B,IAAuB,QACrB,EAAW,0BAA0B,GAAqB,GAAM,EACtE,CAAC,GAAY,EAAoB,CAClC,EAGK,IAAgB,QAAkB;AAWtC,EAVK,EAAY,cAAc;GAC7B,UAAU;GACV,OAAO;GACR,CAAC,EAEF,EAAQ,EAAE,CAAC,EACX,kBAAkB,IAAI,KAAK,CAAC,EAC5B,EAAY,EAAE,CAAC,EACf,EAAkB,EAAE,CAAC,EACrB,EAAqB,EAAE,CAAC,EACxB,kBAAc,IAAI,KAAK,CAAC;IACvB,CAAC,GAAa,EAAqB,CAAC,EAGjC,EAAE,MAAM,MAAe,EAAmB,EAAO,EAGjD,EAAE,MAAM,MAAiB,EAAqB,GAAqB,EACvE,SAF0B,CAAC,CAAC,KAAc,CAAC,EAAe,IAAI,EAAO,EAGtE,CAAC;AAoFF,QAjFA,QAAgB;AACd,KAAe;IACd,CAAC,GAAe,EAAQ,CAAC,EAE5B,QAAgB;EACd,IAAM,IAAc,EAAY,eAAe,CAAC,WAAU,MAAS;AACjE,OAAI,GAAO,SAAS,aAAa,EAAM,QAAQ,SAAS,cAAc;IAEpE,IAAM,IAAY,OAAO,KAAK,EAAK;AACnC,SAAK,IAAM,KAAY,EAErB,KACE,EAAW;KAAE,UAFQ,EAAW,kBAAkB,EAE3B;KAAgB,OAAO;KAAO,EAAE,EAAM,MAAM,EACnE;AACA,QAAe;AACf;;;IAIN;AAEF,eAAa;AACX,MAAa;;IAEd;EAAC;EAAa;EAAoB;EAAe;EAAM;EAAW,CAAC,EAGtE,QAAgB;AACd,MAAI,KAAc,KAAgB,CAAC,EAAK,IAAS;GAE/C,IAAM,IAAuB,EAAa,KAAK,KAC5C,OAAsB;IACrB,cAAc;IACd,UAAU;IACV,OAAO;IACP,QAAQ,EACN,EAAoB,EAAG,KAAK,KAAK,EAAW,WAC5C,EAAoB,EAAG,KAAK,KAAK,EAAW;IAE/C,EACF,EAGK,IAAe,OAAO,YAC1B,EAAS,KAAI,MAAS,CAAC,EAAM,aAAa,IAAI,EAAM,CAAC,CACtD;AAGD,KAAQ;KACL,IAAS;KACR,cAAc;KACd,OAAO,IAAe,IAAI;KAC1B,QAAQ;KACR;KACD;IACD,GAAG;IACJ,CAAC;GAGF,IAAM,IAAW,EAAa;AAS9B,GARA,EAAkB,GAAG,IAAS,GAAU,CAAC,EAGpC,KACH,EAAkB,IAAI,IAAI,CAAC,EAAO,CAAC,CAAC,EAIlC,KACF,GAAY,OAAS;IAAE,GAAG;KAAO,IAAS;IAAM,EAAE;;IAGrD;EACD;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EAEK;EAEL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EAGA;EACD"}
1
+ {"version":3,"file":"useEntityTreeState.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useEntityTreeState.ts"],"sourcesContent":["import { useState, useCallback, useEffect, useMemo } from 'react'\nimport { SortingState } from '@tanstack/react-table'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { matchQuery } from '@tanstack/query-core'\nimport {\n EntityChildrenRequest,\n EntityHeader,\n SortBy,\n Direction,\n} from '@sage-bionetworks/synapse-types'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { useGetEntityHeader } from '@/synapse-queries'\nimport { useGetEntityChildren } from '@/synapse-queries/entity/useGetEntityChildren'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\n\nexport type TreeNode = {\n entityHeader: EntityHeader\n parentId?: string\n depth: number\n isLeaf: boolean\n children?: TreeNode[]\n}\n\nconst includeTypes: EntityType[] = [\n EntityType.folder,\n EntityType.file,\n EntityType.link,\n EntityType.recordset,\n]\n\n/**\n * Hook that manages all tree state and data initialization.\n */\nexport const useEntityTreeState = (\n rootId: string,\n expandRootByDefault: boolean,\n showRootNode: boolean,\n) => {\n // Core state\n const [expanded, setExpanded] = useState<Record<string, boolean>>({})\n const [tree, setTree] = useState<Record<string, TreeNode>>({})\n const [loadingIds, setLoadingIds] = useState<Set<string>>(new Set())\n const [loadedChildren, setLoadedChildren] = useState<Set<string>>(new Set())\n const [nextPageTokens, setNextPageTokens] = useState<\n Record<string, string | undefined>\n >({})\n const [loadingPageTokens, setLoadingPageTokens] = useState<\n Record<string, string | undefined>\n >({})\n const [sorting, setSorting] = useState<SortingState>([])\n const queryClient = useQueryClient()\n const { keyFactory } = useSynapseContext()\n const rootEntityQueryKey = useMemo(\n () => keyFactory.getEntityQueryKey(rootId),\n [keyFactory, rootId],\n )\n\n // Derive sorting parameters from state\n const { sortBy, sortDirection } = useMemo(() => {\n if (!sorting.length) return {}\n\n const firstSort = sorting[0]\n let sortBy: SortBy | undefined\n\n switch (firstSort.id) {\n case 'name':\n sortBy = SortBy.NAME\n break\n case 'createdOn':\n sortBy = SortBy.CREATED_ON\n break\n case 'modifiedOn':\n sortBy = SortBy.MODIFIED_ON\n break\n default:\n return {}\n }\n\n return {\n sortBy,\n sortDirection: firstSort.desc ? Direction.DESC : Direction.ASC,\n }\n }, [sorting])\n\n const rootChildrenRequest: EntityChildrenRequest = useMemo(() => {\n const baseRequest: EntityChildrenRequest = {\n parentId: rootId,\n includeTypes,\n sortBy,\n sortDirection,\n }\n\n return baseRequest\n }, [rootId, sortBy, sortDirection])\n\n const rootChildrenQueryKey = useMemo(\n () => keyFactory.getEntityChildrenQueryKey(rootChildrenRequest, false),\n [keyFactory, rootChildrenRequest],\n )\n\n // Reset tree data when sorting changes\n const resetTreeData = useCallback(() => {\n void queryClient.removeQueries({\n queryKey: rootChildrenQueryKey,\n exact: true,\n })\n\n setTree({})\n setLoadedChildren(new Set())\n setExpanded({})\n setNextPageTokens({})\n setLoadingPageTokens({})\n setLoadingIds(new Set())\n }, [queryClient, rootChildrenQueryKey])\n\n // Get root entity header\n const { data: rootHeader } = useGetEntityHeader(rootId)\n // Get root children - only fetch when we have header and haven't loaded children yet\n const shouldFetchChildren = !!rootHeader && !loadedChildren.has(rootId)\n const { data: rootChildren } = useGetEntityChildren(rootChildrenRequest, {\n enabled: shouldFetchChildren,\n })\n\n // Effect to reset data when sorting changes\n useEffect(() => {\n resetTreeData()\n }, [resetTreeData, sorting])\n\n useEffect(() => {\n const unsubscribe = queryClient.getQueryCache().subscribe(event => {\n if (event?.type === 'updated' && event.action?.type === 'invalidate') {\n // Check if any entity in the tree was invalidated\n const entityIds = Object.keys(tree)\n for (const entityId of entityIds) {\n const entityQueryKey = keyFactory.getEntityQueryKey(entityId)\n if (\n matchQuery({ queryKey: entityQueryKey, exact: false }, event.query)\n ) {\n resetTreeData()\n return\n }\n }\n }\n })\n\n return () => {\n unsubscribe()\n }\n }, [queryClient, rootEntityQueryKey, resetTreeData, tree, keyFactory])\n\n // Effect to initialize root node and its children\n useEffect(() => {\n if (rootHeader && rootChildren && !tree[rootId]) {\n // Build the children nodes from the response\n const children: TreeNode[] = rootChildren.page.map(\n (eh: EntityHeader) => ({\n entityHeader: eh,\n parentId: rootId,\n depth: showRootNode ? 1 : 0,\n isLeaf: !(\n convertToEntityType(eh.type) === EntityType.project ||\n convertToEntityType(eh.type) === EntityType.folder\n ),\n }),\n )\n\n // Create child entries for the tree\n const childEntries = Object.fromEntries(\n children.map(child => [child.entityHeader.id, child]),\n )\n\n // Set up the complete tree state in one go\n setTree({\n [rootId]: {\n entityHeader: rootHeader,\n depth: showRootNode ? 0 : -1,\n isLeaf: false,\n children,\n },\n ...childEntries,\n })\n\n // Set up pagination token\n const rootNext = rootChildren.nextPageToken\n setNextPageTokens({ [rootId]: rootNext })\n\n // Mark as loaded if there's no next page token\n if (!rootNext) {\n setLoadedChildren(new Set([rootId]))\n }\n\n // Expand root node by default if the flag is set\n if (expandRootByDefault) {\n setExpanded(prev => ({ ...prev, [rootId]: true }))\n }\n }\n }, [\n rootHeader,\n rootChildren,\n rootId,\n expandRootByDefault,\n showRootNode,\n tree,\n ])\n\n return {\n // State\n expanded,\n setExpanded,\n tree,\n setTree,\n loadingIds,\n setLoadingIds,\n loadedChildren,\n setLoadedChildren,\n nextPageTokens,\n setNextPageTokens,\n loadingPageTokens,\n setLoadingPageTokens,\n sorting,\n setSorting,\n\n // Derived values\n sortBy,\n sortDirection,\n\n // Data\n rootHeader,\n rootChildren,\n\n // Actions\n resetTreeData,\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableColumns.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useTableColumns.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ColumnDef } from '@tanstack/react-table'\nimport { useTheme, useMediaQuery } from '@mui/material'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { NameCell } from '../components/EntityNameCell'\nimport { IdCell } from '../components/IdCell'\nimport { IdColumnHeader } from '../components/IdColumnHeader'\nimport { ModifiedOnCell } from '../../EntityFinder/details/view/table/ModifiedOnCell'\nimport { ModifiedByCell } from '../../EntityFinder/details/view/table/ModifiedByCell'\nimport { CreatedOnCell } from '../../EntityFinder/details/view/table/CreatedOnCell'\nimport { FileEntitySizeCell } from '../../EntityFinder/details/view/table/FileEntitySizeCell'\nimport { FileEntityMD5Cell } from '../../EntityFinder/details/view/table/FileEntityMD5Cell'\nimport { AddFileToDownloadListCell } from '../../EntityFinder/details/view/table/AddToDownloadListCell'\nimport {\n NameColumnHeader,\n CreatedOnColumnHeader,\n ModifiedOnColumnHeader,\n} from '../components/ColumnHeaders'\nimport { EntityBadgeIconsCell } from '../components/EntityBadgeIconsCell'\n\nexport const useTableColumns = (enableSorting: boolean) => {\n // Responsive design hooks\n const theme = useTheme()\n const isXtraLarge = useMediaQuery(theme.breakpoints.up('xl'))\n const isMediumAndUp = useMediaQuery(theme.breakpoints.up('md'))\n\n // Table columns\n const columns = useMemo<ColumnDef<EntityBundleRow>[]>(() => {\n const baseColumns: ColumnDef<EntityBundleRow>[] = [\n {\n accessorKey: 'entityHeader.name',\n id: 'name',\n header: NameColumnHeader,\n cell: NameCell,\n enableSorting: enableSorting,\n size: 450, // Default width for Name column\n },\n ]\n if (isMediumAndUp) {\n baseColumns.push({\n id: 'badges',\n header: '',\n cell: EntityBadgeIconsCell,\n enableSorting: false,\n size: 120, // Default width for Badges column\n })\n baseColumns.push({\n id: 'id',\n header: IdColumnHeader,\n cell: IdCell,\n enableSorting: false,\n })\n }\n if (isXtraLarge) {\n baseColumns.push({\n accessorKey: 'entityHeader.createdOn',\n id: 'createdOn',\n header: CreatedOnColumnHeader,\n cell: CreatedOnCell,\n enableSorting: enableSorting,\n })\n }\n\n if (isMediumAndUp) {\n baseColumns.push({\n accessorKey: 'entityHeader.modifiedOn',\n id: 'modifiedOn',\n header: ModifiedOnColumnHeader,\n cell: ModifiedOnCell,\n enableSorting: enableSorting,\n })\n }\n\n if (isXtraLarge) {\n baseColumns.push({\n id: 'modifiedBy',\n header: 'Modified By',\n cell: ModifiedByCell,\n enableSorting: false,\n })\n }\n\n if (isMediumAndUp) {\n baseColumns.push({\n id: 'size',\n header: 'Size',\n cell: FileEntitySizeCell,\n enableSorting: false,\n })\n }\n if (isXtraLarge) {\n baseColumns.push({\n id: 'md5',\n header: 'MD5',\n cell: FileEntityMD5Cell,\n enableSorting: false,\n })\n }\n\n baseColumns.push({\n id: 'download',\n header: 'Download',\n cell: AddFileToDownloadListCell,\n enableSorting: false,\n size: 90,\n })\n\n return baseColumns\n }, [enableSorting, isXtraLarge, isMediumAndUp])\n\n return columns\n}\n"],"mappings":";;;;;;;;;;;;;;AAoBA,IAAa,KAAmB,MAA2B;CAEzD,IAAM,IAAQ,GAAU,EAClB,IAAc,EAAc,EAAM,YAAY,GAAG,KAAK,CAAC,EACvD,IAAgB,EAAc,EAAM,YAAY,GAAG,KAAK,CAAC;AAsF/D,QAnFgB,QAA4C;EAC1D,IAAM,IAA4C,CAChD;GACE,aAAa;GACb,IAAI;GACJ,QAAQ;GACR,MAAM;GACS;GACf,MAAM;GACP,CACF;AAsED,SArEI,MACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GACf,MAAM;GACP,CAAC,EACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GAChB,CAAC,GAEA,KACF,EAAY,KAAK;GACf,aAAa;GACb,IAAI;GACJ,QAAQ;GACR,MAAM;GACS;GAChB,CAAC,EAGA,KACF,EAAY,KAAK;GACf,aAAa;GACb,IAAI;GACJ,QAAQ;GACR,MAAM;GACS;GAChB,CAAC,EAGA,KACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GAChB,CAAC,EAGA,KACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GAChB,CAAC,EAEA,KACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GAChB,CAAC,EAGJ,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GACf,MAAM;GACP,CAAC,EAEK;IACN;EAAC;EAAe;EAAa;EAAc,CAEvC"}
1
+ {"version":3,"file":"useTableColumns.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useTableColumns.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ColumnDef } from '@tanstack/react-table'\nimport { useTheme, useMediaQuery } from '@mui/material'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { NameCell } from '../components/EntityNameCell'\nimport { IdCell } from '../components/IdCell'\nimport { IdColumnHeader } from '../components/IdColumnHeader'\nimport { ModifiedOnCell } from '../../EntityFinder/details/view/table/ModifiedOnCell'\nimport { ModifiedByCell } from '../../EntityFinder/details/view/table/ModifiedByCell'\nimport { CreatedOnCell } from '../../EntityFinder/details/view/table/CreatedOnCell'\nimport { FileEntitySizeCell } from '../../EntityFinder/details/view/table/FileEntitySizeCell'\nimport { FileEntityMD5Cell } from '../../EntityFinder/details/view/table/FileEntityMD5Cell'\nimport { AddFileToDownloadListCell } from '../../EntityFinder/details/view/table/AddToDownloadListCell'\nimport {\n NameColumnHeader,\n CreatedOnColumnHeader,\n ModifiedOnColumnHeader,\n} from '../components/ColumnHeaders'\nimport { EntityBadgeIconsCell } from '../components/EntityBadgeIconsCell'\n\nexport const useTableColumns = (enableSorting: boolean) => {\n // Responsive design hooks\n const theme = useTheme()\n const isXtraLarge = useMediaQuery(theme.breakpoints.up('xl'))\n const isMediumAndUp = useMediaQuery(theme.breakpoints.up('md'))\n\n // Table columns\n const columns = useMemo<ColumnDef<EntityBundleRow>[]>(() => {\n const baseColumns: ColumnDef<EntityBundleRow>[] = [\n {\n accessorKey: 'entityHeader.name',\n id: 'name',\n header: NameColumnHeader,\n cell: NameCell,\n enableSorting: enableSorting,\n size: 450, // Default width for Name column\n },\n ]\n if (isMediumAndUp) {\n baseColumns.push({\n id: 'badges',\n header: '',\n cell: EntityBadgeIconsCell,\n enableSorting: false,\n size: 120, // Default width for Badges column\n })\n baseColumns.push({\n id: 'id',\n header: IdColumnHeader,\n cell: IdCell,\n enableSorting: false,\n })\n }\n if (isXtraLarge) {\n baseColumns.push({\n accessorKey: 'entityHeader.createdOn',\n id: 'createdOn',\n header: CreatedOnColumnHeader,\n cell: CreatedOnCell,\n enableSorting: enableSorting,\n })\n }\n\n if (isMediumAndUp) {\n baseColumns.push({\n accessorKey: 'entityHeader.modifiedOn',\n id: 'modifiedOn',\n header: ModifiedOnColumnHeader,\n cell: ModifiedOnCell,\n enableSorting: enableSorting,\n })\n }\n\n if (isXtraLarge) {\n baseColumns.push({\n id: 'modifiedBy',\n header: 'Modified By',\n cell: ModifiedByCell,\n enableSorting: false,\n })\n }\n\n if (isMediumAndUp) {\n baseColumns.push({\n id: 'size',\n header: 'Size',\n cell: FileEntitySizeCell,\n enableSorting: false,\n })\n }\n if (isXtraLarge) {\n baseColumns.push({\n id: 'md5',\n header: 'MD5',\n cell: FileEntityMD5Cell,\n enableSorting: false,\n })\n }\n\n baseColumns.push({\n id: 'download',\n header: 'Download',\n cell: AddFileToDownloadListCell,\n enableSorting: false,\n size: 90,\n })\n\n return baseColumns\n }, [enableSorting, isXtraLarge, isMediumAndUp])\n\n return columns\n}\n"],"mappings":";;;;;;;;;;;;;;AAoBA,IAAa,KAAmB,MAA2B;CAEzD,IAAM,IAAQ,EAAS,GACjB,IAAc,EAAc,EAAM,YAAY,GAAG,IAAI,CAAC,GACtD,IAAgB,EAAc,EAAM,YAAY,GAAG,IAAI,CAAC;CAsF9D,OAnFgB,QAA4C;EAC1D,IAAM,IAA4C,CAChD;GACE,aAAa;GACb,IAAI;GACJ,QAAQ;GACR,MAAM;GACS;GACf,MAAM;EACR,CACF;EAsEA,OArEI,MACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GACf,MAAM;EACR,CAAC,GACD,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;EACjB,CAAC,IAEC,KACF,EAAY,KAAK;GACf,aAAa;GACb,IAAI;GACJ,QAAQ;GACR,MAAM;GACS;EACjB,CAAC,GAGC,KACF,EAAY,KAAK;GACf,aAAa;GACb,IAAI;GACJ,QAAQ;GACR,MAAM;GACS;EACjB,CAAC,GAGC,KACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;EACjB,CAAC,GAGC,KACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;EACjB,CAAC,GAEC,KACF,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;EACjB,CAAC,GAGH,EAAY,KAAK;GACf,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,eAAe;GACf,MAAM;EACR,CAAC,GAEM;CACT,GAAG;EAAC;EAAe;EAAa;CAAa,CAEtC;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableData.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useTableData.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { TreeNode } from './useEntityTreeState'\n\nexport const useTableData = (\n tree: Record<string, TreeNode>,\n rootId: string,\n showRootNode: boolean,\n expanded: Record<string, boolean>,\n nextPageTokens: Record<string, string | undefined>,\n flattenTree: (nodeId: string, visited?: Set<string>) => EntityBundleRow[],\n) => {\n const rows: EntityBundleRow[] = useMemo(() => {\n const rootNode = tree[rootId]\n if (!rootNode) return []\n\n if (showRootNode) {\n return flattenTree(rootId, new Set<string>())\n } else {\n // If root node is not shown, start with its children\n const rows: EntityBundleRow[] = []\n if (expanded[rootId] && rootNode.children) {\n rootNode.children.forEach(child => {\n const childRows = flattenTree(\n child.entityHeader.id,\n new Set<string>(),\n )\n rows.push(...childRows)\n })\n // If there is a next page token for the root, add a synthetic 'Load more' row\n const nextToken = nextPageTokens[rootId]\n if (nextToken) {\n rows.push({\n entityId: '', // Empty placeholder for load more rows\n entityHeader: rootNode.entityHeader,\n depth: 0,\n isLeaf: true,\n parentId: rootId,\n versionNumber: rootNode.entityHeader.versionNumber,\n isLoadMore: true,\n pageToken: nextToken,\n })\n }\n }\n return rows\n }\n }, [tree, rootId, flattenTree, showRootNode, expanded, nextPageTokens])\n\n return rows\n}\n"],"mappings":";;AAIA,IAAa,KACX,GACA,GACA,GACA,GACA,GACA,MAEgC,QAAc;CAC5C,IAAM,IAAW,EAAK;AACtB,KAAI,CAAC,EAAU,QAAO,EAAE;AAExB,KAAI,EACF,QAAO,EAAY,mBAAQ,IAAI,KAAa,CAAC;CACxC;EAEL,IAAM,IAA0B,EAAE;AAClC,MAAI,EAAS,MAAW,EAAS,UAAU;AACzC,KAAS,SAAS,SAAQ,MAAS;IACjC,IAAM,IAAY,EAChB,EAAM,aAAa,oBACnB,IAAI,KAAa,CAClB;AACD,MAAK,KAAK,GAAG,EAAU;KACvB;GAEF,IAAM,IAAY,EAAe;AACjC,GAAI,KACF,EAAK,KAAK;IACR,UAAU;IACV,cAAc,EAAS;IACvB,OAAO;IACP,QAAQ;IACR,UAAU;IACV,eAAe,EAAS,aAAa;IACrC,YAAY;IACZ,WAAW;IACZ,CAAC;;AAGN,SAAO;;GAER;CAAC;CAAM;CAAQ;CAAa;CAAc;CAAU;CAAe,CAE/D"}
1
+ {"version":3,"file":"useTableData.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useTableData.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { TreeNode } from './useEntityTreeState'\n\nexport const useTableData = (\n tree: Record<string, TreeNode>,\n rootId: string,\n showRootNode: boolean,\n expanded: Record<string, boolean>,\n nextPageTokens: Record<string, string | undefined>,\n flattenTree: (nodeId: string, visited?: Set<string>) => EntityBundleRow[],\n) => {\n const rows: EntityBundleRow[] = useMemo(() => {\n const rootNode = tree[rootId]\n if (!rootNode) return []\n\n if (showRootNode) {\n return flattenTree(rootId, new Set<string>())\n } else {\n // If root node is not shown, start with its children\n const rows: EntityBundleRow[] = []\n if (expanded[rootId] && rootNode.children) {\n rootNode.children.forEach(child => {\n const childRows = flattenTree(\n child.entityHeader.id,\n new Set<string>(),\n )\n rows.push(...childRows)\n })\n // If there is a next page token for the root, add a synthetic 'Load more' row\n const nextToken = nextPageTokens[rootId]\n if (nextToken) {\n rows.push({\n entityId: '', // Empty placeholder for load more rows\n entityHeader: rootNode.entityHeader,\n depth: 0,\n isLeaf: true,\n parentId: rootId,\n versionNumber: rootNode.entityHeader.versionNumber,\n isLoadMore: true,\n pageToken: nextToken,\n })\n }\n }\n return rows\n }\n }, [tree, rootId, flattenTree, showRootNode, expanded, nextPageTokens])\n\n return rows\n}\n"],"mappings":";;AAIA,IAAa,KACX,GACA,GACA,GACA,GACA,GACA,MAEgC,QAAc;CAC5C,IAAM,IAAW,EAAK;CACtB,IAAI,CAAC,GAAU,OAAO,CAAC;CAEvB,IAAI,GACF,OAAO,EAAY,mBAAQ,IAAI,IAAY,CAAC;CACvC;EAEL,IAAM,IAA0B,CAAC;EACjC,IAAI,EAAS,MAAW,EAAS,UAAU;GACzC,EAAS,SAAS,SAAQ,MAAS;IACjC,IAAM,IAAY,EAChB,EAAM,aAAa,oBACnB,IAAI,IAAY,CAClB;IACA,EAAK,KAAK,GAAG,CAAS;GACxB,CAAC;GAED,IAAM,IAAY,EAAe;GACjC,AAAI,KACF,EAAK,KAAK;IACR,UAAU;IACV,cAAc,EAAS;IACvB,OAAO;IACP,QAAQ;IACR,UAAU;IACV,eAAe,EAAS,aAAa;IACrC,YAAY;IACZ,WAAW;GACb,CAAC;EAEL;EACA,OAAO;CACT;AACF,GAAG;CAAC;CAAM;CAAQ;CAAa;CAAc;CAAU;AAAc,CAE9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTreeOperationsWithDirectFetch.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { TreeNode } from './useEntityTreeState'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport SynapseClient from '@/synapse-client'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n EntityHeader,\n SortBy,\n Direction,\n} from '@sage-bionetworks/synapse-types'\nimport {\n convertToEntityType,\n isContainerType,\n} from '@/utils/functions/EntityTypeUtils'\nimport { omit } from 'lodash-es'\n\nconst includeTypes: EntityType[] = [\n EntityType.folder,\n EntityType.file,\n EntityType.link,\n EntityType.recordset,\n]\n\nexport const useTreeOperationsWithDirectFetch = (\n expanded: Record<string, boolean>,\n setExpanded: (value: React.SetStateAction<Record<string, boolean>>) => void,\n tree: Record<string, TreeNode>,\n setTree: (value: React.SetStateAction<Record<string, TreeNode>>) => void,\n loadedChildren: Set<string>,\n setLoadedChildren: (value: React.SetStateAction<Set<string>>) => void,\n loadingIds: Set<string>,\n setLoadingIds: (value: React.SetStateAction<Set<string>>) => void,\n setNextPageTokens: (\n value: React.SetStateAction<Record<string, string | undefined>>,\n ) => void,\n setLoadingPageTokens: (\n value: React.SetStateAction<Record<string, string | undefined>>,\n ) => void,\n loadingPageTokens: Record<string, string | undefined>,\n nextPageTokens: Record<string, string | undefined>,\n sortBy?: SortBy,\n sortDirection?: Direction,\n) => {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n // Helper function to convert EntityHeaders to TreeNodes\n const createTreeNodes = useCallback(\n (\n entityHeaders: EntityHeader[],\n parentId: string,\n parentDepth: number,\n ): TreeNode[] => {\n return entityHeaders.map((eh: EntityHeader) => ({\n entityHeader: eh,\n parentId,\n depth: parentDepth + 1,\n isLeaf: !isContainerType(convertToEntityType(eh.type)),\n }))\n },\n [],\n )\n\n // Helper function to clean up loading state on error\n const cleanupLoadingState = useCallback(\n (entityId: string, pageToken?: string) => {\n setLoadingIds(prev => {\n const next = new Set(prev)\n next.delete(entityId)\n return next\n })\n\n if (pageToken !== undefined) {\n setLoadingPageTokens(prev => {\n return omit(prev, [entityId])\n })\n }\n },\n [setLoadingIds, setLoadingPageTokens],\n )\n\n // Helper function to fetch entity children\n const fetchEntityChildren = useCallback(\n async (entityId: string, pageToken?: string) => {\n const entityChildrenRequest = {\n parentId: entityId,\n includeTypes,\n ...(pageToken && { nextPageToken: pageToken }),\n sortBy,\n sortDirection,\n }\n\n return await queryClient.fetchQuery({\n queryKey: keyFactory.getEntityChildrenQueryKey(\n entityChildrenRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getEntityChildren(entityChildrenRequest, accessToken),\n })\n },\n [queryClient, keyFactory, accessToken, sortBy, sortDirection],\n )\n\n // Callback to handle when children are loaded - moved before handleToggleExpanded to fix dependency order\n const handleChildrenLoaded = useCallback(\n (entityId: string, children: TreeNode[], nextPageToken?: string) => {\n setTree(prev => {\n const node = prev[entityId]\n if (node) {\n // Set correct depth for child nodes\n const childNodesWithDepth = children.map(child => ({\n ...child,\n depth: node.depth + 1,\n }))\n\n const mergedChildren = [\n ...(node.children || []),\n ...childNodesWithDepth,\n ]\n\n // Merge children into the tree mapping while preserving existing\n // subtree entries for those children (so expanding deeper nodes\n // isn't lost when siblings are added).\n const mergedChildEntries = Object.fromEntries(\n mergedChildren.map(child => {\n const existing = prev[child.entityHeader.id]\n const merged = {\n ...existing,\n ...child,\n depth: child.depth,\n parentId: child.parentId,\n isLeaf: child.isLeaf,\n }\n\n return [child.entityHeader.id, merged]\n }),\n )\n\n return {\n ...prev,\n [entityId]: {\n ...node,\n children: mergedChildren,\n },\n ...mergedChildEntries,\n }\n }\n return prev\n })\n\n // store nextPageToken for this parent (if any)\n setNextPageTokens(prev => ({ ...prev, [entityId]: nextPageToken }))\n // clear the loading page token entry for this parent since the\n // requested page has completed (this prevents any remaining loading state)\n setLoadingPageTokens(prev => {\n return omit(prev, [entityId])\n })\n\n setLoadingIds(prev => {\n const next = new Set(prev)\n next.delete(entityId)\n return next\n })\n\n // mark as loaded only if there is no next page token (i.e., fully loaded)\n if (!nextPageToken) {\n setLoadedChildren(prev => new Set(prev).add(entityId))\n }\n },\n [\n loadingPageTokens,\n setTree,\n setNextPageTokens,\n setLoadingPageTokens,\n setLoadingIds,\n setLoadedChildren,\n ],\n )\n\n // Handler for expanding nodes - handles fetching children\n const handleToggleExpanded = useCallback(\n async (entityId: string) => {\n const isCurrentlyExpanded = expanded[entityId]\n\n setExpanded(prev => ({\n ...prev,\n [entityId]: !prev[entityId],\n }))\n\n // If expanding and children haven't been loaded yet, fetch them directly\n if (\n !isCurrentlyExpanded &&\n !loadedChildren.has(entityId) &&\n !loadingIds.has(entityId)\n ) {\n const node = tree[entityId]\n if (node && !node.isLeaf) {\n setLoadingIds(prev => new Set(prev).add(entityId))\n\n try {\n const children = await fetchEntityChildren(entityId)\n const childNodes = createTreeNodes(\n children.page,\n entityId,\n node.depth,\n )\n handleChildrenLoaded(entityId, childNodes, children.nextPageToken)\n } catch (error) {\n console.error(\n 'Failed to fetch children for entity:',\n entityId,\n error,\n )\n cleanupLoadingState(entityId)\n }\n }\n }\n },\n [\n expanded,\n loadedChildren,\n tree,\n setExpanded,\n setLoadingIds,\n fetchEntityChildren,\n createTreeNodes,\n handleChildrenLoaded,\n cleanupLoadingState,\n ],\n )\n\n const loadMoreChildren = useCallback(\n async (entityId: string, pageToken?: string) => {\n // set which page token is being requested for this parent and mark loading\n setLoadingPageTokens(prev => ({ ...prev, [entityId]: pageToken }))\n setLoadingIds(prev => new Set(prev).add(entityId))\n\n try {\n const children = await fetchEntityChildren(entityId, pageToken)\n const node = tree[entityId]\n const childNodes = createTreeNodes(\n children.page,\n entityId,\n node ? node.depth : -1,\n )\n handleChildrenLoaded(entityId, childNodes, children.nextPageToken)\n } catch (error) {\n console.error(\n 'Failed to load more children for entity:',\n entityId,\n error,\n )\n cleanupLoadingState(entityId, pageToken)\n }\n },\n [\n setLoadingPageTokens,\n setLoadingIds,\n fetchEntityChildren,\n createTreeNodes,\n tree,\n handleChildrenLoaded,\n cleanupLoadingState,\n ],\n )\n\n // Flatten tree for table rows. Track visited node ids to avoid cycles and\n // duplicate rows when the same entity appears multiple times in the\n // traversal (links, cycles, or bad/multiple parent relationships).\n const flattenTree = useCallback(\n (nodeId: string, visited = new Set<string>()): EntityBundleRow[] => {\n // Prevent revisiting the same node and producing duplicate rows\n if (visited.has(nodeId)) return []\n visited.add(nodeId)\n\n const node = tree[nodeId]\n if (!node) return []\n\n const rows: EntityBundleRow[] = [\n {\n entityId: node.entityHeader.id,\n entityHeader: node.entityHeader,\n depth: node.depth,\n isLeaf: node.isLeaf,\n parentId: node.parentId,\n versionNumber: node.entityHeader.versionNumber,\n },\n ]\n\n if (expanded[node.entityHeader.id] && node.children) {\n node.children.forEach(child => {\n rows.push(...flattenTree(child.entityHeader.id, visited))\n })\n // If there is a next page token for this node, add a synthetic 'Load more' row\n const nextToken = nextPageTokens[node.entityHeader.id]\n\n if (nextToken) {\n rows.push({\n entityId: '', // Empty placeholder for load more rows\n entityHeader: node.entityHeader,\n depth: node.depth + 1,\n isLeaf: true,\n parentId: node.entityHeader.id,\n versionNumber: node.entityHeader.versionNumber,\n isLoadMore: true,\n pageToken: nextToken,\n })\n }\n }\n return rows\n },\n [expanded, tree, nextPageTokens],\n )\n\n return {\n handleToggleExpanded,\n handleChildrenLoaded,\n loadMoreChildren,\n flattenTree,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTreeOperationsWithDirectFetch.js","names":[],"sources":["../../../../src/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport { EntityBundleRow } from '../EntityTreeTable'\nimport { TreeNode } from './useEntityTreeState'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport SynapseClient from '@/synapse-client'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n EntityHeader,\n SortBy,\n Direction,\n} from '@sage-bionetworks/synapse-types'\nimport {\n convertToEntityType,\n isContainerType,\n} from '@/utils/functions/EntityTypeUtils'\nimport { omit } from 'lodash-es'\n\nconst includeTypes: EntityType[] = [\n EntityType.folder,\n EntityType.file,\n EntityType.link,\n EntityType.recordset,\n]\n\nexport const useTreeOperationsWithDirectFetch = (\n expanded: Record<string, boolean>,\n setExpanded: (value: React.SetStateAction<Record<string, boolean>>) => void,\n tree: Record<string, TreeNode>,\n setTree: (value: React.SetStateAction<Record<string, TreeNode>>) => void,\n loadedChildren: Set<string>,\n setLoadedChildren: (value: React.SetStateAction<Set<string>>) => void,\n loadingIds: Set<string>,\n setLoadingIds: (value: React.SetStateAction<Set<string>>) => void,\n setNextPageTokens: (\n value: React.SetStateAction<Record<string, string | undefined>>,\n ) => void,\n setLoadingPageTokens: (\n value: React.SetStateAction<Record<string, string | undefined>>,\n ) => void,\n loadingPageTokens: Record<string, string | undefined>,\n nextPageTokens: Record<string, string | undefined>,\n sortBy?: SortBy,\n sortDirection?: Direction,\n) => {\n const queryClient = useQueryClient()\n const { accessToken, keyFactory } = useSynapseContext()\n\n // Helper function to convert EntityHeaders to TreeNodes\n const createTreeNodes = useCallback(\n (\n entityHeaders: EntityHeader[],\n parentId: string,\n parentDepth: number,\n ): TreeNode[] => {\n return entityHeaders.map((eh: EntityHeader) => ({\n entityHeader: eh,\n parentId,\n depth: parentDepth + 1,\n isLeaf: !isContainerType(convertToEntityType(eh.type)),\n }))\n },\n [],\n )\n\n // Helper function to clean up loading state on error\n const cleanupLoadingState = useCallback(\n (entityId: string, pageToken?: string) => {\n setLoadingIds(prev => {\n const next = new Set(prev)\n next.delete(entityId)\n return next\n })\n\n if (pageToken !== undefined) {\n setLoadingPageTokens(prev => {\n return omit(prev, [entityId])\n })\n }\n },\n [setLoadingIds, setLoadingPageTokens],\n )\n\n // Helper function to fetch entity children\n const fetchEntityChildren = useCallback(\n async (entityId: string, pageToken?: string) => {\n const entityChildrenRequest = {\n parentId: entityId,\n includeTypes,\n ...(pageToken && { nextPageToken: pageToken }),\n sortBy,\n sortDirection,\n }\n\n return await queryClient.fetchQuery({\n queryKey: keyFactory.getEntityChildrenQueryKey(\n entityChildrenRequest,\n false,\n ),\n queryFn: () =>\n SynapseClient.getEntityChildren(entityChildrenRequest, accessToken),\n })\n },\n [queryClient, keyFactory, accessToken, sortBy, sortDirection],\n )\n\n // Callback to handle when children are loaded - moved before handleToggleExpanded to fix dependency order\n const handleChildrenLoaded = useCallback(\n (entityId: string, children: TreeNode[], nextPageToken?: string) => {\n setTree(prev => {\n const node = prev[entityId]\n if (node) {\n // Set correct depth for child nodes\n const childNodesWithDepth = children.map(child => ({\n ...child,\n depth: node.depth + 1,\n }))\n\n const mergedChildren = [\n ...(node.children || []),\n ...childNodesWithDepth,\n ]\n\n // Merge children into the tree mapping while preserving existing\n // subtree entries for those children (so expanding deeper nodes\n // isn't lost when siblings are added).\n const mergedChildEntries = Object.fromEntries(\n mergedChildren.map(child => {\n const existing = prev[child.entityHeader.id]\n const merged = {\n ...existing,\n ...child,\n depth: child.depth,\n parentId: child.parentId,\n isLeaf: child.isLeaf,\n }\n\n return [child.entityHeader.id, merged]\n }),\n )\n\n return {\n ...prev,\n [entityId]: {\n ...node,\n children: mergedChildren,\n },\n ...mergedChildEntries,\n }\n }\n return prev\n })\n\n // store nextPageToken for this parent (if any)\n setNextPageTokens(prev => ({ ...prev, [entityId]: nextPageToken }))\n // clear the loading page token entry for this parent since the\n // requested page has completed (this prevents any remaining loading state)\n setLoadingPageTokens(prev => {\n return omit(prev, [entityId])\n })\n\n setLoadingIds(prev => {\n const next = new Set(prev)\n next.delete(entityId)\n return next\n })\n\n // mark as loaded only if there is no next page token (i.e., fully loaded)\n if (!nextPageToken) {\n setLoadedChildren(prev => new Set(prev).add(entityId))\n }\n },\n [\n loadingPageTokens,\n setTree,\n setNextPageTokens,\n setLoadingPageTokens,\n setLoadingIds,\n setLoadedChildren,\n ],\n )\n\n // Handler for expanding nodes - handles fetching children\n const handleToggleExpanded = useCallback(\n async (entityId: string) => {\n const isCurrentlyExpanded = expanded[entityId]\n\n setExpanded(prev => ({\n ...prev,\n [entityId]: !prev[entityId],\n }))\n\n // If expanding and children haven't been loaded yet, fetch them directly\n if (\n !isCurrentlyExpanded &&\n !loadedChildren.has(entityId) &&\n !loadingIds.has(entityId)\n ) {\n const node = tree[entityId]\n if (node && !node.isLeaf) {\n setLoadingIds(prev => new Set(prev).add(entityId))\n\n try {\n const children = await fetchEntityChildren(entityId)\n const childNodes = createTreeNodes(\n children.page,\n entityId,\n node.depth,\n )\n handleChildrenLoaded(entityId, childNodes, children.nextPageToken)\n } catch (error) {\n console.error(\n 'Failed to fetch children for entity:',\n entityId,\n error,\n )\n cleanupLoadingState(entityId)\n }\n }\n }\n },\n [\n expanded,\n loadedChildren,\n tree,\n setExpanded,\n setLoadingIds,\n fetchEntityChildren,\n createTreeNodes,\n handleChildrenLoaded,\n cleanupLoadingState,\n ],\n )\n\n const loadMoreChildren = useCallback(\n async (entityId: string, pageToken?: string) => {\n // set which page token is being requested for this parent and mark loading\n setLoadingPageTokens(prev => ({ ...prev, [entityId]: pageToken }))\n setLoadingIds(prev => new Set(prev).add(entityId))\n\n try {\n const children = await fetchEntityChildren(entityId, pageToken)\n const node = tree[entityId]\n const childNodes = createTreeNodes(\n children.page,\n entityId,\n node ? node.depth : -1,\n )\n handleChildrenLoaded(entityId, childNodes, children.nextPageToken)\n } catch (error) {\n console.error(\n 'Failed to load more children for entity:',\n entityId,\n error,\n )\n cleanupLoadingState(entityId, pageToken)\n }\n },\n [\n setLoadingPageTokens,\n setLoadingIds,\n fetchEntityChildren,\n createTreeNodes,\n tree,\n handleChildrenLoaded,\n cleanupLoadingState,\n ],\n )\n\n // Flatten tree for table rows. Track visited node ids to avoid cycles and\n // duplicate rows when the same entity appears multiple times in the\n // traversal (links, cycles, or bad/multiple parent relationships).\n const flattenTree = useCallback(\n (nodeId: string, visited = new Set<string>()): EntityBundleRow[] => {\n // Prevent revisiting the same node and producing duplicate rows\n if (visited.has(nodeId)) return []\n visited.add(nodeId)\n\n const node = tree[nodeId]\n if (!node) return []\n\n const rows: EntityBundleRow[] = [\n {\n entityId: node.entityHeader.id,\n entityHeader: node.entityHeader,\n depth: node.depth,\n isLeaf: node.isLeaf,\n parentId: node.parentId,\n versionNumber: node.entityHeader.versionNumber,\n },\n ]\n\n if (expanded[node.entityHeader.id] && node.children) {\n node.children.forEach(child => {\n rows.push(...flattenTree(child.entityHeader.id, visited))\n })\n // If there is a next page token for this node, add a synthetic 'Load more' row\n const nextToken = nextPageTokens[node.entityHeader.id]\n\n if (nextToken) {\n rows.push({\n entityId: '', // Empty placeholder for load more rows\n entityHeader: node.entityHeader,\n depth: node.depth + 1,\n isLeaf: true,\n parentId: node.entityHeader.id,\n versionNumber: node.entityHeader.versionNumber,\n isLoadMore: true,\n pageToken: nextToken,\n })\n }\n }\n return rows\n },\n [expanded, tree, nextPageTokens],\n )\n\n return {\n handleToggleExpanded,\n handleChildrenLoaded,\n loadMoreChildren,\n flattenTree,\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityUpload.js","names":[],"sources":["../../../src/components/EntityUpload/EntityUpload.tsx"],"sourcesContent":["import MultiFileUploadProgress from '@/components/file/upload/MultiFileUploadProgress'\nimport UploadFilePanel from '@/components/file/upload/UploadFilePanel'\nimport { SYNAPSE_STORAGE_LOCATION_ID } from '@/synapse-client/index'\nimport { useGetDefaultUploadDestination, useGetEntity } from '@/synapse-queries'\nimport { getUploadDestinationString } from '@/utils/functions/FileHandleUtils'\nimport {\n EntityUploaderState,\n useUploadFileEntities,\n} from '@/utils/hooks/useUploadFileEntity/useUploadFileEntities'\nimport { Typography } from '@mui/material'\nimport { noop } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport FullWidthAlert from '../FullWidthAlert/FullWidthAlert'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport { EntityUploadPromptDialog } from './EntityUploadPromptDialog'\nimport { ExternalObjectStoreCredentialsForm } from './ExternalObjectStoreCredentialsForm'\nimport { ProjectStorageLimitAlert } from './ProjectStorageLimitAlert'\n\nexport type EntityUploadProps = {\n /** The ID of the entity to upload to. If this is a container, file(s) will be added as children. If this is a\n * FileEntity, then a file may be uploaded as a new version */\n entityId: string\n /** Callback that is invoked when the state of the uploader changes */\n onStateChange?: (state: EntityUploaderState) => void\n /** Callback that is invoked when component is ready to upload */\n onUploadReady?: () => void\n}\n\nexport type EntityUploadHandle = {\n /** Programmatically add files to the upload (e.g. on drag & drop) */\n handleUploads: (fileList: ArrayLike<File>) => void\n}\n\nexport const EntityUpload = forwardRef(function EntityUpload(\n props: EntityUploadProps,\n ref: ForwardedRef<EntityUploadHandle>,\n) {\n const { entityId, onStateChange = noop, onUploadReady = noop } = props\n\n const { data: entity, isLoading: isLoadingEntity } = useGetEntity(entityId)\n\n const isFileEntity =\n entity?.concreteType === 'org.sagebionetworks.repo.model.FileEntity'\n\n const { data: uploadDestination, isLoading: isLoadingUploadDestination } =\n useGetDefaultUploadDestination(entityId)\n const isLoading = isLoadingEntity || isLoadingUploadDestination\n\n const [accessKey, setAccessKey] = useState('')\n const [secretKey, setSecretKey] = useState('')\n\n const [didUploadsExceedStorageLimit, setDidUploadsExceedStorageLimit] =\n useState(false)\n\n const {\n initiateUpload,\n state,\n uploadProgress,\n activePrompts,\n isPrecheckingUpload,\n isUploadReady,\n } = useUploadFileEntities(entityId, accessKey, secretKey, () =>\n setDidUploadsExceedStorageLimit(true),\n )\n\n useEffect(() => {\n onStateChange(state)\n }, [state, onStateChange])\n\n useEffect(() => {\n if (isUploadReady) {\n onUploadReady()\n }\n }, [isUploadReady, onUploadReady])\n\n function uploadFileList(fileList: ArrayLike<File>) {\n if (uploadDestination?.projectStorageLocationUsage?.isOverLimit) {\n displayToast(\n 'Cannot upload files because the storage limit has been exceeded.',\n 'danger',\n )\n return\n }\n const args = Array.from(fileList).map(file => {\n if (isFileEntity) {\n return { file, existingEntityId: entityId }\n }\n return {\n file,\n rootContainerId: entityId,\n }\n })\n initiateUpload(args)\n }\n\n useImperativeHandle(ref, () => ({\n handleUploads: uploadFileList,\n }))\n\n const showLoading = isPrecheckingUpload || isLoading\n const loadingText = isPrecheckingUpload\n ? 'Preparing files for upload...'\n : 'Loading...'\n\n return (\n <div>\n <EntityUploadPromptDialog activePrompts={activePrompts} />\n {uploadDestination?.projectStorageLocationUsage && (\n <ProjectStorageLimitAlert\n usage={uploadDestination.projectStorageLocationUsage}\n didUploadsExceedLimit={didUploadsExceedStorageLimit}\n />\n )}\n <ExternalObjectStoreCredentialsForm\n uploadDestination={uploadDestination}\n accessKey={accessKey}\n setAccessKey={setAccessKey}\n secretKey={secretKey}\n setSecretKey={setSecretKey}\n />\n <UploadFilePanel\n onUploadFileList={uploadFileList}\n allowMultipleFiles={!isFileEntity}\n isLoading={showLoading}\n loadingText={loadingText}\n disabled={uploadDestination?.projectStorageLocationUsage?.isOverLimit}\n message={\n <>\n <Typography variant={'smallText1'}>\n All uploaded files will be stored in\n {uploadDestination?.storageLocationId ===\n SYNAPSE_STORAGE_LOCATION_ID && ' Synapse storage'}\n {uploadDestination &&\n uploadDestination?.storageLocationId !==\n SYNAPSE_STORAGE_LOCATION_ID && (\n <>\n :<br />\n {getUploadDestinationString(uploadDestination)}\n </>\n )}\n </Typography>\n {uploadDestination && uploadDestination.banner && (\n <FullWidthAlert\n sx={{\n textAlign: 'left',\n }}\n isGlobal={false}\n title={'Storage Location Message'}\n description={uploadDestination.banner}\n variant={'info'}\n />\n )}\n </>\n }\n />\n <MultiFileUploadProgress\n uploaderState={state}\n uploadProgress={uploadProgress}\n />\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAuCA,IAAa,IAAe,EAAW,SACrC,GACA,GACA;CACA,IAAM,EAAE,aAAU,mBAAgB,GAAM,mBAAgB,MAAS,GAE3D,EAAE,MAAM,GAAQ,WAAW,MAAoB,EAAa,EAAS,EAErE,IACJ,GAAQ,iBAAiB,6CAErB,EAAE,MAAM,GAAmB,WAAW,MAC1C,EAA+B,EAAS,EACpC,IAAY,KAAmB,GAE/B,CAAC,GAAW,KAAgB,EAAS,GAAG,EACxC,CAAC,GAAW,KAAgB,EAAS,GAAG,EAExC,CAAC,GAA8B,KACnC,EAAS,GAAM,EAEX,EACJ,mBACA,UACA,mBACA,kBACA,wBACA,qBACE,EAAsB,GAAU,GAAW,SAC7C,EAAgC,GAAK,CACtC;AAMD,CAJA,QAAgB;AACd,IAAc,EAAM;IACnB,CAAC,GAAO,EAAc,CAAC,EAE1B,QAAgB;AACd,EAAI,KACF,GAAe;IAEhB,CAAC,GAAe,EAAc,CAAC;CAElC,SAAS,EAAe,GAA2B;AACjD,MAAI,GAAmB,6BAA6B,aAAa;AAC/D,KACE,oEACA,SACD;AACD;;AAWF,IATa,MAAM,KAAK,EAAS,CAAC,KAAI,MAChC,IACK;GAAE;GAAM,kBAAkB;GAAU,GAEtC;GACL;GACA,iBAAiB;GAClB,CAEY,CAAK;;AAGtB,GAAoB,UAAY,EAC9B,eAAe,GAChB,EAAE;CAEH,IAAM,IAAc,KAAuB,GACrC,IAAc,IAChB,kCACA;AAEJ,QACE,kBAAC,OAAD,EAAA,UAAA;EACE,kBAAC,GAAD,EAAyC,kBAAiB,CAAA;EACzD,GAAmB,+BAClB,kBAAC,GAAD;GACE,OAAO,EAAkB;GACzB,uBAAuB;GACvB,CAAA;EAEJ,kBAAC,GAAD;GACqB;GACR;GACG;GACH;GACG;GACd,CAAA;EACF,kBAAC,GAAD;GACE,kBAAkB;GAClB,oBAAoB,CAAC;GACrB,WAAW;GACE;GACb,UAAU,GAAmB,6BAA6B;GAC1D,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IAAY,SAAS;cAArB;KAAmC;KAEhC,GAAmB,sBAAA,KACa;KAChC,KACC,GAAmB,sBAAA,KAEjB,kBAAA,GAAA,EAAA,UAAA;MAAE;MACC,kBAAC,MAAD,EAAM,CAAA;MACN,EAA2B,EAAkB;MAC7C,EAAA,CAAA;KAEI;OACZ,KAAqB,EAAkB,UACtC,kBAAC,GAAD;IACE,IAAI,EACF,WAAW,QACZ;IACD,UAAU;IACV,OAAO;IACP,aAAa,EAAkB;IAC/B,SAAS;IACT,CAAA,CAEH,EAAA,CAAA;GAEL,CAAA;EACF,kBAAC,GAAD;GACE,eAAe;GACC;GAChB,CAAA;EACE,EAAA,CAAA;EAER"}
1
+ {"version":3,"file":"EntityUpload.js","names":[],"sources":["../../../src/components/EntityUpload/EntityUpload.tsx"],"sourcesContent":["import MultiFileUploadProgress from '@/components/file/upload/MultiFileUploadProgress'\nimport UploadFilePanel from '@/components/file/upload/UploadFilePanel'\nimport { SYNAPSE_STORAGE_LOCATION_ID } from '@/synapse-client/index'\nimport { useGetDefaultUploadDestination, useGetEntity } from '@/synapse-queries'\nimport { getUploadDestinationString } from '@/utils/functions/FileHandleUtils'\nimport {\n EntityUploaderState,\n useUploadFileEntities,\n} from '@/utils/hooks/useUploadFileEntity/useUploadFileEntities'\nimport { Typography } from '@mui/material'\nimport { noop } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport FullWidthAlert from '../FullWidthAlert/FullWidthAlert'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport { EntityUploadPromptDialog } from './EntityUploadPromptDialog'\nimport { ExternalObjectStoreCredentialsForm } from './ExternalObjectStoreCredentialsForm'\nimport { ProjectStorageLimitAlert } from './ProjectStorageLimitAlert'\n\nexport type EntityUploadProps = {\n /** The ID of the entity to upload to. If this is a container, file(s) will be added as children. If this is a\n * FileEntity, then a file may be uploaded as a new version */\n entityId: string\n /** Callback that is invoked when the state of the uploader changes */\n onStateChange?: (state: EntityUploaderState) => void\n /** Callback that is invoked when component is ready to upload */\n onUploadReady?: () => void\n}\n\nexport type EntityUploadHandle = {\n /** Programmatically add files to the upload (e.g. on drag & drop) */\n handleUploads: (fileList: ArrayLike<File>) => void\n}\n\nexport const EntityUpload = forwardRef(function EntityUpload(\n props: EntityUploadProps,\n ref: ForwardedRef<EntityUploadHandle>,\n) {\n const { entityId, onStateChange = noop, onUploadReady = noop } = props\n\n const { data: entity, isLoading: isLoadingEntity } = useGetEntity(entityId)\n\n const isFileEntity =\n entity?.concreteType === 'org.sagebionetworks.repo.model.FileEntity'\n\n const { data: uploadDestination, isLoading: isLoadingUploadDestination } =\n useGetDefaultUploadDestination(entityId)\n const isLoading = isLoadingEntity || isLoadingUploadDestination\n\n const [accessKey, setAccessKey] = useState('')\n const [secretKey, setSecretKey] = useState('')\n\n const [didUploadsExceedStorageLimit, setDidUploadsExceedStorageLimit] =\n useState(false)\n\n const {\n initiateUpload,\n state,\n uploadProgress,\n activePrompts,\n isPrecheckingUpload,\n isUploadReady,\n } = useUploadFileEntities(entityId, accessKey, secretKey, () =>\n setDidUploadsExceedStorageLimit(true),\n )\n\n useEffect(() => {\n onStateChange(state)\n }, [state, onStateChange])\n\n useEffect(() => {\n if (isUploadReady) {\n onUploadReady()\n }\n }, [isUploadReady, onUploadReady])\n\n function uploadFileList(fileList: ArrayLike<File>) {\n if (uploadDestination?.projectStorageLocationUsage?.isOverLimit) {\n displayToast(\n 'Cannot upload files because the storage limit has been exceeded.',\n 'danger',\n )\n return\n }\n const args = Array.from(fileList).map(file => {\n if (isFileEntity) {\n return { file, existingEntityId: entityId }\n }\n return {\n file,\n rootContainerId: entityId,\n }\n })\n initiateUpload(args)\n }\n\n useImperativeHandle(ref, () => ({\n handleUploads: uploadFileList,\n }))\n\n const showLoading = isPrecheckingUpload || isLoading\n const loadingText = isPrecheckingUpload\n ? 'Preparing files for upload...'\n : 'Loading...'\n\n return (\n <div>\n <EntityUploadPromptDialog activePrompts={activePrompts} />\n {uploadDestination?.projectStorageLocationUsage && (\n <ProjectStorageLimitAlert\n usage={uploadDestination.projectStorageLocationUsage}\n didUploadsExceedLimit={didUploadsExceedStorageLimit}\n />\n )}\n <ExternalObjectStoreCredentialsForm\n uploadDestination={uploadDestination}\n accessKey={accessKey}\n setAccessKey={setAccessKey}\n secretKey={secretKey}\n setSecretKey={setSecretKey}\n />\n <UploadFilePanel\n onUploadFileList={uploadFileList}\n allowMultipleFiles={!isFileEntity}\n isLoading={showLoading}\n loadingText={loadingText}\n disabled={uploadDestination?.projectStorageLocationUsage?.isOverLimit}\n message={\n <>\n <Typography variant={'smallText1'}>\n All uploaded files will be stored in\n {uploadDestination?.storageLocationId ===\n SYNAPSE_STORAGE_LOCATION_ID && ' Synapse storage'}\n {uploadDestination &&\n uploadDestination?.storageLocationId !==\n SYNAPSE_STORAGE_LOCATION_ID && (\n <>\n :<br />\n {getUploadDestinationString(uploadDestination)}\n </>\n )}\n </Typography>\n {uploadDestination && uploadDestination.banner && (\n <FullWidthAlert\n sx={{\n textAlign: 'left',\n }}\n isGlobal={false}\n title={'Storage Location Message'}\n description={uploadDestination.banner}\n variant={'info'}\n />\n )}\n </>\n }\n />\n <MultiFileUploadProgress\n uploaderState={state}\n uploadProgress={uploadProgress}\n />\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAuCA,IAAa,IAAe,EAAW,SACrC,GACA,GACA;CACA,IAAM,EAAE,aAAU,mBAAgB,GAAM,mBAAgB,MAAS,GAE3D,EAAE,MAAM,GAAQ,WAAW,MAAoB,EAAa,CAAQ,GAEpE,IACJ,GAAQ,iBAAiB,6CAErB,EAAE,MAAM,GAAmB,WAAW,MAC1C,EAA+B,CAAQ,GACnC,IAAY,KAAmB,GAE/B,CAAC,GAAW,KAAgB,EAAS,EAAE,GACvC,CAAC,GAAW,KAAgB,EAAS,EAAE,GAEvC,CAAC,GAA8B,KACnC,EAAS,EAAK,GAEV,EACJ,mBACA,UACA,mBACA,kBACA,wBACA,qBACE,EAAsB,GAAU,GAAW,SAC7C,EAAgC,EAAI,CACtC;CAMA,AAJA,QAAgB;EACd,EAAc,CAAK;CACrB,GAAG,CAAC,GAAO,CAAa,CAAC,GAEzB,QAAgB;EACd,AAAI,KACF,EAAc;CAElB,GAAG,CAAC,GAAe,CAAa,CAAC;CAEjC,SAAS,EAAe,GAA2B;EACjD,IAAI,GAAmB,6BAA6B,aAAa;GAC/D,EACE,oEACA,QACF;GACA;EACF;EAUA,EATa,MAAM,KAAK,CAAQ,EAAE,KAAI,MAChC,IACK;GAAE;GAAM,kBAAkB;EAAS,IAErC;GACL;GACA,iBAAiB;EACnB,CAEa,CAAI;CACrB;CAEA,EAAoB,UAAY,EAC9B,eAAe,EACjB,EAAE;CAEF,IAAM,IAAc,KAAuB,GACrC,IAAc,IAChB,kCACA;CAEJ,OACE,kBAAC,OAAD,EAAA,UAAA;EACE,kBAAC,GAAD,EAAyC,iBAAgB,CAAA;EACxD,GAAmB,+BAClB,kBAAC,GAAD;GACE,OAAO,EAAkB;GACzB,uBAAuB;EACxB,CAAA;EAEH,kBAAC,GAAD;GACqB;GACR;GACG;GACH;GACG;EACf,CAAA;EACD,kBAAC,GAAD;GACE,kBAAkB;GAClB,oBAAoB,CAAC;GACrB,WAAW;GACE;GACb,UAAU,GAAmB,6BAA6B;GAC1D,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IAAY,SAAS;cAArB;KAAmC;KAEhC,GAAmB,sBAAA,KACa;KAChC,KACC,GAAmB,sBAAA,KAEjB,kBAAA,GAAA,EAAA,UAAA;MAAE;MACC,kBAAC,MAAD,CAAK,CAAA;MACL,EAA2B,CAAiB;KAC7C,EAAA,CAAA;IAEI;OACX,KAAqB,EAAkB,UACtC,kBAAC,GAAD;IACE,IAAI,EACF,WAAW,OACb;IACA,UAAU;IACV,OAAO;IACP,aAAa,EAAkB;IAC/B,SAAS;GACV,CAAA,CAEH,EAAA,CAAA;EAEL,CAAA;EACD,kBAAC,GAAD;GACE,eAAe;GACC;EACjB,CAAA;CACE,EAAA,CAAA;AAET,CAAC"}
@@ -6,82 +6,80 @@ import { forwardRef as i, useImperativeHandle as a, useRef as o, useState as s }
6
6
  import { Box as c, Button as l, Tab as u, Tabs as d } from "@mui/material";
7
7
  import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
8
8
  //#region src/components/EntityUpload/EntityUploadModal.tsx
9
- var h = /* @__PURE__ */ function(e) {
10
- return e[e.UploadFile = 0] = "UploadFile", e[e.LinkToURL = 1] = "LinkToURL", e;
11
- }(h || {}), g = i(function(i, g) {
12
- let { entityId: _, open: v, onClose: y, onUploadReady: b } = i, [x, S] = s(h.UploadFile), [C, w] = s("LOADING"), [T, E] = s(!1), D = o(null), O = o(null), k = C === "PROMPT_USER" || C === "UPLOADING", A = k || C === "COMPLETE", j = x === h.UploadFile ? C !== "COMPLETE" : !T;
13
- function M() {
14
- j || (x === h.UploadFile ? y() : D.current.submit());
9
+ var h = i(function(i, h) {
10
+ let { entityId: g, open: _, onClose: v, onUploadReady: y } = i, [b, x] = s(0), [S, C] = s("LOADING"), [w, T] = s(!1), E = o(null), D = o(null), O = S === "PROMPT_USER" || S === "UPLOADING", k = O || S === "COMPLETE", A = b === 0 ? S !== "COMPLETE" : !w;
11
+ function j() {
12
+ A || (b === 0 ? v() : E.current.submit());
15
13
  }
16
- return a(g, () => ({ handleUploads: (e) => {
17
- S(h.UploadFile), O.current?.handleUploads(e);
14
+ return a(h, () => ({ handleUploads: (e) => {
15
+ x(0), D.current?.handleUploads(e);
18
16
  } })), /* @__PURE__ */ p(t, {
19
17
  DialogProps: {
20
18
  onKeyUp: (e) => {
21
- e.key === "Enter" && M();
19
+ e.key === "Enter" && j();
22
20
  },
23
21
  keepMounted: !0
24
22
  },
25
23
  title: "Upload or Link to File",
26
- open: v,
24
+ open: _,
27
25
  maxWidth: "md",
28
26
  fullWidth: !0,
29
27
  content: /* @__PURE__ */ m(f, { children: [
30
28
  /* @__PURE__ */ m(d, {
31
29
  textColor: "secondary",
32
30
  indicatorColor: "secondary",
33
- value: x,
34
- onChange: (e, t) => S(t),
31
+ value: b,
32
+ onChange: (e, t) => x(t),
35
33
  sx: { mb: 2 },
36
34
  children: [/* @__PURE__ */ p(u, {
37
35
  label: "Upload File",
38
- value: h.UploadFile
36
+ value: 0
39
37
  }), /* @__PURE__ */ p(u, {
40
38
  label: "Link to URL",
41
- value: h.LinkToURL
39
+ value: 1
42
40
  })]
43
41
  }),
44
42
  /* @__PURE__ */ p(c, {
45
- sx: { display: x === h.UploadFile ? "block" : "none" },
43
+ sx: { display: b === 0 ? "block" : "none" },
46
44
  children: /* @__PURE__ */ p(n, {
47
- ref: O,
48
- entityId: _,
49
- onStateChange: w,
50
- onUploadReady: b
45
+ ref: D,
46
+ entityId: g,
47
+ onStateChange: C,
48
+ onUploadReady: y
51
49
  })
52
50
  }),
53
51
  /* @__PURE__ */ p(c, {
54
- sx: { display: x === h.LinkToURL ? "block" : "none" },
52
+ sx: { display: b === 1 ? "block" : "none" },
55
53
  children: /* @__PURE__ */ p(r, {
56
- ref: D,
57
- entityId: _,
58
- onIsValidChanged: E,
54
+ ref: E,
55
+ entityId: g,
56
+ onIsValidChanged: T,
59
57
  onSuccess: (t) => {
60
- e(`Successfully created "${t.name}"`, "success"), y();
58
+ e(`Successfully created "${t.name}"`, "success"), v();
61
59
  }
62
60
  })
63
61
  })
64
62
  ] }),
65
63
  onCancel: () => {
66
- k || y();
64
+ O || v();
67
65
  },
68
- hasCloseButton: !k,
66
+ hasCloseButton: !O,
69
67
  actions: /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(l, {
70
68
  variant: "outlined",
71
69
  onClick: () => {
72
- y();
70
+ v();
73
71
  },
74
- disabled: A,
72
+ disabled: k,
75
73
  children: "Cancel"
76
74
  }), /* @__PURE__ */ p(l, {
77
75
  variant: "contained",
78
- onClick: M,
79
- disabled: j,
76
+ onClick: j,
77
+ disabled: A,
80
78
  children: "Finish"
81
79
  })] })
82
80
  });
83
81
  });
84
82
  //#endregion
85
- export { g as EntityUploadModal, g as default };
83
+ export { h as EntityUploadModal, h as default };
86
84
 
87
85
  //# sourceMappingURL=EntityUploadModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityUploadModal.js","names":[],"sources":["../../../src/components/EntityUpload/EntityUploadModal.tsx"],"sourcesContent":["import { EntityUploaderState } from '@/utils/hooks/useUploadFileEntity/useUploadFileEntities'\nimport { Box, Button, Tab, Tabs } from '@mui/material'\nimport {\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport {\n EntityUpload,\n EntityUploadHandle,\n EntityUploadProps,\n} from './EntityUpload'\nimport { LinkToURL, LinkToURLHandle } from './LinkToURL'\n\nexport type EntityUploadModalProps = {\n entityId: string\n open: boolean\n onClose: () => void\n} & Pick<EntityUploadProps, 'onUploadReady'>\n\nenum UploadTab {\n UploadFile,\n LinkToURL,\n}\n\nexport const EntityUploadModal = forwardRef(function EntityUploadModal(\n props: EntityUploadModalProps,\n ref: ForwardedRef<EntityUploadHandle>,\n) {\n const { entityId, open, onClose, onUploadReady } = props\n const [tabValue, setTabValue] = useState<UploadTab>(UploadTab.UploadFile)\n\n const [uploadState, setUploadState] = useState<EntityUploaderState>('LOADING')\n\n const [isLinkFormValid, setIsLinkFormValid] = useState(false)\n const linkToUrlFormRef = useRef<LinkToURLHandle>(null)\n\n const entityUploadRef = useRef<EntityUploadHandle>(null)\n\n const disableClose =\n uploadState === 'PROMPT_USER' || uploadState === 'UPLOADING'\n const disableCancel = disableClose || uploadState === 'COMPLETE'\n\n const disableFinish =\n tabValue === UploadTab.UploadFile\n ? uploadState !== 'COMPLETE'\n : !isLinkFormValid\n\n function onFinish() {\n if (!disableFinish) {\n if (tabValue === UploadTab.UploadFile) {\n onClose()\n } else {\n linkToUrlFormRef.current!.submit()\n }\n }\n }\n\n useImperativeHandle(ref, () => ({\n handleUploads: (fileList: ArrayLike<File>) => {\n // When an upload starts via imperative handle (e.g. via drag-and-drop), switch to the upload tab\n setTabValue(UploadTab.UploadFile)\n entityUploadRef.current?.handleUploads(fileList)\n },\n }))\n\n return (\n <DialogBase\n DialogProps={{\n onKeyUp: (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n onFinish()\n }\n },\n // SWC-4693 - For drag-and-drop upload to be ready before the modal opens, the modal contents must be mounted\n keepMounted: true,\n }}\n title={'Upload or Link to File'}\n open={open}\n maxWidth={'md'}\n fullWidth\n content={\n <>\n <Tabs\n textColor=\"secondary\"\n indicatorColor=\"secondary\"\n value={tabValue}\n onChange={(_e, newValue) => setTabValue(newValue as number)}\n sx={{ mb: 2 }}\n >\n <Tab label={'Upload File'} value={UploadTab.UploadFile} />\n <Tab label={'Link to URL'} value={UploadTab.LinkToURL} />\n </Tabs>\n <Box\n sx={{\n display: tabValue === UploadTab.UploadFile ? 'block' : 'none',\n }}\n >\n <EntityUpload\n ref={entityUploadRef}\n entityId={entityId}\n onStateChange={setUploadState}\n onUploadReady={onUploadReady}\n />\n </Box>\n <Box\n sx={{\n display: tabValue === UploadTab.LinkToURL ? 'block' : 'none',\n }}\n >\n <LinkToURL\n ref={linkToUrlFormRef}\n entityId={entityId}\n onIsValidChanged={setIsLinkFormValid}\n onSuccess={entity => {\n displayToast(`Successfully created \"${entity.name}\"`, 'success')\n onClose()\n }}\n />\n </Box>\n </>\n }\n onCancel={() => {\n if (!disableClose) {\n onClose()\n }\n }}\n hasCloseButton={!disableClose}\n actions={\n <>\n <Button\n variant={'outlined'}\n onClick={() => {\n onClose()\n }}\n disabled={disableCancel}\n >\n Cancel\n </Button>\n <Button\n variant={'contained'}\n onClick={onFinish}\n disabled={disableFinish}\n >\n Finish\n </Button>\n </>\n }\n />\n )\n})\n\nexport default EntityUploadModal\n"],"mappings":";;;;;;;;AAyBA,IAAK,IAAL,yBAAA,GAAA;QACE,EAAA,EAAA,aAAA,KAAA,cACA,EAAA,EAAA,YAAA,KAAA;EAFG,KAAA,EAAA,CAGJ,EAEY,IAAoB,EAAW,SAC1C,GACA,GACA;CACA,IAAM,EAAE,aAAU,SAAM,YAAS,qBAAkB,GAC7C,CAAC,GAAU,KAAe,EAAoB,EAAU,WAAW,EAEnE,CAAC,GAAa,KAAkB,EAA8B,UAAU,EAExE,CAAC,GAAiB,KAAsB,EAAS,GAAM,EACvD,IAAmB,EAAwB,KAAK,EAEhD,IAAkB,EAA2B,KAAK,EAElD,IACJ,MAAgB,iBAAiB,MAAgB,aAC7C,IAAgB,KAAgB,MAAgB,YAEhD,IACJ,MAAa,EAAU,aACnB,MAAgB,aAChB,CAAC;CAEP,SAAS,IAAW;AAClB,EAAK,MACC,MAAa,EAAU,aACzB,GAAS,GAET,EAAiB,QAAS,QAAQ;;AAaxC,QARA,EAAoB,UAAY,EAC9B,gBAAgB,MAA8B;AAG5C,EADA,EAAY,EAAU,WAAW,EACjC,EAAgB,SAAS,cAAc,EAAS;IAEnD,EAAE,EAGD,kBAAC,GAAD;EACE,aAAa;GACX,UAAU,MAAqB;AAC7B,IAAI,EAAE,QAAQ,WACZ,GAAU;;GAId,aAAa;GACd;EACD,OAAO;EACD;EACN,UAAU;EACV,WAAA;EACA,SACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,WAAU;IACV,gBAAe;IACf,OAAO;IACP,WAAW,GAAI,MAAa,EAAY,EAAmB;IAC3D,IAAI,EAAE,IAAI,GAAG;cALf,CAOE,kBAAC,GAAD;KAAK,OAAO;KAAe,OAAO,EAAU;KAAc,CAAA,EAC1D,kBAAC,GAAD;KAAK,OAAO;KAAe,OAAO,EAAU;KAAa,CAAA,CACpD;;GACP,kBAAC,GAAD;IACE,IAAI,EACF,SAAS,MAAa,EAAU,aAAa,UAAU,QACxD;cAED,kBAAC,GAAD;KACE,KAAK;KACK;KACV,eAAe;KACA;KACf,CAAA;IACE,CAAA;GACN,kBAAC,GAAD;IACE,IAAI,EACF,SAAS,MAAa,EAAU,YAAY,UAAU,QACvD;cAED,kBAAC,GAAD;KACE,KAAK;KACK;KACV,kBAAkB;KAClB,YAAW,MAAU;AAEnB,MADA,EAAa,yBAAyB,EAAO,KAAK,IAAI,UAAU,EAChE,GAAS;;KAEX,CAAA;IACE,CAAA;GACL,EAAA,CAAA;EAEL,gBAAgB;AACd,GAAK,KACH,GAAS;;EAGb,gBAAgB,CAAC;EACjB,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAS;GACT,eAAe;AACb,OAAS;;GAEX,UAAU;aACX;GAEQ,CAAA,EACT,kBAAC,GAAD;GACE,SAAS;GACT,SAAS;GACT,UAAU;aACX;GAEQ,CAAA,CACR,EAAA,CAAA;EAEL,CAAA;EAEJ"}
1
+ {"version":3,"file":"EntityUploadModal.js","names":[],"sources":["../../../src/components/EntityUpload/EntityUploadModal.tsx"],"sourcesContent":["import { EntityUploaderState } from '@/utils/hooks/useUploadFileEntity/useUploadFileEntities'\nimport { Box, Button, Tab, Tabs } from '@mui/material'\nimport {\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport {\n EntityUpload,\n EntityUploadHandle,\n EntityUploadProps,\n} from './EntityUpload'\nimport { LinkToURL, LinkToURLHandle } from './LinkToURL'\n\nexport type EntityUploadModalProps = {\n entityId: string\n open: boolean\n onClose: () => void\n} & Pick<EntityUploadProps, 'onUploadReady'>\n\nenum UploadTab {\n UploadFile,\n LinkToURL,\n}\n\nexport const EntityUploadModal = forwardRef(function EntityUploadModal(\n props: EntityUploadModalProps,\n ref: ForwardedRef<EntityUploadHandle>,\n) {\n const { entityId, open, onClose, onUploadReady } = props\n const [tabValue, setTabValue] = useState<UploadTab>(UploadTab.UploadFile)\n\n const [uploadState, setUploadState] = useState<EntityUploaderState>('LOADING')\n\n const [isLinkFormValid, setIsLinkFormValid] = useState(false)\n const linkToUrlFormRef = useRef<LinkToURLHandle>(null)\n\n const entityUploadRef = useRef<EntityUploadHandle>(null)\n\n const disableClose =\n uploadState === 'PROMPT_USER' || uploadState === 'UPLOADING'\n const disableCancel = disableClose || uploadState === 'COMPLETE'\n\n const disableFinish =\n tabValue === UploadTab.UploadFile\n ? uploadState !== 'COMPLETE'\n : !isLinkFormValid\n\n function onFinish() {\n if (!disableFinish) {\n if (tabValue === UploadTab.UploadFile) {\n onClose()\n } else {\n linkToUrlFormRef.current!.submit()\n }\n }\n }\n\n useImperativeHandle(ref, () => ({\n handleUploads: (fileList: ArrayLike<File>) => {\n // When an upload starts via imperative handle (e.g. via drag-and-drop), switch to the upload tab\n setTabValue(UploadTab.UploadFile)\n entityUploadRef.current?.handleUploads(fileList)\n },\n }))\n\n return (\n <DialogBase\n DialogProps={{\n onKeyUp: (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n onFinish()\n }\n },\n // SWC-4693 - For drag-and-drop upload to be ready before the modal opens, the modal contents must be mounted\n keepMounted: true,\n }}\n title={'Upload or Link to File'}\n open={open}\n maxWidth={'md'}\n fullWidth\n content={\n <>\n <Tabs\n textColor=\"secondary\"\n indicatorColor=\"secondary\"\n value={tabValue}\n onChange={(_e, newValue) => setTabValue(newValue as number)}\n sx={{ mb: 2 }}\n >\n <Tab label={'Upload File'} value={UploadTab.UploadFile} />\n <Tab label={'Link to URL'} value={UploadTab.LinkToURL} />\n </Tabs>\n <Box\n sx={{\n display: tabValue === UploadTab.UploadFile ? 'block' : 'none',\n }}\n >\n <EntityUpload\n ref={entityUploadRef}\n entityId={entityId}\n onStateChange={setUploadState}\n onUploadReady={onUploadReady}\n />\n </Box>\n <Box\n sx={{\n display: tabValue === UploadTab.LinkToURL ? 'block' : 'none',\n }}\n >\n <LinkToURL\n ref={linkToUrlFormRef}\n entityId={entityId}\n onIsValidChanged={setIsLinkFormValid}\n onSuccess={entity => {\n displayToast(`Successfully created \"${entity.name}\"`, 'success')\n onClose()\n }}\n />\n </Box>\n </>\n }\n onCancel={() => {\n if (!disableClose) {\n onClose()\n }\n }}\n hasCloseButton={!disableClose}\n actions={\n <>\n <Button\n variant={'outlined'}\n onClick={() => {\n onClose()\n }}\n disabled={disableCancel}\n >\n Cancel\n </Button>\n <Button\n variant={'contained'}\n onClick={onFinish}\n disabled={disableFinish}\n >\n Finish\n </Button>\n </>\n }\n />\n )\n})\n\nexport default EntityUploadModal\n"],"mappings":";;;;;;;;AA8BA,IAAa,IAAoB,EAAW,SAC1C,GACA,GACA;CACA,IAAM,EAAE,aAAU,SAAM,YAAS,qBAAkB,GAC7C,CAAC,GAAU,KAAe,EAAA,CAAwC,GAElE,CAAC,GAAa,KAAkB,EAA8B,SAAS,GAEvE,CAAC,GAAiB,KAAsB,EAAS,EAAK,GACtD,IAAmB,EAAwB,IAAI,GAE/C,IAAkB,EAA2B,IAAI,GAEjD,IACJ,MAAgB,iBAAiB,MAAgB,aAC7C,IAAgB,KAAgB,MAAgB,YAEhD,IACJ,MAAA,IACI,MAAgB,aAChB,CAAC;CAEP,SAAS,IAAW;EAClB,AAAK,MACC,MAAA,IACF,EAAQ,IAER,EAAiB,QAAS,OAAO;CAGvC;CAUA,OARA,EAAoB,UAAY,EAC9B,gBAAgB,MAA8B;EAG5C,AADA,EAAA,CAAgC,GAChC,EAAgB,SAAS,cAAc,CAAQ;CACjD,EACF,EAAE,GAGA,kBAAC,GAAD;EACE,aAAa;GACX,UAAU,MAAqB;IAC7B,AAAI,EAAE,QAAQ,WACZ,EAAS;GAEb;GAEA,aAAa;EACf;EACA,OAAO;EACD;EACN,UAAU;EACV,WAAA;EACA,SACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,WAAU;IACV,gBAAe;IACf,OAAO;IACP,WAAW,GAAI,MAAa,EAAY,CAAkB;IAC1D,IAAI,EAAE,IAAI,EAAE;cALd,CAOE,kBAAC,GAAD;KAAK,OAAO;KAAe,OAAA;IAA8B,CAAA,GACzD,kBAAC,GAAD;KAAK,OAAO;KAAe,OAAA;IAA6B,CAAA,CACpD;;GACN,kBAAC,GAAD;IACE,IAAI,EACF,SAAS,MAAA,IAAoC,UAAU,OACzD;cAEA,kBAAC,GAAD;KACE,KAAK;KACK;KACV,eAAe;KACA;IAChB,CAAA;GACE,CAAA;GACL,kBAAC,GAAD;IACE,IAAI,EACF,SAAS,MAAA,IAAmC,UAAU,OACxD;cAEA,kBAAC,GAAD;KACE,KAAK;KACK;KACV,kBAAkB;KAClB,YAAW,MAAU;MAEnB,AADA,EAAa,yBAAyB,EAAO,KAAK,IAAI,SAAS,GAC/D,EAAQ;KACV;IACD,CAAA;GACE,CAAA;EACL,EAAA,CAAA;EAEJ,gBAAgB;GACd,AAAK,KACH,EAAQ;EAEZ;EACA,gBAAgB,CAAC;EACjB,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAS;GACT,eAAe;IACb,EAAQ;GACV;GACA,UAAU;aACX;EAEO,CAAA,GACR,kBAAC,GAAD;GACE,SAAS;GACT,SAAS;GACT,UAAU;aACX;EAEO,CAAA,CACR,EAAA,CAAA;CAEL,CAAA;AAEL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityUploadPromptDialog.js","names":[],"sources":["../../../src/components/EntityUpload/EntityUploadPromptDialog.tsx"],"sourcesContent":["import {\n PromptInfo,\n UseUploadFileEntitiesReturn,\n} from '@/utils/hooks/useUploadFileEntity/useUploadFileEntities'\nimport {\n Box,\n Button,\n Checkbox,\n FormControlLabel,\n Typography,\n} from '@mui/material'\nimport { noop } from 'lodash-es'\nimport pluralize from 'pluralize'\nimport { useState } from 'react'\nimport { DialogBase } from '../DialogBase'\n\ntype EntityUploadPromptDialogProps = {\n activePrompts: UseUploadFileEntitiesReturn['activePrompts']\n}\n\nfunction getTitle(promptInfo: PromptInfo) {\n if (promptInfo.type === 'CONFIRM_NEW_VERSION') {\n return 'Update existing file?'\n }\n return ''\n}\n\nfunction getMessage(promptInfo: PromptInfo) {\n if (promptInfo.type === 'CONFIRM_NEW_VERSION') {\n return `A file named \"${promptInfo.fileName}\" (${promptInfo.existingEntityId}) already exists in this location. Do you want to update the existing file and create a new version?`\n }\n return ''\n}\n\nexport function EntityUploadPromptDialog(props: EntityUploadPromptDialogProps) {\n const { activePrompts } = props\n const [yesToAllChecked, setYesToAllChecked] = useState(false)\n\n if (activePrompts.length === 0) {\n return null\n }\n\n const numberOfOtherConfirmVersionPrompts =\n activePrompts.filter(p => p.info.type === 'CONFIRM_NEW_VERSION').length - 1\n\n return (\n <DialogBase\n title={getTitle(activePrompts[0].info)}\n open={true}\n content={\n <>\n <Typography variant={'body1'} gutterBottom>\n {getMessage(activePrompts[0].info)}\n </Typography>\n {activePrompts[0].info.type == 'CONFIRM_NEW_VERSION' &&\n numberOfOtherConfirmVersionPrompts > 0 && (\n <FormControlLabel\n control={<Checkbox />}\n value={yesToAllChecked}\n onChange={(_e, value) => setYesToAllChecked(value)}\n label={`Also update ${numberOfOtherConfirmVersionPrompts.toLocaleString()} other uploaded ${pluralize(\n 'file',\n numberOfOtherConfirmVersionPrompts,\n )} that already exist${\n numberOfOtherConfirmVersionPrompts == 1 ? 's' : ''\n }`}\n />\n )}\n </>\n }\n // Force the user to make a decision\n onCancel={noop}\n hasCloseButton={false}\n actions={\n <>\n {activePrompts[0].onCancelAll && (\n <Button\n variant={'text'}\n color={'error'}\n onClick={activePrompts[0].onCancelAll}\n >\n Cancel All Uploads\n </Button>\n )}\n <Box sx={{ flexGrow: 1 }} />\n {activePrompts[0].onSkip && (\n <Button onClick={activePrompts[0].onSkip}>No</Button>\n )}\n {activePrompts[0].onConfirm && (\n <Button\n variant={'contained'}\n color={'primary'}\n onClick={() => {\n if (yesToAllChecked) {\n activePrompts[0].onConfirmAll()\n } else {\n activePrompts[0].onConfirm()\n }\n }}\n >\n Yes\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;;;AAoBA,SAAS,EAAS,GAAwB;AAIxC,QAHI,EAAW,SAAS,wBACf,0BAEF;;AAGT,SAAS,EAAW,GAAwB;AAI1C,QAHI,EAAW,SAAS,wBACf,iBAAiB,EAAW,SAAS,KAAK,EAAW,iBAAiB,wGAExE;;AAGT,SAAgB,EAAyB,GAAsC;CAC7E,IAAM,EAAE,qBAAkB,GACpB,CAAC,GAAiB,KAAsB,EAAS,GAAM;AAE7D,KAAI,EAAc,WAAW,EAC3B,QAAO;CAGT,IAAM,IACJ,EAAc,QAAO,MAAK,EAAE,KAAK,SAAS,sBAAsB,CAAC,SAAS;AAE5E,QACE,kBAAC,GAAD;EACE,OAAO,EAAS,EAAc,GAAG,KAAK;EACtC,MAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;GAAS,cAAA;aAC3B,EAAW,EAAc,GAAG,KAAK;GACvB,CAAA,EACZ,EAAc,GAAG,KAAK,QAAQ,yBAC7B,IAAqC,KACnC,kBAAC,GAAD;GACE,SAAS,kBAAC,GAAD,EAAY,CAAA;GACrB,OAAO;GACP,WAAW,GAAI,MAAU,EAAmB,EAAM;GAClD,OAAO,eAAe,EAAmC,gBAAgB,CAAC,kBAAkB,EAC1F,QACA,EACD,CAAC,qBACA,KAAsC,IAAI,MAAM;GAElD,CAAA,CAEL,EAAA,CAAA;EAGL,UAAU;EACV,gBAAgB;EAChB,SACE,kBAAA,GAAA,EAAA,UAAA;GACG,EAAc,GAAG,eAChB,kBAAC,GAAD;IACE,SAAS;IACT,OAAO;IACP,SAAS,EAAc,GAAG;cAC3B;IAEQ,CAAA;GAEX,kBAAC,GAAD,EAAK,IAAI,EAAE,UAAU,GAAG,EAAI,CAAA;GAC3B,EAAc,GAAG,UAChB,kBAAC,GAAD;IAAQ,SAAS,EAAc,GAAG;cAAQ;IAAW,CAAA;GAEtD,EAAc,GAAG,aAChB,kBAAC,GAAD;IACE,SAAS;IACT,OAAO;IACP,eAAe;AACb,KAAI,IACF,EAAc,GAAG,cAAc,GAE/B,EAAc,GAAG,WAAW;;cAGjC;IAEQ,CAAA;GAEV,EAAA,CAAA;EAEL,CAAA"}
1
+ {"version":3,"file":"EntityUploadPromptDialog.js","names":[],"sources":["../../../src/components/EntityUpload/EntityUploadPromptDialog.tsx"],"sourcesContent":["import {\n PromptInfo,\n UseUploadFileEntitiesReturn,\n} from '@/utils/hooks/useUploadFileEntity/useUploadFileEntities'\nimport {\n Box,\n Button,\n Checkbox,\n FormControlLabel,\n Typography,\n} from '@mui/material'\nimport { noop } from 'lodash-es'\nimport pluralize from 'pluralize'\nimport { useState } from 'react'\nimport { DialogBase } from '../DialogBase'\n\ntype EntityUploadPromptDialogProps = {\n activePrompts: UseUploadFileEntitiesReturn['activePrompts']\n}\n\nfunction getTitle(promptInfo: PromptInfo) {\n if (promptInfo.type === 'CONFIRM_NEW_VERSION') {\n return 'Update existing file?'\n }\n return ''\n}\n\nfunction getMessage(promptInfo: PromptInfo) {\n if (promptInfo.type === 'CONFIRM_NEW_VERSION') {\n return `A file named \"${promptInfo.fileName}\" (${promptInfo.existingEntityId}) already exists in this location. Do you want to update the existing file and create a new version?`\n }\n return ''\n}\n\nexport function EntityUploadPromptDialog(props: EntityUploadPromptDialogProps) {\n const { activePrompts } = props\n const [yesToAllChecked, setYesToAllChecked] = useState(false)\n\n if (activePrompts.length === 0) {\n return null\n }\n\n const numberOfOtherConfirmVersionPrompts =\n activePrompts.filter(p => p.info.type === 'CONFIRM_NEW_VERSION').length - 1\n\n return (\n <DialogBase\n title={getTitle(activePrompts[0].info)}\n open={true}\n content={\n <>\n <Typography variant={'body1'} gutterBottom>\n {getMessage(activePrompts[0].info)}\n </Typography>\n {activePrompts[0].info.type == 'CONFIRM_NEW_VERSION' &&\n numberOfOtherConfirmVersionPrompts > 0 && (\n <FormControlLabel\n control={<Checkbox />}\n value={yesToAllChecked}\n onChange={(_e, value) => setYesToAllChecked(value)}\n label={`Also update ${numberOfOtherConfirmVersionPrompts.toLocaleString()} other uploaded ${pluralize(\n 'file',\n numberOfOtherConfirmVersionPrompts,\n )} that already exist${\n numberOfOtherConfirmVersionPrompts == 1 ? 's' : ''\n }`}\n />\n )}\n </>\n }\n // Force the user to make a decision\n onCancel={noop}\n hasCloseButton={false}\n actions={\n <>\n {activePrompts[0].onCancelAll && (\n <Button\n variant={'text'}\n color={'error'}\n onClick={activePrompts[0].onCancelAll}\n >\n Cancel All Uploads\n </Button>\n )}\n <Box sx={{ flexGrow: 1 }} />\n {activePrompts[0].onSkip && (\n <Button onClick={activePrompts[0].onSkip}>No</Button>\n )}\n {activePrompts[0].onConfirm && (\n <Button\n variant={'contained'}\n color={'primary'}\n onClick={() => {\n if (yesToAllChecked) {\n activePrompts[0].onConfirmAll()\n } else {\n activePrompts[0].onConfirm()\n }\n }}\n >\n Yes\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;;;AAoBA,SAAS,EAAS,GAAwB;CAIxC,OAHI,EAAW,SAAS,wBACf,0BAEF;AACT;AAEA,SAAS,EAAW,GAAwB;CAI1C,OAHI,EAAW,SAAS,wBACf,iBAAiB,EAAW,SAAS,KAAK,EAAW,iBAAiB,wGAExE;AACT;AAEA,SAAgB,EAAyB,GAAsC;CAC7E,IAAM,EAAE,qBAAkB,GACpB,CAAC,GAAiB,KAAsB,EAAS,EAAK;CAE5D,IAAI,EAAc,WAAW,GAC3B,OAAO;CAGT,IAAM,IACJ,EAAc,QAAO,MAAK,EAAE,KAAK,SAAS,qBAAqB,EAAE,SAAS;CAE5E,OACE,kBAAC,GAAD;EACE,OAAO,EAAS,EAAc,GAAG,IAAI;EACrC,MAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;GAAS,cAAA;aAC3B,EAAW,EAAc,GAAG,IAAI;EACvB,CAAA,GACX,EAAc,GAAG,KAAK,QAAQ,yBAC7B,IAAqC,KACnC,kBAAC,GAAD;GACE,SAAS,kBAAC,GAAD,CAAW,CAAA;GACpB,OAAO;GACP,WAAW,GAAI,MAAU,EAAmB,CAAK;GACjD,OAAO,eAAe,EAAmC,eAAe,EAAE,kBAAkB,EAC1F,QACA,CACF,EAAE,qBACA,KAAsC,IAAI,MAAM;EAEnD,CAAA,CAEL,EAAA,CAAA;EAGJ,UAAU;EACV,gBAAgB;EAChB,SACE,kBAAA,GAAA,EAAA,UAAA;GACG,EAAc,GAAG,eAChB,kBAAC,GAAD;IACE,SAAS;IACT,OAAO;IACP,SAAS,EAAc,GAAG;cAC3B;GAEO,CAAA;GAEV,kBAAC,GAAD,EAAK,IAAI,EAAE,UAAU,EAAE,EAAI,CAAA;GAC1B,EAAc,GAAG,UAChB,kBAAC,GAAD;IAAQ,SAAS,EAAc,GAAG;cAAQ;GAAU,CAAA;GAErD,EAAc,GAAG,aAChB,kBAAC,GAAD;IACE,SAAS;IACT,OAAO;IACP,eAAe;KACb,AAAI,IACF,EAAc,GAAG,aAAa,IAE9B,EAAc,GAAG,UAAU;IAE/B;cACD;GAEO,CAAA;EAEV,EAAA,CAAA;CAEL,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalObjectStoreCredentialsForm.js","names":[],"sources":["../../../src/components/EntityUpload/ExternalObjectStoreCredentialsForm.tsx"],"sourcesContent":["import { Stack, TextField, Typography } from '@mui/material'\nimport {\n instanceOfExternalObjectStoreUploadDestination,\n UploadDestination,\n} from '@sage-bionetworks/synapse-client'\nimport { Dispatch, SetStateAction } from 'react'\n\ntype ExternalObjectStoreCredentialsFormProps = {\n uploadDestination?: UploadDestination\n accessKey: string\n setAccessKey: Dispatch<SetStateAction<string>>\n secretKey: string\n setSecretKey: Dispatch<SetStateAction<string>>\n}\n\nexport function ExternalObjectStoreCredentialsForm(\n props: ExternalObjectStoreCredentialsFormProps,\n) {\n const {\n uploadDestination,\n accessKey,\n setAccessKey,\n secretKey,\n setSecretKey,\n } = props\n\n if (\n uploadDestination == null ||\n !instanceOfExternalObjectStoreUploadDestination(uploadDestination) ||\n !uploadDestination.endpointUrl\n ) {\n return <></>\n }\n\n return (\n <Stack\n sx={{\n gap: 1.5,\n mb: 3,\n }}\n >\n <Typography>\n Authorization is required to access{' '}\n <strong>{uploadDestination.endpointUrl}</strong>\n </Typography>\n <TextField\n label={'Access Key'}\n fullWidth\n value={accessKey}\n onChange={e => {\n setAccessKey(e.target.value)\n }}\n />\n <TextField\n label={'Secret Key'}\n type={'password'}\n fullWidth\n value={secretKey}\n onChange={e => {\n setSecretKey(e.target.value)\n }}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n fontStyle: 'italic',\n }}\n >\n Keys are used to locally sign a web request. They are not transmitted or\n stored by Synapse.\n </Typography>\n </Stack>\n )\n}\n"],"mappings":";;;;AAeA,SAAgB,EACd,GACA;CACA,IAAM,EACJ,sBACA,cACA,iBACA,cACA,oBACE;AAUJ,QAPE,KAAqB,QACrB,CAAC,EAA+C,EAAkB,IAClE,CAAC,EAAkB,cAEZ,kBAAA,GAAA,EAAK,CAAA,GAIZ,kBAAC,GAAD;EACE,IAAI;GACF,KAAK;GACL,IAAI;GACL;YAJH;GAME,kBAAC,GAAD,EAAA,UAAA;IAAY;IAC0B;IACpC,kBAAC,UAAD,EAAA,UAAS,EAAkB,aAAqB,CAAA;IACrC,EAAA,CAAA;GACb,kBAAC,GAAD;IACE,OAAO;IACP,WAAA;IACA,OAAO;IACP,WAAU,MAAK;AACb,OAAa,EAAE,OAAO,MAAM;;IAE9B,CAAA;GACF,kBAAC,GAAD;IACE,OAAO;IACP,MAAM;IACN,WAAA;IACA,OAAO;IACP,WAAU,MAAK;AACb,OAAa,EAAE,OAAO,MAAM;;IAE9B,CAAA;GACF,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,WAAW,UACZ;cACF;IAGY,CAAA;GACP"}
1
+ {"version":3,"file":"ExternalObjectStoreCredentialsForm.js","names":[],"sources":["../../../src/components/EntityUpload/ExternalObjectStoreCredentialsForm.tsx"],"sourcesContent":["import { Stack, TextField, Typography } from '@mui/material'\nimport {\n instanceOfExternalObjectStoreUploadDestination,\n UploadDestination,\n} from '@sage-bionetworks/synapse-client'\nimport { Dispatch, SetStateAction } from 'react'\n\ntype ExternalObjectStoreCredentialsFormProps = {\n uploadDestination?: UploadDestination\n accessKey: string\n setAccessKey: Dispatch<SetStateAction<string>>\n secretKey: string\n setSecretKey: Dispatch<SetStateAction<string>>\n}\n\nexport function ExternalObjectStoreCredentialsForm(\n props: ExternalObjectStoreCredentialsFormProps,\n) {\n const {\n uploadDestination,\n accessKey,\n setAccessKey,\n secretKey,\n setSecretKey,\n } = props\n\n if (\n uploadDestination == null ||\n !instanceOfExternalObjectStoreUploadDestination(uploadDestination) ||\n !uploadDestination.endpointUrl\n ) {\n return <></>\n }\n\n return (\n <Stack\n sx={{\n gap: 1.5,\n mb: 3,\n }}\n >\n <Typography>\n Authorization is required to access{' '}\n <strong>{uploadDestination.endpointUrl}</strong>\n </Typography>\n <TextField\n label={'Access Key'}\n fullWidth\n value={accessKey}\n onChange={e => {\n setAccessKey(e.target.value)\n }}\n />\n <TextField\n label={'Secret Key'}\n type={'password'}\n fullWidth\n value={secretKey}\n onChange={e => {\n setSecretKey(e.target.value)\n }}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n fontStyle: 'italic',\n }}\n >\n Keys are used to locally sign a web request. They are not transmitted or\n stored by Synapse.\n </Typography>\n </Stack>\n )\n}\n"],"mappings":";;;;AAeA,SAAgB,EACd,GACA;CACA,IAAM,EACJ,sBACA,cACA,iBACA,cACA,oBACE;CAUJ,OAPE,KAAqB,QACrB,CAAC,EAA+C,CAAiB,KACjE,CAAC,EAAkB,cAEZ,kBAAA,GAAA,CAAI,CAAA,IAIX,kBAAC,GAAD;EACE,IAAI;GACF,KAAK;GACL,IAAI;EACN;YAJF;GAME,kBAAC,GAAD,EAAA,UAAA;IAAY;IAC0B;IACpC,kBAAC,UAAD,EAAA,UAAS,EAAkB,YAAoB,CAAA;GACrC,EAAA,CAAA;GACZ,kBAAC,GAAD;IACE,OAAO;IACP,WAAA;IACA,OAAO;IACP,WAAU,MAAK;KACb,EAAa,EAAE,OAAO,KAAK;IAC7B;GACD,CAAA;GACD,kBAAC,GAAD;IACE,OAAO;IACP,MAAM;IACN,WAAA;IACA,OAAO;IACP,WAAU,MAAK;KACb,EAAa,EAAE,OAAO,KAAK;IAC7B;GACD,CAAA;GACD,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,WAAW,SACb;cACD;GAGW,CAAA;EACP;;AAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadProgress.js","names":[],"sources":["../../../src/components/EntityUpload/FileUploadProgress.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n CheckCircleTwoTone,\n DeleteTwoTone,\n ErrorTwoTone,\n Pause,\n PlayArrow,\n} from '@mui/icons-material'\nimport CloseIcon from '@mui/icons-material/Close'\nimport {\n Box,\n IconButton,\n LinearProgress,\n Tooltip,\n Typography,\n} from '@mui/material'\n\nexport type FileUploadProgressProps = {\n /** The status of the upload. */\n status:\n | 'PREPARING'\n | 'UPLOADING'\n | 'PAUSED'\n | 'CANCELED_BY_USER'\n | 'FAILED'\n | 'COMPLETE'\n /** The name of the file */\n fileName: string\n /** The size of the file, in bytes */\n totalSizeInBytes: number\n /** The number of this file's bytes uploaded so far. */\n uploadedSizeInBytes?: number\n /** Invoked when the upload is cancelled. */\n onCancel: () => void\n /** Invoked when the upload is paused. */\n onPause: () => void\n /** Invoked when the resumed. */\n onResume: () => void\n /** Invoked when the upload is removed from the list. */\n onRemove: () => void\n /** An optional error message to display if the upload has been cancelled due to error. */\n errorMessage?: string\n}\n\nexport const FILE_UPLOAD_PROGRESS_COMPONENT_HEIGHT_PX = 92\n\n/**\n * Component that displays the upload progress of a file, with controls to pause or cancel the upload.\n */\nexport function FileUploadProgress(props: FileUploadProgressProps) {\n const {\n status,\n fileName,\n onCancel,\n onPause,\n onResume,\n onRemove,\n uploadedSizeInBytes = 0,\n totalSizeInBytes,\n errorMessage,\n } = props\n\n const isPaused = status === 'PAUSED'\n const isCanceled = status === 'CANCELED_BY_USER' || status === 'FAILED'\n const isComplete = status === 'COMPLETE'\n const isFailed = status === 'FAILED'\n const isUploading = status === 'UPLOADING'\n const isPreparingUpload = status === 'PREPARING'\n\n let progress: number | undefined =\n (uploadedSizeInBytes / totalSizeInBytes) * 100\n\n if (isPreparingUpload) {\n progress = undefined\n } else if (isFailed || isCanceled) {\n progress = 0\n }\n\n return (\n <Box\n sx={{\n py: 2,\n height: `${FILE_UPLOAD_PROGRESS_COMPONENT_HEIGHT_PX}px`,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '35px',\n }}\n >\n <Typography\n variant={'body1'}\n sx={{\n color: 'primary.main',\n fontWeight: 700,\n }}\n >\n {fileName}\n </Typography>\n {!isComplete && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n my: 1,\n }}\n >\n {isFailed && (\n <Tooltip title={errorMessage}>\n <ErrorTwoTone color={'error'} />\n </Tooltip>\n )}\n {!isCanceled && (\n <Tooltip title={'Cancel'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onCancel()\n }}\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n {isUploading && (\n <Tooltip title={'Pause'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onPause()\n }}\n >\n <Pause />\n </IconButton>\n </Tooltip>\n )}\n {isPaused && (\n <Tooltip title={'Resume'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onResume()\n }}\n >\n <PlayArrow />\n </IconButton>\n </Tooltip>\n )}\n {isCanceled && (\n <Tooltip title={'Remove'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onRemove()\n }}\n >\n <DeleteTwoTone />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n )}\n {isComplete && <CheckCircleTwoTone color={'success'} />}\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n }}\n >\n <LinearProgress\n color={'secondary'}\n value={progress}\n variant={isPreparingUpload ? 'indeterminate' : 'determinate'}\n sx={{ width: '100%', mr: 2.5 }}\n />\n {!isCanceled && (\n <Typography\n variant={'body1'}\n sx={{\n whiteSpace: 'nowrap',\n flexShrink: 0,\n }}\n >\n {isPreparingUpload ? (\n 'Preparing to upload...'\n ) : (\n <>\n <span>{calculateFriendlyFileSize(uploadedSizeInBytes, 1)}</span>\n <Box\n component={'span'}\n sx={{\n color: 'grey.600',\n mx: 0.5,\n }}\n >\n |\n </Box>\n <span>{calculateFriendlyFileSize(totalSizeInBytes, 1)}</span>\n </>\n )}\n </Typography>\n )}\n {isCanceled && (\n <Typography\n variant={'body1'}\n sx={{\n whiteSpace: 'nowrap',\n flexShrink: 0,\n }}\n >\n {isFailed ? 'Failed' : 'Canceled'}\n </Typography>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AA4CA,IAAa,IAA2C;AAKxD,SAAgB,EAAmB,GAAgC;CACjE,IAAM,EACJ,WACA,aACA,aACA,YACA,aACA,aACA,yBAAsB,GACtB,qBACA,oBACE,GAEE,IAAW,MAAW,UACtB,IAAa,MAAW,sBAAsB,MAAW,UACzD,IAAa,MAAW,YACxB,IAAW,MAAW,UACtB,IAAc,MAAW,aACzB,IAAoB,MAAW,aAEjC,IACD,IAAsB,IAAoB;AAQ7C,QANI,IACF,IAAW,KAAA,KACF,KAAY,OACrB,IAAW,IAIX,kBAAC,GAAD;EACE,IAAI;GACF,IAAI;GACJ,QAAQ;GACT;YAJH,CAME,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,YAAY;IACZ,QAAQ;IACT;aARH;IAUE,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,OAAO;MACP,YAAY;MACb;eAEA;KACU,CAAA;IACZ,CAAC,KACA,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,YAAY;MACZ,KAAK;MACL,IAAI;MACL;eANH;MAQG,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD,EAAc,OAAO,SAAW,CAAA;OACxB,CAAA;MAEX,CAAC,KACA,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;AACb,YAAU;;kBAGZ,kBAAC,GAAD,EAAa,CAAA;QACF,CAAA;OACL,CAAA;MAEX,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;AACb,YAAS;;kBAGX,kBAAC,GAAD,EAAS,CAAA;QACE,CAAA;OACL,CAAA;MAEX,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;AACb,YAAU;;kBAGZ,kBAAC,GAAD,EAAa,CAAA;QACF,CAAA;OACL,CAAA;MAEX,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;AACb,YAAU;;kBAGZ,kBAAC,GAAD,EAAiB,CAAA;QACN,CAAA;OACL,CAAA;MAER;;IAEP,KAAc,kBAAC,GAAD,EAAoB,OAAO,WAAa,CAAA;IACnD;MACN,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,UAAU;IACV,YAAY;IACb;aALH;IAOE,kBAAC,GAAD;KACE,OAAO;KACP,OAAO;KACP,SAAS,IAAoB,kBAAkB;KAC/C,IAAI;MAAE,OAAO;MAAQ,IAAI;MAAK;KAC9B,CAAA;IACD,CAAC,KACA,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,YAAY;MACZ,YAAY;MACb;eAEA,IACC,2BAEA,kBAAA,GAAA,EAAA,UAAA;MACE,kBAAC,QAAD,EAAA,UAAO,EAA0B,GAAqB,EAAE,EAAQ,CAAA;MAChE,kBAAC,GAAD;OACE,WAAW;OACX,IAAI;QACF,OAAO;QACP,IAAI;QACL;iBACF;OAEK,CAAA;MACN,kBAAC,QAAD,EAAA,UAAO,EAA0B,GAAkB,EAAE,EAAQ,CAAA;MAC5D,EAAA,CAAA;KAEM,CAAA;IAEd,KACC,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,YAAY;MACZ,YAAY;MACb;eAEA,IAAW,WAAW;KACZ,CAAA;IAEX;KACF"}
1
+ {"version":3,"file":"FileUploadProgress.js","names":[],"sources":["../../../src/components/EntityUpload/FileUploadProgress.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n CheckCircleTwoTone,\n DeleteTwoTone,\n ErrorTwoTone,\n Pause,\n PlayArrow,\n} from '@mui/icons-material'\nimport CloseIcon from '@mui/icons-material/Close'\nimport {\n Box,\n IconButton,\n LinearProgress,\n Tooltip,\n Typography,\n} from '@mui/material'\n\nexport type FileUploadProgressProps = {\n /** The status of the upload. */\n status:\n | 'PREPARING'\n | 'UPLOADING'\n | 'PAUSED'\n | 'CANCELED_BY_USER'\n | 'FAILED'\n | 'COMPLETE'\n /** The name of the file */\n fileName: string\n /** The size of the file, in bytes */\n totalSizeInBytes: number\n /** The number of this file's bytes uploaded so far. */\n uploadedSizeInBytes?: number\n /** Invoked when the upload is cancelled. */\n onCancel: () => void\n /** Invoked when the upload is paused. */\n onPause: () => void\n /** Invoked when the resumed. */\n onResume: () => void\n /** Invoked when the upload is removed from the list. */\n onRemove: () => void\n /** An optional error message to display if the upload has been cancelled due to error. */\n errorMessage?: string\n}\n\nexport const FILE_UPLOAD_PROGRESS_COMPONENT_HEIGHT_PX = 92\n\n/**\n * Component that displays the upload progress of a file, with controls to pause or cancel the upload.\n */\nexport function FileUploadProgress(props: FileUploadProgressProps) {\n const {\n status,\n fileName,\n onCancel,\n onPause,\n onResume,\n onRemove,\n uploadedSizeInBytes = 0,\n totalSizeInBytes,\n errorMessage,\n } = props\n\n const isPaused = status === 'PAUSED'\n const isCanceled = status === 'CANCELED_BY_USER' || status === 'FAILED'\n const isComplete = status === 'COMPLETE'\n const isFailed = status === 'FAILED'\n const isUploading = status === 'UPLOADING'\n const isPreparingUpload = status === 'PREPARING'\n\n let progress: number | undefined =\n (uploadedSizeInBytes / totalSizeInBytes) * 100\n\n if (isPreparingUpload) {\n progress = undefined\n } else if (isFailed || isCanceled) {\n progress = 0\n }\n\n return (\n <Box\n sx={{\n py: 2,\n height: `${FILE_UPLOAD_PROGRESS_COMPONENT_HEIGHT_PX}px`,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '35px',\n }}\n >\n <Typography\n variant={'body1'}\n sx={{\n color: 'primary.main',\n fontWeight: 700,\n }}\n >\n {fileName}\n </Typography>\n {!isComplete && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n my: 1,\n }}\n >\n {isFailed && (\n <Tooltip title={errorMessage}>\n <ErrorTwoTone color={'error'} />\n </Tooltip>\n )}\n {!isCanceled && (\n <Tooltip title={'Cancel'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onCancel()\n }}\n >\n <CloseIcon />\n </IconButton>\n </Tooltip>\n )}\n {isUploading && (\n <Tooltip title={'Pause'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onPause()\n }}\n >\n <Pause />\n </IconButton>\n </Tooltip>\n )}\n {isPaused && (\n <Tooltip title={'Resume'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onResume()\n }}\n >\n <PlayArrow />\n </IconButton>\n </Tooltip>\n )}\n {isCanceled && (\n <Tooltip title={'Remove'}>\n <IconButton\n size={'small'}\n onClick={() => {\n onRemove()\n }}\n >\n <DeleteTwoTone />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n )}\n {isComplete && <CheckCircleTwoTone color={'success'} />}\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n }}\n >\n <LinearProgress\n color={'secondary'}\n value={progress}\n variant={isPreparingUpload ? 'indeterminate' : 'determinate'}\n sx={{ width: '100%', mr: 2.5 }}\n />\n {!isCanceled && (\n <Typography\n variant={'body1'}\n sx={{\n whiteSpace: 'nowrap',\n flexShrink: 0,\n }}\n >\n {isPreparingUpload ? (\n 'Preparing to upload...'\n ) : (\n <>\n <span>{calculateFriendlyFileSize(uploadedSizeInBytes, 1)}</span>\n <Box\n component={'span'}\n sx={{\n color: 'grey.600',\n mx: 0.5,\n }}\n >\n |\n </Box>\n <span>{calculateFriendlyFileSize(totalSizeInBytes, 1)}</span>\n </>\n )}\n </Typography>\n )}\n {isCanceled && (\n <Typography\n variant={'body1'}\n sx={{\n whiteSpace: 'nowrap',\n flexShrink: 0,\n }}\n >\n {isFailed ? 'Failed' : 'Canceled'}\n </Typography>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AA4CA,IAAa,IAA2C;AAKxD,SAAgB,EAAmB,GAAgC;CACjE,IAAM,EACJ,WACA,aACA,aACA,YACA,aACA,aACA,yBAAsB,GACtB,qBACA,oBACE,GAEE,IAAW,MAAW,UACtB,IAAa,MAAW,sBAAsB,MAAW,UACzD,IAAa,MAAW,YACxB,IAAW,MAAW,UACtB,IAAc,MAAW,aACzB,IAAoB,MAAW,aAEjC,IACD,IAAsB,IAAoB;CAQ7C,OANI,IACF,IAAW,KAAA,KACF,KAAY,OACrB,IAAW,IAIX,kBAAC,GAAD;EACE,IAAI;GACF,IAAI;GACJ,QAAQ;EACV;YAJF,CAME,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,YAAY;IACZ,QAAQ;GACV;aARF;IAUE,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,OAAO;MACP,YAAY;KACd;eAEC;IACS,CAAA;IACX,CAAC,KACA,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,YAAY;MACZ,KAAK;MACL,IAAI;KACN;eANF;MAQG,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD,EAAc,OAAO,QAAU,CAAA;MACxB,CAAA;MAEV,CAAC,KACA,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;SACb,EAAS;QACX;kBAEA,kBAAC,GAAD,CAAY,CAAA;OACF,CAAA;MACL,CAAA;MAEV,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;SACb,EAAQ;QACV;kBAEA,kBAAC,GAAD,CAAQ,CAAA;OACE,CAAA;MACL,CAAA;MAEV,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;SACb,EAAS;QACX;kBAEA,kBAAC,GAAD,CAAY,CAAA;OACF,CAAA;MACL,CAAA;MAEV,KACC,kBAAC,GAAD;OAAS,OAAO;iBACd,kBAAC,GAAD;QACE,MAAM;QACN,eAAe;SACb,EAAS;QACX;kBAEA,kBAAC,GAAD,CAAgB,CAAA;OACN,CAAA;MACL,CAAA;KAER;;IAEN,KAAc,kBAAC,GAAD,EAAoB,OAAO,UAAY,CAAA;GACnD;MACL,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,UAAU;IACV,YAAY;GACd;aALF;IAOE,kBAAC,GAAD;KACE,OAAO;KACP,OAAO;KACP,SAAS,IAAoB,kBAAkB;KAC/C,IAAI;MAAE,OAAO;MAAQ,IAAI;KAAI;IAC9B,CAAA;IACA,CAAC,KACA,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,YAAY;MACZ,YAAY;KACd;eAEC,IACC,2BAEA,kBAAA,GAAA,EAAA,UAAA;MACE,kBAAC,QAAD,EAAA,UAAO,EAA0B,GAAqB,CAAC,EAAQ,CAAA;MAC/D,kBAAC,GAAD;OACE,WAAW;OACX,IAAI;QACF,OAAO;QACP,IAAI;OACN;iBACD;MAEI,CAAA;MACL,kBAAC,QAAD,EAAA,UAAO,EAA0B,GAAkB,CAAC,EAAQ,CAAA;KAC5D,EAAA,CAAA;IAEM,CAAA;IAEb,KACC,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,YAAY;MACZ,YAAY;KACd;eAEC,IAAW,WAAW;IACb,CAAA;GAEX;IACF;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkToURL.js","names":[],"sources":["../../../src/components/EntityUpload/LinkToURL.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries/index'\nimport { useLinkFileEntityToURL } from '@/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL'\nimport { Alert, Box, Stack, TextField, Typography } from '@mui/material'\nimport { FileEntity } from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\n\ntype LinkToURLProps = {\n /** The ID of the FileEntity that should be updated, or container entity in which a new FileEntity should be created. */\n entityId: string\n /** Invoked when the validity of the form changes (e.g. to disable/activate a submit button) */\n onIsValidChanged?: (isValid: boolean) => void\n /** Invoked when the call to create or update the entity succeeds. */\n onSuccess?: (newOrUpdatedEntity: FileEntity) => void\n}\n\nexport type LinkToURLHandle = {\n submit: () => void\n}\n\nexport const LinkToURL = forwardRef(function LinkToURL(\n props: LinkToURLProps,\n ref: ForwardedRef<LinkToURLHandle>,\n) {\n const { entityId, onIsValidChanged = noop, onSuccess = noop } = props\n\n const [url, setUrl] = useState('')\n const [name, setName] = useState('')\n\n const { data: entity } = useGetEntity(entityId)\n const isFileEntity =\n entity?.concreteType === 'org.sagebionetworks.repo.model.FileEntity'\n\n const { mutate, error } = useLinkFileEntityToURL({\n onSuccess,\n })\n\n useEffect(() => {\n const isValid = url.trim().length > 0\n onIsValidChanged(isValid)\n }, [url, onIsValidChanged])\n\n useImperativeHandle(ref, () => ({\n submit: () => {\n mutate({\n url: url.trim(),\n name: name.trim(),\n entityId,\n })\n },\n }))\n\n if (!entity) {\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <SynapseSpinner size={40} />\n </Box>\n )\n }\n\n return (\n <Stack\n sx={{\n gap: 2,\n }}\n >\n <Typography variant={'body1'}>\n Provide a URL to create a link to a file that is located in external\n storage or hosted on the web. Metadata, provenance, and annotations\n related to the file can be stored in Synapse, but the file data itself\n can only be accessed using the link.\n </Typography>\n <TextField\n label=\"URL\"\n required\n fullWidth\n value={url}\n onChange={e => setUrl(e.target.value)}\n />\n {!isFileEntity && (\n <TextField\n label=\"Name\"\n fullWidth\n value={name}\n onChange={e => setName(e.target.value)}\n />\n )}\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }}>\n {error?.message ??\n 'An error occurred while attempting to create the link.'}\n </Alert>\n )}\n </Stack>\n )\n})\n"],"mappings":";;;;;;;;;AA2BA,IAAa,IAAY,EAAW,SAClC,GACA,GACA;CACA,IAAM,EAAE,aAAU,sBAAmB,GAAM,eAAY,MAAS,GAE1D,CAAC,GAAK,KAAU,EAAS,GAAG,EAC5B,CAAC,GAAM,KAAW,EAAS,GAAG,EAE9B,EAAE,MAAM,MAAW,EAAa,EAAS,EACzC,IACJ,GAAQ,iBAAiB,6CAErB,EAAE,WAAQ,aAAU,EAAuB,EAC/C,cACD,CAAC;AA8BF,QA5BA,QAAgB;AAEd,IADgB,EAAI,MAAM,CAAC,SAAS,EACX;IACxB,CAAC,GAAK,EAAiB,CAAC,EAE3B,EAAoB,UAAY,EAC9B,cAAc;AACZ,IAAO;GACL,KAAK,EAAI,MAAM;GACf,MAAM,EAAK,MAAM;GACjB;GACD,CAAC;IAEL,EAAE,EAEE,IAcH,kBAAC,GAAD;EACE,IAAI,EACF,KAAK,GACN;YAHH;GAKE,kBAAC,GAAD;IAAY,SAAS;cAAS;IAKjB,CAAA;GACb,kBAAC,GAAD;IACE,OAAM;IACN,UAAA;IACA,WAAA;IACA,OAAO;IACP,WAAU,MAAK,EAAO,EAAE,OAAO,MAAM;IACrC,CAAA;GACD,CAAC,KACA,kBAAC,GAAD;IACE,OAAM;IACN,WAAA;IACA,OAAO;IACP,WAAU,MAAK,EAAQ,EAAE,OAAO,MAAM;IACtC,CAAA;GAEH,KACC,kBAAC,GAAD;IAAO,UAAU;IAAS,IAAI,EAAE,IAAI,GAAG;cACpC,GAAO,WACN;IACI,CAAA;GAEJ;MA5CN,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,gBAAgB;GACjB;YAED,kBAAC,GAAD,EAAgB,MAAM,IAAM,CAAA;EACxB,CAAA;EAuCV"}
1
+ {"version":3,"file":"LinkToURL.js","names":[],"sources":["../../../src/components/EntityUpload/LinkToURL.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries/index'\nimport { useLinkFileEntityToURL } from '@/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL'\nimport { Alert, Box, Stack, TextField, Typography } from '@mui/material'\nimport { FileEntity } from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\n\ntype LinkToURLProps = {\n /** The ID of the FileEntity that should be updated, or container entity in which a new FileEntity should be created. */\n entityId: string\n /** Invoked when the validity of the form changes (e.g. to disable/activate a submit button) */\n onIsValidChanged?: (isValid: boolean) => void\n /** Invoked when the call to create or update the entity succeeds. */\n onSuccess?: (newOrUpdatedEntity: FileEntity) => void\n}\n\nexport type LinkToURLHandle = {\n submit: () => void\n}\n\nexport const LinkToURL = forwardRef(function LinkToURL(\n props: LinkToURLProps,\n ref: ForwardedRef<LinkToURLHandle>,\n) {\n const { entityId, onIsValidChanged = noop, onSuccess = noop } = props\n\n const [url, setUrl] = useState('')\n const [name, setName] = useState('')\n\n const { data: entity } = useGetEntity(entityId)\n const isFileEntity =\n entity?.concreteType === 'org.sagebionetworks.repo.model.FileEntity'\n\n const { mutate, error } = useLinkFileEntityToURL({\n onSuccess,\n })\n\n useEffect(() => {\n const isValid = url.trim().length > 0\n onIsValidChanged(isValid)\n }, [url, onIsValidChanged])\n\n useImperativeHandle(ref, () => ({\n submit: () => {\n mutate({\n url: url.trim(),\n name: name.trim(),\n entityId,\n })\n },\n }))\n\n if (!entity) {\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <SynapseSpinner size={40} />\n </Box>\n )\n }\n\n return (\n <Stack\n sx={{\n gap: 2,\n }}\n >\n <Typography variant={'body1'}>\n Provide a URL to create a link to a file that is located in external\n storage or hosted on the web. Metadata, provenance, and annotations\n related to the file can be stored in Synapse, but the file data itself\n can only be accessed using the link.\n </Typography>\n <TextField\n label=\"URL\"\n required\n fullWidth\n value={url}\n onChange={e => setUrl(e.target.value)}\n />\n {!isFileEntity && (\n <TextField\n label=\"Name\"\n fullWidth\n value={name}\n onChange={e => setName(e.target.value)}\n />\n )}\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }}>\n {error?.message ??\n 'An error occurred while attempting to create the link.'}\n </Alert>\n )}\n </Stack>\n )\n})\n"],"mappings":";;;;;;;;;AA2BA,IAAa,IAAY,EAAW,SAClC,GACA,GACA;CACA,IAAM,EAAE,aAAU,sBAAmB,GAAM,eAAY,MAAS,GAE1D,CAAC,GAAK,KAAU,EAAS,EAAE,GAC3B,CAAC,GAAM,KAAW,EAAS,EAAE,GAE7B,EAAE,MAAM,MAAW,EAAa,CAAQ,GACxC,IACJ,GAAQ,iBAAiB,6CAErB,EAAE,WAAQ,aAAU,EAAuB,EAC/C,aACF,CAAC;CA8BD,OA5BA,QAAgB;EAEd,EADgB,EAAI,KAAK,EAAE,SAAS,CACZ;CAC1B,GAAG,CAAC,GAAK,CAAgB,CAAC,GAE1B,EAAoB,UAAY,EAC9B,cAAc;EACZ,EAAO;GACL,KAAK,EAAI,KAAK;GACd,MAAM,EAAK,KAAK;GAChB;EACF,CAAC;CACH,EACF,EAAE,GAEG,IAcH,kBAAC,GAAD;EACE,IAAI,EACF,KAAK,EACP;YAHF;GAKE,kBAAC,GAAD;IAAY,SAAS;cAAS;GAKlB,CAAA;GACZ,kBAAC,GAAD;IACE,OAAM;IACN,UAAA;IACA,WAAA;IACA,OAAO;IACP,WAAU,MAAK,EAAO,EAAE,OAAO,KAAK;GACrC,CAAA;GACA,CAAC,KACA,kBAAC,GAAD;IACE,OAAM;IACN,WAAA;IACA,OAAO;IACP,WAAU,MAAK,EAAQ,EAAE,OAAO,KAAK;GACtC,CAAA;GAEF,KACC,kBAAC,GAAD;IAAO,UAAU;IAAS,IAAI,EAAE,IAAI,EAAE;cACnC,GAAO,WACN;GACG,CAAA;EAEJ;MA5CL,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,gBAAgB;EAClB;YAEA,kBAAC,GAAD,EAAgB,MAAM,GAAK,CAAA;CACxB,CAAA;AAuCX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectStorageLimitAlert.js","names":[],"sources":["../../../src/components/EntityUpload/ProjectStorageLimitAlert.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { SAGE_OFFERINGS_HELP_URL } from '@/utils/SynapseConstants'\nimport { ProjectStorageLocationUsage } from '@sage-bionetworks/synapse-client'\nimport FullWidthAlert from '../FullWidthAlert'\n\nexport type ProjectStorageLimitAlertProps = {\n didUploadsExceedLimit: boolean\n usage: ProjectStorageLocationUsage\n}\n\n// When the remaining storage is less than this percentage, show a warning\nconst PERCENT_REMAINING_STORAGE_TO_SHOW_WARNING = 0.25\n\nexport function ProjectStorageLimitAlert(props: ProjectStorageLimitAlertProps) {\n const { usage, didUploadsExceedLimit } = props\n\n if (usage.maxAllowedFileBytes == null) {\n // No limit!\n return null\n }\n\n const warningThresholdBytes =\n usage.maxAllowedFileBytes * (1 - PERCENT_REMAINING_STORAGE_TO_SHOW_WARNING)\n\n const sumFileBytes = usage.sumFileBytes ?? 0\n\n const remainingStorageBytes = usage.maxAllowedFileBytes - sumFileBytes\n\n if (!didUploadsExceedLimit && sumFileBytes < warningThresholdBytes) {\n // No need to show a warning\n return null\n }\n\n if (usage.isOverLimit) {\n return (\n <FullWidthAlert\n variant=\"danger\"\n isGlobal={false}\n title={'You have no data availability'}\n description={\n 'You do not have any remaining data within this project. In order to upload more files, you must edit your file list or upgrade your plan.'\n }\n primaryButtonConfig={{\n text: 'Learn more',\n href: SAGE_OFFERINGS_HELP_URL,\n }}\n ></FullWidthAlert>\n )\n }\n\n if (didUploadsExceedLimit) {\n return (\n <FullWidthAlert\n variant=\"danger\"\n isGlobal={false}\n title={'Selected files exceed available storage'}\n description={`This project has only ${calculateFriendlyFileSize(\n remainingStorageBytes,\n 1,\n )} of storage remaining. To continue, you must upgrade your storage, or add custom storage.`}\n primaryButtonConfig={{\n text: 'Learn more',\n href: SAGE_OFFERINGS_HELP_URL,\n }}\n ></FullWidthAlert>\n )\n }\n\n // Otherwise, show a warning\n return (\n <FullWidthAlert\n variant=\"warning\"\n isGlobal={false}\n title={'Warning: Your storage availability is limited'}\n description={`Your project has less than ${\n PERCENT_REMAINING_STORAGE_TO_SHOW_WARNING * 100\n }% remaining of available storage left. Upgrade your storage, or bring your own custom storage.`}\n primaryButtonConfig={{\n text: 'Learn more',\n href: SAGE_OFFERINGS_HELP_URL,\n }}\n ></FullWidthAlert>\n )\n}\n"],"mappings":";;;;;AAWA,IAAM,IAA4C;AAElD,SAAgB,EAAyB,GAAsC;CAC7E,IAAM,EAAE,UAAO,6BAA0B;AAEzC,KAAI,EAAM,uBAAuB,KAE/B,QAAO;CAGT,IAAM,IACJ,EAAM,uBAAuB,IAAI,IAE7B,IAAe,EAAM,gBAAgB,GAErC,IAAwB,EAAM,sBAAsB;AA2C1D,QAzCI,CAAC,KAAyB,IAAe,IAEpC,OAGL,EAAM,cAEN,kBAAC,GAAD;EACE,SAAQ;EACR,UAAU;EACV,OAAO;EACP,aACE;EAEF,qBAAqB;GACnB,MAAM;GACN,MAAM;GACP;EACe,CAAA,GAIlB,IAEA,kBAAC,GAAD;EACE,SAAQ;EACR,UAAU;EACV,OAAO;EACP,aAAa,yBAAyB,EACpC,GACA,EACD,CAAC;EACF,qBAAqB;GACnB,MAAM;GACN,MAAM;GACP;EACe,CAAA,GAMpB,kBAAC,GAAD;EACE,SAAQ;EACR,UAAU;EACV,OAAO;EACP,aAAa,8BACX,IAA4C,IAC7C;EACD,qBAAqB;GACnB,MAAM;GACN,MAAM;GACP;EACe,CAAA"}
1
+ {"version":3,"file":"ProjectStorageLimitAlert.js","names":[],"sources":["../../../src/components/EntityUpload/ProjectStorageLimitAlert.tsx"],"sourcesContent":["import { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { SAGE_OFFERINGS_HELP_URL } from '@/utils/SynapseConstants'\nimport { ProjectStorageLocationUsage } from '@sage-bionetworks/synapse-client'\nimport FullWidthAlert from '../FullWidthAlert'\n\nexport type ProjectStorageLimitAlertProps = {\n didUploadsExceedLimit: boolean\n usage: ProjectStorageLocationUsage\n}\n\n// When the remaining storage is less than this percentage, show a warning\nconst PERCENT_REMAINING_STORAGE_TO_SHOW_WARNING = 0.25\n\nexport function ProjectStorageLimitAlert(props: ProjectStorageLimitAlertProps) {\n const { usage, didUploadsExceedLimit } = props\n\n if (usage.maxAllowedFileBytes == null) {\n // No limit!\n return null\n }\n\n const warningThresholdBytes =\n usage.maxAllowedFileBytes * (1 - PERCENT_REMAINING_STORAGE_TO_SHOW_WARNING)\n\n const sumFileBytes = usage.sumFileBytes ?? 0\n\n const remainingStorageBytes = usage.maxAllowedFileBytes - sumFileBytes\n\n if (!didUploadsExceedLimit && sumFileBytes < warningThresholdBytes) {\n // No need to show a warning\n return null\n }\n\n if (usage.isOverLimit) {\n return (\n <FullWidthAlert\n variant=\"danger\"\n isGlobal={false}\n title={'You have no data availability'}\n description={\n 'You do not have any remaining data within this project. In order to upload more files, you must edit your file list or upgrade your plan.'\n }\n primaryButtonConfig={{\n text: 'Learn more',\n href: SAGE_OFFERINGS_HELP_URL,\n }}\n ></FullWidthAlert>\n )\n }\n\n if (didUploadsExceedLimit) {\n return (\n <FullWidthAlert\n variant=\"danger\"\n isGlobal={false}\n title={'Selected files exceed available storage'}\n description={`This project has only ${calculateFriendlyFileSize(\n remainingStorageBytes,\n 1,\n )} of storage remaining. To continue, you must upgrade your storage, or add custom storage.`}\n primaryButtonConfig={{\n text: 'Learn more',\n href: SAGE_OFFERINGS_HELP_URL,\n }}\n ></FullWidthAlert>\n )\n }\n\n // Otherwise, show a warning\n return (\n <FullWidthAlert\n variant=\"warning\"\n isGlobal={false}\n title={'Warning: Your storage availability is limited'}\n description={`Your project has less than ${\n PERCENT_REMAINING_STORAGE_TO_SHOW_WARNING * 100\n }% remaining of available storage left. Upgrade your storage, or bring your own custom storage.`}\n primaryButtonConfig={{\n text: 'Learn more',\n href: SAGE_OFFERINGS_HELP_URL,\n }}\n ></FullWidthAlert>\n )\n}\n"],"mappings":";;;;;AAWA,IAAM,IAA4C;AAElD,SAAgB,EAAyB,GAAsC;CAC7E,IAAM,EAAE,UAAO,6BAA0B;CAEzC,IAAI,EAAM,uBAAuB,MAE/B,OAAO;CAGT,IAAM,IACJ,EAAM,uBAAuB,IAAI,IAE7B,IAAe,EAAM,gBAAgB,GAErC,IAAwB,EAAM,sBAAsB;CA2C1D,OAzCI,CAAC,KAAyB,IAAe,IAEpC,OAGL,EAAM,cAEN,kBAAC,GAAD;EACE,SAAQ;EACR,UAAU;EACV,OAAO;EACP,aACE;EAEF,qBAAqB;GACnB,MAAM;GACN,MAAM;EACR;CACe,CAAA,IAIjB,IAEA,kBAAC,GAAD;EACE,SAAQ;EACR,UAAU;EACV,OAAO;EACP,aAAa,yBAAyB,EACpC,GACA,CACF,EAAE;EACF,qBAAqB;GACnB,MAAM;GACN,MAAM;EACR;CACe,CAAA,IAMnB,kBAAC,GAAD;EACE,SAAQ;EACR,UAAU;EACV,OAAO;EACP,aAAa,8BACX,IAA4C,IAC7C;EACD,qBAAqB;GACnB,MAAM;GACN,MAAM;EACR;CACe,CAAA;AAErB"}