synapse-react-client 4.0.19 → 4.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1619) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +1 -1
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  5. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  6. package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
  7. package/dist/assets/GoogleIcon.js.map +1 -1
  8. package/dist/assets/GoogleIcon24.js.map +1 -1
  9. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  10. package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
  11. package/dist/assets/homepage/aacr.js.map +1 -1
  12. package/dist/assets/homepage/cri.js.map +1 -1
  13. package/dist/assets/homepage/ctf.js.map +1 -1
  14. package/dist/assets/homepage/egress.js.map +1 -1
  15. package/dist/assets/homepage/facebook.js.map +1 -1
  16. package/dist/assets/homepage/fisma.js.map +1 -1
  17. package/dist/assets/homepage/gff.js.map +1 -1
  18. package/dist/assets/homepage/github.js.map +1 -1
  19. package/dist/assets/homepage/gray.js.map +1 -1
  20. package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
  21. package/dist/assets/homepage/instagram.js.map +1 -1
  22. package/dist/assets/homepage/linkedin.js.map +1 -1
  23. package/dist/assets/homepage/ml-commons.js.map +1 -1
  24. package/dist/assets/homepage/nih-aging.js.map +1 -1
  25. package/dist/assets/homepage/nih-heart.js.map +1 -1
  26. package/dist/assets/homepage/nih-nci.js.map +1 -1
  27. package/dist/assets/homepage/nih-nimh.js.map +1 -1
  28. package/dist/assets/homepage/ntap.js.map +1 -1
  29. package/dist/assets/homepage/plan-item.js.map +1 -1
  30. package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
  31. package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
  32. package/dist/assets/homepage/python.js.map +1 -1
  33. package/dist/assets/homepage/r.js.map +1 -1
  34. package/dist/assets/homepage/research-credit-feature.js.map +1 -1
  35. package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
  36. package/dist/assets/homepage/sloan.js.map +1 -1
  37. package/dist/assets/homepage/twitter.js.map +1 -1
  38. package/dist/assets/homepage/users.js.map +1 -1
  39. package/dist/assets/homepage/youtube.js.map +1 -1
  40. package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
  41. package/dist/assets/icons/AccessPending.js.map +1 -1
  42. package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
  43. package/dist/assets/icons/AddAd.js.map +1 -1
  44. package/dist/assets/icons/AddToList.js.map +1 -1
  45. package/dist/assets/icons/Alert.js.map +1 -1
  46. package/dist/assets/icons/Arrow.js.map +1 -1
  47. package/dist/assets/icons/AwardScroll.js.map +1 -1
  48. package/dist/assets/icons/Baseline.js.map +1 -1
  49. package/dist/assets/icons/Cavatica.js.map +1 -1
  50. package/dist/assets/icons/CertifiedUser.js.map +1 -1
  51. package/dist/assets/icons/Challenge.js.map +1 -1
  52. package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
  53. package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
  54. package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
  55. package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
  56. package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
  57. package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
  58. package/dist/assets/icons/ClappingHands.js.map +1 -1
  59. package/dist/assets/icons/CloudWarning.js.map +1 -1
  60. package/dist/assets/icons/CommunicateFindings.js.map +1 -1
  61. package/dist/assets/icons/CreateVersion.js.map +1 -1
  62. package/dist/assets/icons/DNA_Two.js.map +1 -1
  63. package/dist/assets/icons/Data2.js.map +1 -1
  64. package/dist/assets/icons/DoubleQuotes.js.map +1 -1
  65. package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
  66. package/dist/assets/icons/FileWithShield.js.map +1 -1
  67. package/dist/assets/icons/FileWithShield2.js.map +1 -1
  68. package/dist/assets/icons/FrontHand.js.map +1 -1
  69. package/dist/assets/icons/HandWithMoney.js.map +1 -1
  70. package/dist/assets/icons/IconCopy.js.map +1 -1
  71. package/dist/assets/icons/IconMinus.js.map +1 -1
  72. package/dist/assets/icons/IconPlus.js.map +1 -1
  73. package/dist/assets/icons/Java.js.map +1 -1
  74. package/dist/assets/icons/MintDoi.js.map +1 -1
  75. package/dist/assets/icons/MultiFile.js.map +1 -1
  76. package/dist/assets/icons/MultiFile2.js.map +1 -1
  77. package/dist/assets/icons/NoData.js.map +1 -1
  78. package/dist/assets/icons/NoSearchResults.js.map +1 -1
  79. package/dist/assets/icons/ORCIDIcon.js.map +1 -1
  80. package/dist/assets/icons/OpenBook.js.map +1 -1
  81. package/dist/assets/icons/Podium.js.map +1 -1
  82. package/dist/assets/icons/Python.js.map +1 -1
  83. package/dist/assets/icons/QueryStructuredData.js.map +1 -1
  84. package/dist/assets/icons/RLogo.js.map +1 -1
  85. package/dist/assets/icons/RecordProvenance.js.map +1 -1
  86. package/dist/assets/icons/RosetteRibbon.js.map +1 -1
  87. package/dist/assets/icons/SageFullLogo.js.map +1 -1
  88. package/dist/assets/icons/SearchImage.js.map +1 -1
  89. package/dist/assets/icons/ShareYourResearch.js.map +1 -1
  90. package/dist/assets/icons/Sort.js.map +1 -1
  91. package/dist/assets/icons/StarTrophy.js.map +1 -1
  92. package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
  93. package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
  94. package/dist/assets/icons/SynapseLogoName.js.map +1 -1
  95. package/dist/assets/icons/TasksIcon.js.map +1 -1
  96. package/dist/assets/icons/Terminal.js.map +1 -1
  97. package/dist/assets/icons/ThreeStars.js.map +1 -1
  98. package/dist/assets/icons/UnpackagableFile.js.map +1 -1
  99. package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
  100. package/dist/assets/icons/ValidatedProfile.js.map +1 -1
  101. package/dist/assets/icons/account-certified.js.map +1 -1
  102. package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
  103. package/dist/assets/icons/account-validated.js.map +1 -1
  104. package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
  105. package/dist/assets/icons/chart2.js.map +1 -1
  106. package/dist/assets/icons/columns.js.map +1 -1
  107. package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
  108. package/dist/assets/icons/computationalTool.js.map +1 -1
  109. package/dist/assets/icons/dataReuse.js.map +1 -1
  110. package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
  111. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  112. package/dist/assets/icons/error_page/maintenance.js.map +1 -1
  113. package/dist/assets/icons/error_page/no-access.js.map +1 -1
  114. package/dist/assets/icons/error_page/unavailable.js.map +1 -1
  115. package/dist/assets/icons/file.js.map +1 -1
  116. package/dist/assets/icons/inSilicoModel.js.map +1 -1
  117. package/dist/assets/icons/institution.js.map +1 -1
  118. package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
  119. package/dist/assets/icons/modelSystem.js.map +1 -1
  120. package/dist/assets/icons/mouse.js.map +1 -1
  121. package/dist/assets/icons/organizations.js.map +1 -1
  122. package/dist/assets/icons/person.js.map +1 -1
  123. package/dist/assets/icons/spatialProfiling.js.map +1 -1
  124. package/dist/assets/icons/standardDataModel.js.map +1 -1
  125. package/dist/assets/icons/study-active.js.map +1 -1
  126. package/dist/assets/icons/study-complete.js.map +1 -1
  127. package/dist/assets/icons/subscribe_plus.js.map +1 -1
  128. package/dist/assets/icons/synapse-logo.js.map +1 -1
  129. package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
  130. package/dist/assets/icons/translational.js.map +1 -1
  131. package/dist/assets/icons/tree_horizontal.js.map +1 -1
  132. package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
  133. package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
  134. package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
  135. package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
  136. package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
  137. package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
  138. package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
  139. package/dist/assets/illustrations/docker_illustration.js.map +1 -1
  140. package/dist/assets/illustrations/donation_illustration.js.map +1 -1
  141. package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
  142. package/dist/assets/illustrations/files_illustration.js.map +1 -1
  143. package/dist/assets/illustrations/following_illustration.js.map +1 -1
  144. package/dist/assets/illustrations/index.js.map +1 -1
  145. package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
  146. package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
  147. package/dist/assets/illustrations/projects_illustration.js.map +1 -1
  148. package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
  149. package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
  150. package/dist/assets/illustrations/tables_illustration.js.map +1 -1
  151. package/dist/assets/illustrations/teams_illustration.js.map +1 -1
  152. package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
  153. package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
  154. package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
  155. package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
  156. package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
  157. package/dist/assets/logos/other/pluto-logo.js.map +1 -1
  158. package/dist/assets/logos/other/terra-logo.js.map +1 -1
  159. package/dist/assets/mui_components/AccessManagement.js.map +1 -1
  160. package/dist/assets/mui_components/AccountCertified.js.map +1 -1
  161. package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
  162. package/dist/assets/mui_components/AccountValidated.js.map +1 -1
  163. package/dist/assets/mui_components/ActionKey.js.map +1 -1
  164. package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
  165. package/dist/assets/mui_components/Chromatin.js.map +1 -1
  166. package/dist/assets/mui_components/Clinical.js.map +1 -1
  167. package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
  168. package/dist/assets/mui_components/Data.js.map +1 -1
  169. package/dist/assets/mui_components/DataLocked.js.map +1 -1
  170. package/dist/assets/mui_components/DataReuse.js.map +1 -1
  171. package/dist/assets/mui_components/Dataset.js.map +1 -1
  172. package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
  173. package/dist/assets/mui_components/Docker.js.map +1 -1
  174. package/dist/assets/mui_components/GeneExpression.js.map +1 -1
  175. package/dist/assets/mui_components/GeneVariants.js.map +1 -1
  176. package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
  177. package/dist/assets/mui_components/Imaging.js.map +1 -1
  178. package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
  179. package/dist/assets/mui_components/Kinomics.js.map +1 -1
  180. package/dist/assets/mui_components/LineGraph.js.map +1 -1
  181. package/dist/assets/mui_components/ModelSystem.js.map +1 -1
  182. package/dist/assets/mui_components/Other.js.map +1 -1
  183. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  184. package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
  185. package/dist/assets/mui_components/Proteomics.js.map +1 -1
  186. package/dist/assets/mui_components/Rat.js.map +1 -1
  187. package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
  188. package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
  189. package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
  190. package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
  191. package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
  192. package/dist/assets/sustainability/dialPosition1.js.map +1 -1
  193. package/dist/assets/sustainability/dialPosition2.js.map +1 -1
  194. package/dist/assets/sustainability/dialPosition3.js.map +1 -1
  195. package/dist/assets/sustainability/dialPosition4.js.map +1 -1
  196. package/dist/assets/themed_icons/Active.js.map +1 -1
  197. package/dist/assets/themed_icons/Chart.js.map +1 -1
  198. package/dist/assets/themed_icons/Close.js.map +1 -1
  199. package/dist/assets/themed_icons/Collapse.js.map +1 -1
  200. package/dist/assets/themed_icons/Columns.js.map +1 -1
  201. package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
  202. package/dist/assets/themed_icons/Database.js.map +1 -1
  203. package/dist/assets/themed_icons/Download.js.map +1 -1
  204. package/dist/assets/themed_icons/Expand.js.map +1 -1
  205. package/dist/assets/themed_icons/Explore.js.map +1 -1
  206. package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
  207. package/dist/assets/themed_icons/Filter.js.map +1 -1
  208. package/dist/assets/themed_icons/Program.js.map +1 -1
  209. package/dist/assets/themed_icons/Project.js.map +1 -1
  210. package/dist/assets/themed_icons/Publication.js.map +1 -1
  211. package/dist/assets/themed_icons/Search.js.map +1 -1
  212. package/dist/assets/themed_icons/Settings.js.map +1 -1
  213. package/dist/assets/themed_icons/SortDown.js.map +1 -1
  214. package/dist/assets/themed_icons/SortUp.js.map +1 -1
  215. package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
  216. package/dist/assets/themed_icons/Study.js.map +1 -1
  217. package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
  218. package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
  219. package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
  220. package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
  221. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
  222. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  223. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  224. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  225. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
  226. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  227. package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
  228. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  229. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  230. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  231. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  232. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  233. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  234. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  235. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  236. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
  237. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  238. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  239. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  240. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
  241. package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
  242. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  243. package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
  244. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
  245. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  246. package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
  247. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  248. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  249. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  250. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  251. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  252. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  253. package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
  254. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  255. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
  256. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
  257. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  258. package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
  259. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  260. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  261. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  262. package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
  263. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  264. package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
  265. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
  266. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  267. package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
  268. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  269. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  270. package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
  271. package/dist/components/AddToDownloadListV2.js.map +1 -1
  272. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  273. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  274. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  275. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  276. package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
  277. package/dist/components/Authentication/LoginForm.js.map +1 -1
  278. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  279. package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
  280. package/dist/components/Authentication/Logout.js.map +1 -1
  281. package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
  282. package/dist/components/Authentication/PasswordField.js.map +1 -1
  283. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  284. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  285. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  286. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  287. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  288. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  289. package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
  290. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  291. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  292. package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
  293. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  294. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  295. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  296. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  297. package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
  298. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  299. package/dist/components/CardContainer/CardConfiguration.d.ts +2 -0
  300. package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
  301. package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
  302. package/dist/components/CardContainer/CardContainer.js +3 -3
  303. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  304. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +1 -0
  305. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  306. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  307. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  308. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  309. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  310. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  311. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  312. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  313. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  314. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  315. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  316. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  317. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  321. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  322. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  323. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  324. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  325. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  326. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  330. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  331. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  332. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  333. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  334. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  335. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  336. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  337. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  338. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  339. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  340. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  341. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  342. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  343. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  344. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  345. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  346. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  347. package/dist/components/ComponentCollapse.js.map +1 -1
  348. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  349. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  350. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  351. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  352. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  353. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  354. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  355. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  356. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  357. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  358. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  359. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  360. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  361. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  362. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  363. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  364. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  365. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  366. package/dist/components/DataExplorer/DataExplorer.css +1 -1
  367. package/dist/components/DataExplorer/DataExplorer.js +28 -31
  368. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  369. package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
  370. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
  371. package/dist/components/DataExplorer/DataExplorer.module.scss +26 -6
  372. package/dist/components/DataGrid/DataGrid.js +72 -72
  373. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  374. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  375. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  376. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  377. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  378. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  379. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  380. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  381. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  382. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  383. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  384. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  385. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  386. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  387. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  388. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  389. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  390. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts +5 -3
  391. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  392. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +46 -47
  393. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  394. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  395. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  396. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  397. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  398. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  399. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  400. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  401. package/dist/components/DataGrid/hooks/useColumnResizeHandles.d.ts.map +1 -1
  402. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +3 -1
  403. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  404. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  405. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  406. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  407. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  408. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  409. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  410. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  411. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  412. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  413. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  414. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  415. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  416. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  417. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  418. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  419. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  420. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  421. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  422. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  423. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  424. package/dist/components/DataGrid/utils/columnFactory.js +1 -0
  425. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  426. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  427. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  428. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  429. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  430. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  431. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  432. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  433. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  434. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  435. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  436. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  437. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  438. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  439. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  440. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  441. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  442. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  443. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  444. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  445. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  446. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  447. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  448. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  449. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  450. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  451. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  452. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  453. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  454. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  455. package/dist/components/DialogBase.js.map +1 -1
  456. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  457. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  458. package/dist/components/DirectDownloadButton.js.map +1 -1
  459. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  460. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  461. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  462. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  463. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  464. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  465. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  466. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  467. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  468. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  469. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  470. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  471. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  472. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  473. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  474. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  475. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  476. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  477. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  478. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  479. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  480. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  481. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  482. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  483. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  484. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  485. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  486. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  487. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  488. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  489. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  490. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  491. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  492. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  493. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  494. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  495. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  496. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  497. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  498. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  499. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  500. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  501. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  502. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  503. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  504. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  505. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  506. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  507. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  508. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  509. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  510. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  511. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  513. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  514. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  515. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  516. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  517. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  518. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  519. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  520. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  521. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  522. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  523. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  524. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  525. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  526. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  527. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  528. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  529. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  530. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  531. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  532. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  533. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  534. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  535. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  536. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  537. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  538. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  539. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  540. package/dist/components/EntityIcon.js.map +1 -1
  541. package/dist/components/EntityLink.js.map +1 -1
  542. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  543. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  544. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  545. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  546. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  547. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  548. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  549. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  550. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  551. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  552. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  553. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  554. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  555. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  556. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  557. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  558. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  559. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  560. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  561. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  562. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  563. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  564. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  565. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  566. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  567. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  568. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  569. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  570. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  571. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  572. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  573. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  574. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  575. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  576. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  577. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  578. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  579. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  580. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  581. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  582. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  583. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  584. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  585. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  586. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  587. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  588. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  589. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  590. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  591. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  592. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  593. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  594. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  595. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  596. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  597. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  598. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  599. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  600. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  601. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  602. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  603. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  604. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  605. package/dist/components/Forum/ForumPage.js.map +1 -1
  606. package/dist/components/Forum/ForumTable.js.map +1 -1
  607. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  608. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  609. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  610. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  611. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  612. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  613. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  614. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  615. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  616. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  617. package/dist/components/GenericCard/GenericCard.d.ts +2 -0
  618. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  619. package/dist/components/GenericCard/GenericCard.js +76 -64
  620. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  621. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  622. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  623. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  624. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  625. package/dist/components/GenericCard/Linkify.js.map +1 -1
  626. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  627. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  628. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  629. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  630. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  631. package/dist/components/GenericCard/TableRowGenericCard.js +33 -25
  632. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  633. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  634. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  635. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  636. package/dist/components/Goals/Goals.js +25 -27
  637. package/dist/components/Goals/Goals.js.map +1 -1
  638. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  639. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  640. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  641. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  642. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  643. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  644. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  645. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  646. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  647. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  648. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  649. package/dist/components/HasAccess/AccessIcon.js +10 -10
  650. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  651. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  652. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  653. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  654. package/dist/components/HeaderCard.js.map +1 -1
  655. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  656. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  657. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  658. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  659. package/dist/components/Icon/Icon.js.map +1 -1
  660. package/dist/components/IconList.js.map +1 -1
  661. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  662. package/dist/components/IconSvgButton.js.map +1 -1
  663. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  664. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  665. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  666. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  667. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  668. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  669. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  670. package/dist/components/JsonLdScript.js.map +1 -1
  671. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  672. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  673. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  674. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  675. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  676. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  677. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  678. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  679. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  680. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  681. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  682. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  683. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  684. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  685. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  686. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  687. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  688. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  689. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  690. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  691. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  692. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  693. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  694. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  695. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  696. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  697. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  698. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  699. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  700. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  701. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  702. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  703. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  704. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  705. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  706. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  707. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  708. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  709. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  710. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  711. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  712. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  713. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  714. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  715. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  716. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  717. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  718. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  719. package/dist/components/MuiContainer.js.map +1 -1
  720. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  721. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  722. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  723. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  724. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  725. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  726. package/dist/components/Plot/BarPlot.js.map +1 -1
  727. package/dist/components/Plot/DotPlot.js.map +1 -1
  728. package/dist/components/Plot/Plot.d.ts +12 -1
  729. package/dist/components/Plot/Plot.d.ts.map +1 -1
  730. package/dist/components/Plot/Plot.js +5 -1
  731. package/dist/components/Plot/Plot.js.map +1 -1
  732. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  733. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  734. package/dist/components/Plot/SynapseSankeyPlot.css +1 -0
  735. package/dist/components/Plot/SynapseSankeyPlot.d.ts +54 -0
  736. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  737. package/dist/components/Plot/SynapseSankeyPlot.js +359 -0
  738. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  739. package/dist/components/Plot/SynapseSankeyPlot.module.js +15 -0
  740. package/dist/components/Plot/SynapseSankeyPlot.module.js.map +1 -0
  741. package/dist/components/Plot/SynapseSankeyPlot.module.scss +63 -0
  742. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  743. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  744. package/dist/components/Plot/index.d.ts +3 -1
  745. package/dist/components/Plot/index.d.ts.map +1 -1
  746. package/dist/components/Plot/index.js +2 -1
  747. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  748. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  749. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  750. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  751. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  752. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  753. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  754. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  755. package/dist/components/PortalList/PortalCard.js.map +1 -1
  756. package/dist/components/PortalList/PortalList.js.map +1 -1
  757. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  758. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  759. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  760. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  761. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  762. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  763. package/dist/components/Programs/Programs.js.map +1 -1
  764. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  765. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  766. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  767. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  768. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  769. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  770. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  771. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  772. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  773. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  774. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  775. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  776. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  777. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  778. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  779. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  780. package/dist/components/QuerySortSelector.js.map +1 -1
  781. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  782. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  783. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  784. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  785. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  786. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  787. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  788. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  789. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  790. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  791. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  792. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  793. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  794. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  795. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  796. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  797. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  798. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  799. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  800. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  801. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  802. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  803. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  804. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  805. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  806. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  807. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  808. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  809. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  810. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  811. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  812. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  813. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  814. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  815. package/dist/components/Resources/Resources.js +8 -11
  816. package/dist/components/Resources/Resources.js.map +1 -1
  817. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  818. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  819. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  820. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  821. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  822. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  823. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  824. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  825. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  826. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  827. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  828. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  829. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +13 -12
  830. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  831. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +88 -77
  832. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  833. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  834. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  835. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  836. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  837. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  838. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  839. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  840. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  841. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  842. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  843. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  844. package/dist/components/SignInButton.js.map +1 -1
  845. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  846. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  847. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  848. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  849. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  850. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  851. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  852. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  853. package/dist/components/SourceAppImage.js.map +1 -1
  854. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  855. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  856. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  857. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  858. package/dist/components/StatisticsPlot.js.map +1 -1
  859. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  860. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  861. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  862. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  863. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  864. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  865. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  866. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  867. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  868. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  869. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  870. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  871. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  872. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  873. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  874. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  875. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  876. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  877. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  878. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  879. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  880. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  881. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  882. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  883. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  884. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  885. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  886. package/dist/components/SynapseForm/Header.js.map +1 -1
  887. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  888. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  889. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  890. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  891. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  892. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  893. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  894. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  895. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  896. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  897. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  898. package/dist/components/SynapseForm/types.js.map +1 -1
  899. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  900. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  901. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  902. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  903. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  904. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  905. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  906. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  907. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  908. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  909. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  910. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  911. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  912. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  913. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  914. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  915. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  916. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  917. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  918. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  919. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  920. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  921. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  922. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  923. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  924. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  925. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  926. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  927. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  928. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  929. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  930. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  931. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  932. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  933. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  934. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  935. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  936. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  937. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  938. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  939. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  940. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  941. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  942. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  943. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  944. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  945. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  946. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  947. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  948. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  949. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  950. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  951. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  952. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  953. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  954. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  955. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  956. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  957. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  958. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  959. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  960. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  961. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  962. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  963. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  964. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  965. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  966. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  967. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  968. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  969. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  970. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  971. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  972. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +63 -74
  973. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  974. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  975. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  976. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  977. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  978. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  979. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  980. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  981. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  982. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  983. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  984. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  985. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  986. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  987. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  988. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  989. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  990. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  991. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  992. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  993. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  994. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.d.ts.map +1 -1
  995. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +72 -68
  996. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  997. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  998. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  999. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  1000. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  1001. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  1002. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  1003. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +27 -1
  1004. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  1005. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +47 -36
  1006. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  1007. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +10 -10
  1008. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  1009. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  1010. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.d.ts +12 -12
  1011. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  1012. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts +4 -1
  1013. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts.map +1 -1
  1014. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  1015. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts +167 -517
  1016. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts.map +1 -1
  1017. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js +65 -65
  1018. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  1019. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts +1 -1
  1020. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts.map +1 -1
  1021. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  1022. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  1023. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts +1 -1
  1024. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts.map +1 -1
  1025. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js +6 -13
  1026. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  1027. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts +1 -1
  1028. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts.map +1 -1
  1029. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  1030. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  1031. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts +1 -1
  1032. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts.map +1 -1
  1033. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js +2 -2
  1034. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  1035. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts +1 -1
  1036. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts.map +1 -1
  1037. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  1038. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts +2 -2
  1039. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts.map +1 -1
  1040. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js +15 -16
  1041. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  1042. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  1043. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  1044. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  1045. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  1046. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  1047. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  1048. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  1049. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  1050. package/dist/components/TeamBadge.js.map +1 -1
  1051. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  1052. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  1053. package/dist/components/TemplateComponent.js.map +1 -1
  1054. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1055. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1056. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1057. package/dist/components/TextField/TextField.js.map +1 -1
  1058. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1059. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1060. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1061. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1062. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1063. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1064. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1065. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1066. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1067. package/dist/components/TotalQueryResults.js.map +1 -1
  1068. package/dist/components/UserCard/Avatar.js.map +1 -1
  1069. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1070. package/dist/components/UserCard/UserCard.js.map +1 -1
  1071. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1072. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1073. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1074. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1075. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1076. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1077. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1078. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1079. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1080. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1081. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1082. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1083. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1084. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1085. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1086. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1087. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1088. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1089. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1090. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1091. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1092. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1093. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1094. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1095. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1096. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1097. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1098. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1099. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1100. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1101. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1102. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1103. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1104. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1105. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1106. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1107. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1108. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1109. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1110. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1111. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1112. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1113. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1114. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1115. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1116. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1117. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1118. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1119. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1120. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1121. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1122. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1123. package/dist/components/download_list/index.js.map +1 -1
  1124. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1125. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1126. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1127. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1128. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1129. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1130. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1131. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1132. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1133. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1134. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1135. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1136. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1137. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1138. package/dist/components/error/ErrorBanner.js.map +1 -1
  1139. package/dist/components/error/ErrorChip.js.map +1 -1
  1140. package/dist/components/error/ErrorPage.js +24 -24
  1141. package/dist/components/error/ErrorPage.js.map +1 -1
  1142. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1143. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1144. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1145. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1146. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1147. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1148. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1149. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1150. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1151. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1152. package/dist/components/index.js +48 -47
  1153. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1154. package/dist/components/layout/SWCHeader.js.map +1 -1
  1155. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1156. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1157. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1158. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1159. package/dist/components/row_renderers/Funder.js.map +1 -1
  1160. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1161. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1162. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1163. package/dist/components/styled/HoverPopover.js.map +1 -1
  1164. package/dist/components/styled/InlineBadge.js.map +1 -1
  1165. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1166. package/dist/components/styled/LargeButton.js.map +1 -1
  1167. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1168. package/dist/components/styled/LightTooltip.js.map +1 -1
  1169. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1170. package/dist/components/styled/StyledPopover.js.map +1 -1
  1171. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1172. package/dist/components/styled/WideButton.js.map +1 -1
  1173. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
  1174. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
  1175. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1176. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1177. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  1178. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
  1179. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
  1180. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
  1181. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
  1182. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
  1183. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
  1184. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1185. package/dist/components/trash/TrashCanList.js.map +1 -1
  1186. package/dist/components/utils/Blocker.js.map +1 -1
  1187. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1188. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1189. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1190. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1191. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1192. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1193. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1194. package/dist/components/widgets/Range.js.map +1 -1
  1195. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1196. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1197. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1198. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1199. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1200. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1201. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1202. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1203. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1204. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1205. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1206. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1207. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1208. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1209. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1210. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1211. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1212. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1213. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1214. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1215. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1216. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1217. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1218. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1219. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1220. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1221. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1222. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1223. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1224. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1225. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1226. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1227. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1228. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1229. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1230. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1231. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1232. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1233. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1234. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1235. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1236. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1237. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1238. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1239. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1240. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1241. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1242. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1243. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1244. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1245. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1246. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1247. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1248. package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
  1249. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1250. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1251. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1252. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1253. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1254. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1255. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1256. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1257. package/dist/index.js +54 -53
  1258. package/dist/index.js.map +1 -1
  1259. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1260. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1261. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1262. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1263. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1264. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1265. package/dist/mocks/chat/mockChat.js.map +1 -1
  1266. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1267. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1268. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1269. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1270. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1271. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1272. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1273. package/dist/mocks/entity/index.js.map +1 -1
  1274. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1275. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1276. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1277. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1278. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1279. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1280. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1281. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1282. package/dist/mocks/entity/mockProject.js.map +1 -1
  1283. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1284. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1285. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1286. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1287. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1288. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1289. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1290. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1291. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1292. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1293. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1294. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1295. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1296. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1297. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1298. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1299. package/dist/mocks/mockSchema.js.map +1 -1
  1300. package/dist/mocks/mockSearchQueryData.js +2 -2
  1301. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1302. package/dist/mocks/mockShortIo.js.map +1 -1
  1303. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1304. package/dist/mocks/mockSubscription.js.map +1 -1
  1305. package/dist/mocks/mockWiki.js.map +1 -1
  1306. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1307. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1308. package/dist/mocks/mock_file_handle.js.map +1 -1
  1309. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1310. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1311. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1312. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1313. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1314. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1315. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1316. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1317. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1318. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1319. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1320. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1321. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1322. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1323. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1324. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1325. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1326. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1327. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1328. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1329. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1330. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1331. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1332. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1333. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1334. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1335. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1336. package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts +1 -1
  1337. package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
  1338. package/dist/mocks/msw/handlers/searchQueryHandlers.js +6 -3
  1339. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1340. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1341. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1342. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1343. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1344. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1345. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1346. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1347. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1348. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1349. package/dist/mocks/msw/handlers.js.map +1 -1
  1350. package/dist/mocks/msw/server.d.ts +1 -1
  1351. package/dist/mocks/msw/server.d.ts.map +1 -1
  1352. package/dist/mocks/msw/server.js.map +1 -1
  1353. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1354. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1355. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1356. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1357. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1358. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1359. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1360. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1361. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1362. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1363. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1364. package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts +13 -0
  1365. package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts.map +1 -1
  1366. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js +27 -0
  1367. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1368. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1369. package/dist/mocks/query/syn16787123.js.map +1 -1
  1370. package/dist/mocks/query/syn17328596.js.map +1 -1
  1371. package/dist/mocks/query/syn51735464.js.map +1 -1
  1372. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1373. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1374. package/dist/mocks/team/mockTeam.js.map +1 -1
  1375. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1376. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1377. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1378. package/dist/ror-client/index.js.map +1 -1
  1379. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1380. package/dist/stories/ToastDemo.js.map +1 -1
  1381. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1382. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1383. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1384. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1385. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1386. package/dist/style/components/_cards.scss +10 -0
  1387. package/dist/style/components/_data-grid-extra.css +1 -1
  1388. package/dist/style/components/_data-grid-extra.scss +7 -1
  1389. package/dist/style/main.css +1 -1
  1390. package/dist/synapse-client/HttpClient.js.map +1 -1
  1391. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1392. package/dist/synapse-client/SynapseClient.js +499 -505
  1393. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1394. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1395. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1396. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1397. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1398. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1399. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1400. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1401. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1402. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1403. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1404. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1405. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1406. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1407. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1408. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1409. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1410. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1411. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1412. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1413. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1414. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1415. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1416. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1417. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1418. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1419. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1420. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1421. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1422. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1423. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1424. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1425. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1426. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1427. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1428. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1429. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1430. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1431. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1432. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1433. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1434. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1435. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1436. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1437. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1438. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1439. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1440. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1441. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1442. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1443. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1444. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1445. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1446. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1447. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1448. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1449. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1450. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1451. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1452. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1453. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1454. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1455. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1456. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1457. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1458. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1459. package/dist/synapse-queries/ror/index.js.map +1 -1
  1460. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1461. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1462. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1463. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1464. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1465. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1466. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1467. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1468. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1469. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1470. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1471. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1472. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1473. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1474. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1475. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1476. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1477. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1478. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1479. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1480. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1481. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1482. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1483. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1484. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1485. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1486. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1487. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1488. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1489. package/dist/testutils/LocationTracker.js.map +1 -1
  1490. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1491. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1492. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1493. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1494. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1495. package/dist/testutils/vitest.setup.js.map +1 -1
  1496. package/dist/theme/DefaultTheme.js.map +1 -1
  1497. package/dist/theme/ThemeProvider.js.map +1 -1
  1498. package/dist/theme/mergeTheme.js.map +1 -1
  1499. package/dist/theme/palette/Palettes.js.map +1 -1
  1500. package/dist/theme/spreadSx.js.map +1 -1
  1501. package/dist/theme/typography/Link.js.map +1 -1
  1502. package/dist/theme/typography/Typography.js.map +1 -1
  1503. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1504. package/dist/utils/APIConstants.js.map +1 -1
  1505. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1506. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1507. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1508. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1509. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1510. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1511. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1512. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1513. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1514. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1515. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1516. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1517. package/dist/utils/SynapseConstants.js.map +1 -1
  1518. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1519. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1520. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1521. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1522. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1523. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1524. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1525. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1526. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1527. package/dist/utils/context/SynapseContext.js.map +1 -1
  1528. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1529. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1530. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1531. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1532. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1533. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1534. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1535. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1536. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1537. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1538. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1539. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1540. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1541. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1542. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1543. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1544. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1545. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1546. package/dist/utils/functions/StringUtils.js.map +1 -1
  1547. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1548. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1549. package/dist/utils/functions/colorPalette.js.map +1 -1
  1550. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1551. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1552. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1553. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1554. package/dist/utils/functions/getEndpoint.js +3 -3
  1555. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1556. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1557. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1558. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1559. package/dist/utils/functions/getUserData.js.map +1 -1
  1560. package/dist/utils/functions/queryUtils.js.map +1 -1
  1561. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1562. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1563. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1564. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1565. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1566. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1567. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1568. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1569. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1570. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1571. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1572. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1573. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1574. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1575. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1576. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1577. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1578. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1579. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1580. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1581. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1582. package/dist/utils/hooks/useListState.js.map +1 -1
  1583. package/dist/utils/hooks/useLogin.js.map +1 -1
  1584. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1585. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1586. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1587. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1588. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1589. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1590. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1591. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1592. package/dist/utils/hooks/useSet.js.map +1 -1
  1593. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1594. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1595. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1596. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1597. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1598. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1599. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1600. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1601. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1602. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1603. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1604. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1605. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1606. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1607. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1608. package/dist/utils/html/TargetEnum.js.map +1 -1
  1609. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1610. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1611. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1612. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1613. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1614. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1615. package/dist/utils/jsonschema/getType.js.map +1 -1
  1616. package/dist/utils/searchDefaults.js.map +1 -1
  1617. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1618. package/dist/utils/types/IsType.js.map +1 -1
  1619. package/package.json +68 -65
@@ -8,15 +8,13 @@ import { useMemo as i } from "react";
8
8
  import { Alert as a, Box as o, Button as s, Typography as c } from "@mui/material";
9
9
  import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
10
10
  //#region src/components/download_list/DownloadConfirmationUI.tsx
11
- var f = /* @__PURE__ */ function(e) {
12
- return e[e.LOADING_INFO = 0] = "LOADING_INFO", e[e.PROCESSING = 1] = "PROCESSING", e[e.INFO = 2] = "INFO", e[e.INFO_ITEMS_IN_LIST = 3] = "INFO_ITEMS_IN_LIST", e[e.SIGNED_OUT = 4] = "SIGNED_OUT", e;
13
- }(f || {}), p = {
14
- [f.INFO]: {
11
+ var f = {
12
+ 2: {
15
13
  severity: "info",
16
14
  infoText: "Would you like to add these files to the download list?",
17
15
  closeText: "Cancel"
18
16
  },
19
- [f.INFO_ITEMS_IN_LIST]: {
17
+ 3: {
20
18
  severity: "info",
21
19
  infoText: /* @__PURE__ */ d(l, { children: [
22
20
  "Note: Files that you add will be mixed in with the files already in your download list.",
@@ -25,17 +23,17 @@ var f = /* @__PURE__ */ function(e) {
25
23
  ] }),
26
24
  closeText: "Cancel"
27
25
  },
28
- [f.PROCESSING]: {
26
+ 1: {
29
27
  severity: "info",
30
28
  infoText: "Adding files to download list",
31
29
  closeText: "Cancel"
32
30
  },
33
- [f.LOADING_INFO]: {
31
+ 0: {
34
32
  severity: "info",
35
33
  infoText: "Calculating file size",
36
34
  closeText: "Cancel"
37
35
  },
38
- [f.SIGNED_OUT]: {
36
+ 4: {
39
37
  severity: "error",
40
38
  closeText: "Close",
41
39
  infoText: /* @__PURE__ */ d(l, { children: [
@@ -45,36 +43,36 @@ var f = /* @__PURE__ */ function(e) {
45
43
  ] })
46
44
  }
47
45
  };
48
- function m(e) {
46
+ function p(e) {
49
47
  let { status: t, fileCount: n, fileSize: i } = e;
50
48
  switch (t) {
51
- case f.LOADING_INFO:
52
- case f.PROCESSING: return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("div", { className: "spinner white" }), /* @__PURE__ */ u(c, {
49
+ case 0:
50
+ case 1: return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("div", { className: "spinner white" }), /* @__PURE__ */ u(c, {
53
51
  variant: "smallText1",
54
- children: p[t].infoText
52
+ children: f[t].infoText
55
53
  })] });
56
- case f.SIGNED_OUT: return /* @__PURE__ */ u(c, {
54
+ case 4: return /* @__PURE__ */ u(c, {
57
55
  variant: "smallText1",
58
- children: p[t].infoText
56
+ children: f[t].infoText
59
57
  });
60
- case f.INFO:
61
- case f.INFO_ITEMS_IN_LIST: return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(r, {
58
+ case 2:
59
+ case 3: return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u(r, {
62
60
  numFiles: n,
63
61
  numBytes: i
64
62
  }), /* @__PURE__ */ u(c, {
65
63
  variant: "smallText1",
66
64
  sx: { flexGrow: 1 },
67
- children: p[t].infoText
65
+ children: f[t].infoText
68
66
  })] });
69
67
  default: return /* @__PURE__ */ u(l, {});
70
68
  }
71
69
  }
72
- function h(e) {
73
- let { onAddToDownloadCart: r, onCancel: c, fileCount: h, fileSize: g, isLoadingStats: _ = !1, isAddingToDownloadCart: v = !1 } = e, { isAuthenticated: y } = t(), { data: b } = n(), x = i(() => y ? _ ? f.LOADING_INFO : v ? f.PROCESSING : b && b.totalNumberOfFiles > 0 ? f.INFO_ITEMS_IN_LIST : f.INFO : f.SIGNED_OUT, [
74
- y,
75
- _,
70
+ function m(e) {
71
+ let { onAddToDownloadCart: r, onCancel: c, fileCount: m, fileSize: h, isLoadingStats: g = !1, isAddingToDownloadCart: _ = !1 } = e, { isAuthenticated: v } = t(), { data: y } = n(), b = i(() => v ? g ? 0 : _ ? 1 : y && y.totalNumberOfFiles > 0 ? 3 : 2 : 4, [
76
72
  v,
77
- b
73
+ g,
74
+ _,
75
+ y
78
76
  ]);
79
77
  return /* @__PURE__ */ u(l, { children: /* @__PURE__ */ u(a, {
80
78
  sx: {
@@ -84,15 +82,15 @@ function h(e) {
84
82
  justifyContent: "space-between",
85
83
  alignItems: "center"
86
84
  },
87
- icon: p[x].severity === "error" ? void 0 : !1,
88
- severity: p[x].severity,
85
+ icon: f[b].severity === "error" ? void 0 : !1,
86
+ severity: f[b].severity,
89
87
  className: "download-confirmation",
90
- action: /* @__PURE__ */ d(l, { children: [x !== f.PROCESSING && /* @__PURE__ */ u(s, {
88
+ action: /* @__PURE__ */ d(l, { children: [b !== 1 && /* @__PURE__ */ u(s, {
91
89
  variant: "text",
92
90
  color: "primary",
93
91
  onClick: c,
94
- children: p[x].closeText
95
- }), (x === f.INFO || x === f.INFO_ITEMS_IN_LIST) && /* @__PURE__ */ u(s, {
92
+ children: f[b].closeText
93
+ }), (b === 2 || b === 3) && /* @__PURE__ */ u(s, {
96
94
  variant: "contained",
97
95
  color: "primary",
98
96
  onClick: () => {
@@ -107,15 +105,15 @@ function h(e) {
107
105
  alignItems: "center",
108
106
  gap: 1
109
107
  },
110
- children: /* @__PURE__ */ u(m, {
111
- status: x,
112
- fileCount: h,
113
- fileSize: g
108
+ children: /* @__PURE__ */ u(p, {
109
+ status: b,
110
+ fileCount: m,
111
+ fileSize: h
114
112
  })
115
113
  })
116
114
  }) });
117
115
  }
118
116
  //#endregion
119
- export { h as DownloadConfirmationUI, h as default };
117
+ export { m as DownloadConfirmationUI, m as default };
120
118
 
121
119
  //# sourceMappingURL=DownloadConfirmationUI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadConfirmationUI.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUI.tsx"],"sourcesContent":["import { useGetDownloadListStatistics } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { Alert, AlertProps, Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useMemo } from 'react'\nimport SignInButton from '../SignInButton'\nimport DownloadDetails from './DownloadDetails'\n\nenum StatusEnum {\n LOADING_INFO,\n PROCESSING,\n INFO,\n INFO_ITEMS_IN_LIST,\n SIGNED_OUT,\n}\n\nexport type DownloadConfirmationUIProps = {\n onAddToDownloadCart: () => void\n fileCount?: number\n fileSize?: number\n onCancel: () => void\n isLoadingStats?: boolean\n isAddingToDownloadCart?: boolean\n}\n\ntype UiStateDictionary = {\n [key: string]: {\n severity: AlertProps['severity']\n infoText: string | ReactNode\n closeText: string\n }\n}\n\n// css classes, text, and close button text associated with different stages\nconst StatusConstruct: UiStateDictionary = {\n [StatusEnum.INFO]: {\n severity: 'info',\n infoText: 'Would you like to add these files to the download list?',\n closeText: 'Cancel',\n },\n [StatusEnum.INFO_ITEMS_IN_LIST]: {\n severity: 'info',\n infoText: (\n <>\n Note: Files that you add will be mixed in with the files already in your\n download list.\n <br />\n If you don&apos;t want to mix these files, clear your download list\n before continuing.\n </>\n ),\n closeText: 'Cancel',\n },\n [StatusEnum.PROCESSING]: {\n severity: 'info',\n infoText: 'Adding files to download list',\n closeText: 'Cancel',\n },\n\n [StatusEnum.LOADING_INFO]: {\n severity: 'info',\n infoText: 'Calculating file size',\n closeText: 'Cancel',\n },\n [StatusEnum.SIGNED_OUT]: {\n severity: 'error',\n closeText: 'Close',\n infoText: (\n <>\n Please <SignInButton /> to add files to your download list.\n </>\n ),\n },\n}\n\ntype DownloadConfirmationContentProps = {\n status: StatusEnum\n fileCount?: number\n fileSize?: number\n}\n\nfunction DownloadConfirmationContent(props: DownloadConfirmationContentProps) {\n const { status, fileCount, fileSize } = props\n switch (status) {\n case StatusEnum.LOADING_INFO:\n case StatusEnum.PROCESSING:\n return (\n <>\n <div className={'spinner white'} />\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n case StatusEnum.SIGNED_OUT:\n return (\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n )\n case StatusEnum.INFO:\n case StatusEnum.INFO_ITEMS_IN_LIST:\n return (\n <>\n <DownloadDetails\n numFiles={fileCount}\n numBytes={fileSize}\n ></DownloadDetails>\n <Typography variant={'smallText1'} sx={{ flexGrow: 1 }}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n default:\n return <></>\n }\n}\n\n/**\n * This component is used to display the download confirmation dialog that presents to a user the number of files and the\n * total size of the files they are about to add to their download list.\n */\nexport function DownloadConfirmationUI(props: DownloadConfirmationUIProps) {\n const {\n onAddToDownloadCart,\n onCancel,\n fileCount,\n fileSize,\n isLoadingStats = false,\n isAddingToDownloadCart = false,\n } = props\n const { isAuthenticated } = useSynapseContext()\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics()\n\n const status = useMemo(() => {\n if (!isAuthenticated) return StatusEnum.SIGNED_OUT\n if (isLoadingStats) return StatusEnum.LOADING_INFO\n if (isAddingToDownloadCart) return StatusEnum.PROCESSING\n if (downloadListStatistics && downloadListStatistics.totalNumberOfFiles > 0)\n return StatusEnum.INFO_ITEMS_IN_LIST\n return StatusEnum.INFO\n }, [\n isAuthenticated,\n isLoadingStats,\n isAddingToDownloadCart,\n downloadListStatistics,\n ])\n\n return (\n <>\n <Alert\n sx={{\n pr: 4,\n py: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n icon={StatusConstruct[status].severity === 'error' ? undefined : false}\n severity={StatusConstruct[status].severity}\n className={`download-confirmation`}\n action={\n <>\n {status !== StatusEnum.PROCESSING && (\n <Button variant=\"text\" color=\"primary\" onClick={onCancel}>\n {StatusConstruct[status].closeText}\n </Button>\n )}\n\n {(status === StatusEnum.INFO ||\n status === StatusEnum.INFO_ITEMS_IN_LIST) && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n onAddToDownloadCart()\n }}\n sx={{ ml: '5px' }}\n >\n Add\n </Button>\n )}\n </>\n }\n >\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <DownloadConfirmationContent\n status={status}\n fileCount={fileCount}\n fileSize={fileSize}\n />\n </Box>\n </Alert>\n </>\n )\n}\n\nexport default DownloadConfirmationUI\n"],"mappings":"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"}
1
+ {"version":3,"file":"DownloadConfirmationUI.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUI.tsx"],"sourcesContent":["import { useGetDownloadListStatistics } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils'\nimport { Alert, AlertProps, Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useMemo } from 'react'\nimport SignInButton from '../SignInButton'\nimport DownloadDetails from './DownloadDetails'\n\nenum StatusEnum {\n LOADING_INFO,\n PROCESSING,\n INFO,\n INFO_ITEMS_IN_LIST,\n SIGNED_OUT,\n}\n\nexport type DownloadConfirmationUIProps = {\n onAddToDownloadCart: () => void\n fileCount?: number\n fileSize?: number\n onCancel: () => void\n isLoadingStats?: boolean\n isAddingToDownloadCart?: boolean\n}\n\ntype UiStateDictionary = {\n [key: string]: {\n severity: AlertProps['severity']\n infoText: string | ReactNode\n closeText: string\n }\n}\n\n// css classes, text, and close button text associated with different stages\nconst StatusConstruct: UiStateDictionary = {\n [StatusEnum.INFO]: {\n severity: 'info',\n infoText: 'Would you like to add these files to the download list?',\n closeText: 'Cancel',\n },\n [StatusEnum.INFO_ITEMS_IN_LIST]: {\n severity: 'info',\n infoText: (\n <>\n Note: Files that you add will be mixed in with the files already in your\n download list.\n <br />\n If you don&apos;t want to mix these files, clear your download list\n before continuing.\n </>\n ),\n closeText: 'Cancel',\n },\n [StatusEnum.PROCESSING]: {\n severity: 'info',\n infoText: 'Adding files to download list',\n closeText: 'Cancel',\n },\n\n [StatusEnum.LOADING_INFO]: {\n severity: 'info',\n infoText: 'Calculating file size',\n closeText: 'Cancel',\n },\n [StatusEnum.SIGNED_OUT]: {\n severity: 'error',\n closeText: 'Close',\n infoText: (\n <>\n Please <SignInButton /> to add files to your download list.\n </>\n ),\n },\n}\n\ntype DownloadConfirmationContentProps = {\n status: StatusEnum\n fileCount?: number\n fileSize?: number\n}\n\nfunction DownloadConfirmationContent(props: DownloadConfirmationContentProps) {\n const { status, fileCount, fileSize } = props\n switch (status) {\n case StatusEnum.LOADING_INFO:\n case StatusEnum.PROCESSING:\n return (\n <>\n <div className={'spinner white'} />\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n case StatusEnum.SIGNED_OUT:\n return (\n <Typography variant={'smallText1'}>\n {StatusConstruct[status].infoText}\n </Typography>\n )\n case StatusEnum.INFO:\n case StatusEnum.INFO_ITEMS_IN_LIST:\n return (\n <>\n <DownloadDetails\n numFiles={fileCount}\n numBytes={fileSize}\n ></DownloadDetails>\n <Typography variant={'smallText1'} sx={{ flexGrow: 1 }}>\n {StatusConstruct[status].infoText}\n </Typography>\n </>\n )\n\n default:\n return <></>\n }\n}\n\n/**\n * This component is used to display the download confirmation dialog that presents to a user the number of files and the\n * total size of the files they are about to add to their download list.\n */\nexport function DownloadConfirmationUI(props: DownloadConfirmationUIProps) {\n const {\n onAddToDownloadCart,\n onCancel,\n fileCount,\n fileSize,\n isLoadingStats = false,\n isAddingToDownloadCart = false,\n } = props\n const { isAuthenticated } = useSynapseContext()\n\n const { data: downloadListStatistics } = useGetDownloadListStatistics()\n\n const status = useMemo(() => {\n if (!isAuthenticated) return StatusEnum.SIGNED_OUT\n if (isLoadingStats) return StatusEnum.LOADING_INFO\n if (isAddingToDownloadCart) return StatusEnum.PROCESSING\n if (downloadListStatistics && downloadListStatistics.totalNumberOfFiles > 0)\n return StatusEnum.INFO_ITEMS_IN_LIST\n return StatusEnum.INFO\n }, [\n isAuthenticated,\n isLoadingStats,\n isAddingToDownloadCart,\n downloadListStatistics,\n ])\n\n return (\n <>\n <Alert\n sx={{\n pr: 4,\n py: 1,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n icon={StatusConstruct[status].severity === 'error' ? undefined : false}\n severity={StatusConstruct[status].severity}\n className={`download-confirmation`}\n action={\n <>\n {status !== StatusEnum.PROCESSING && (\n <Button variant=\"text\" color=\"primary\" onClick={onCancel}>\n {StatusConstruct[status].closeText}\n </Button>\n )}\n\n {(status === StatusEnum.INFO ||\n status === StatusEnum.INFO_ITEMS_IN_LIST) && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n onAddToDownloadCart()\n }}\n sx={{ ml: '5px' }}\n >\n Add\n </Button>\n )}\n </>\n }\n >\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <DownloadConfirmationContent\n status={status}\n fileCount={fileCount}\n fileSize={fileSize}\n />\n </Box>\n </Alert>\n </>\n )\n}\n\nexport default DownloadConfirmationUI\n"],"mappings":";;;;;;;;;;AAiCA,IAAM,IAAqC;IACtB;EACjB,UAAU;EACV,UAAU;EACV,WAAW;CACb;IACiC;EAC/B,UAAU;EACV,UACE,kBAAA,GAAA,EAAA,UAAA;GAAE;GAGA,kBAAC,MAAD,CAAK,CAAA;GAAC;EAGN,EAAA,CAAA;EAEJ,WAAW;CACb;IACyB;EACvB,UAAU;EACV,UAAU;EACV,WAAW;CACb;IAE2B;EACzB,UAAU;EACV,UAAU;EACV,WAAW;CACb;IACyB;EACvB,UAAU;EACV,WAAW;EACX,UACE,kBAAA,GAAA,EAAA,UAAA;GAAE;GACO,kBAAC,GAAD,CAAe,CAAA;GAAC;EACvB,EAAA,CAAA;CAEN;AACF;AAQA,SAAS,EAA4B,GAAyC;CAC5E,IAAM,EAAE,WAAQ,cAAW,gBAAa;CACxC,QAAQ,GAAR;EACE,KAAA;EACA,KAAA,GACE,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAK,WAAW,gBAAkB,CAAA,GAClC,kBAAC,GAAD;GAAY,SAAS;aAClB,EAAgB,GAAQ;EACf,CAAA,CACZ,EAAA,CAAA;EAGN,KAAA,GACE,OACE,kBAAC,GAAD;GAAY,SAAS;aAClB,EAAgB,GAAQ;EACf,CAAA;EAEhB,KAAA;EACA,KAAA,GACE,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,UAAU;GACV,UAAU;EACM,CAAA,GAClB,kBAAC,GAAD;GAAY,SAAS;GAAc,IAAI,EAAE,UAAU,EAAE;aAClD,EAAgB,GAAQ;EACf,CAAA,CACZ,EAAA,CAAA;EAGN,SACE,OAAO,kBAAA,GAAA,CAAI,CAAA;CACf;AACF;AAMA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,wBACA,aACA,cACA,aACA,oBAAiB,IACjB,4BAAyB,OACvB,GACE,EAAE,uBAAoB,EAAkB,GAExC,EAAE,MAAM,MAA2B,EAA6B,GAEhE,IAAS,QACR,IACD,IAAgB,IAChB,IAAwB,IACxB,KAA0B,EAAuB,qBAAqB,IACxE,IACF,IALsB,GAMrB;EACD;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,IAAI;GACF,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,gBAAgB;GAChB,YAAY;EACd;EACA,MAAM,EAAgB,GAAQ,aAAa,UAAU,KAAA,IAAY;EACjE,UAAU,EAAgB,GAAQ;EAClC,WAAW;EACX,QACE,kBAAA,GAAA,EAAA,UAAA,CACG,MAAA,KACC,kBAAC,GAAD;GAAQ,SAAQ;GAAO,OAAM;GAAU,SAAS;aAC7C,EAAgB,GAAQ;EACnB,CAAA,IAGR,MAAA,KACA,MAAA,MACA,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,eAAe;IACb,EAAoB;GACtB;GACA,IAAI,EAAE,IAAI,MAAM;aACjB;EAEO,CAAA,CAEV,EAAA,CAAA;YAGJ,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,YAAY;IACZ,KAAK;GACP;aAEA,kBAAC,GAAD;IACU;IACG;IACD;GACX,CAAA;EACE,CAAA;CACA,CAAA,EACP,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadConfirmationUtils.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"sourcesContent":["import { displayToast } from '../ToastMessage'\n\nexport function displayFilesWereAddedToDownloadListSuccess(\n downloadCartPageUrl: string,\n) {\n displayToast(\n 'File(s) were successfully added to your Download List.',\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download List',\n onClick: () => {\n window.location.href = downloadCartPageUrl\n },\n },\n },\n )\n}\n"],"mappings":";;;AAEA,SAAgB,EACd,GACA;AACA,GACE,0DACA,WACA,EACE,qBAAqB;EACnB,MAAM;EACN,eAAe;AACb,UAAO,SAAS,OAAO;;EAE1B,EACF,CACF"}
1
+ {"version":3,"file":"DownloadConfirmationUtils.js","names":[],"sources":["../../../src/components/download_list/DownloadConfirmationUtils.ts"],"sourcesContent":["import { displayToast } from '../ToastMessage'\n\nexport function displayFilesWereAddedToDownloadListSuccess(\n downloadCartPageUrl: string,\n) {\n displayToast(\n 'File(s) were successfully added to your Download List.',\n 'success',\n {\n primaryButtonConfig: {\n text: 'View Download List',\n onClick: () => {\n window.location.href = downloadCartPageUrl\n },\n },\n },\n )\n}\n"],"mappings":";;;AAEA,SAAgB,EACd,GACA;CACA,EACE,0DACA,WACA,EACE,qBAAqB;EACnB,MAAM;EACN,eAAe;GACb,OAAO,SAAS,OAAO;EACzB;CACF,EACF,CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadDetails.js","names":[],"sources":["../../../src/components/download_list/DownloadDetails.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { testDownloadSpeed } from '@/utils/functions/testDownloadSpeed'\nimport {\n InsertDriveFileTwoTone,\n LayersTwoTone,\n WatchLaterTwoTone,\n} from '@mui/icons-material'\nimport { Tooltip } from '@mui/material'\nimport dayjs from 'dayjs'\nimport duration from 'dayjs/plugin/duration'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { useEffect, useState } from 'react'\nimport { SkeletonInlineBlock } from '../Skeleton/SkeletonInlineBlock'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ndayjs.extend(duration)\ndayjs.extend(relativeTime)\n\nexport type DownloadDetailsProps = {\n numFiles?: number\n numBytes?: number\n}\n\ntype State = {\n isLoading: boolean\n downloadSpeed: number\n}\n\n/**\n * Displays download information including number of files, size of download, and time to download.\n * Prefer to use {@link ../DownloadCart/DownloadDetails} instead, particularly when you have information about file packaging in/eligibility\n * @param props\n * @returns\n */\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numBytes } = props\n const { accessToken, isAuthenticated } = useSynapseContext()\n const hasNumBytes = !!numBytes\n\n const [state, setState] = useState<State>({\n isLoading: hasNumBytes, // figure out the estimated download time iff we were given a byte count\n downloadSpeed: 0,\n })\n const { isLoading, downloadSpeed } = state\n\n useEffect(() => {\n if (isAuthenticated) {\n testDownloadSpeed(accessToken!).then(speed => {\n setState({\n isLoading: false,\n downloadSpeed: speed,\n })\n })\n }\n }, [isAuthenticated, accessToken])\n\n const timeEstimateInSeconds =\n isLoading || downloadSpeed === 0 || !numBytes ? 0 : numBytes / downloadSpeed\n const isTimeEstimateLoading = timeEstimateInSeconds === 0\n const friendlyTime = isTimeEstimateLoading\n ? ''\n : dayjs.duration({ seconds: timeEstimateInSeconds }).humanize()\n\n const isZeroFiles = numFiles === 0\n const fileCountIconClass = isZeroFiles\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n\n const timeEstimateIconClass = isTimeEstimateLoading\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n return (\n <span className=\"download-details-container\">\n {numFiles != null && (\n <span>\n <InsertDriveFileTwoTone className={fileCountIconClass} />\n {isZeroFiles ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n <>{numFiles.toLocaleString()}&nbsp;files</>\n )}\n </span>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is the total size of all files. Zipped package(s) will likely be smaller.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"numBytesUI\">\n <LayersTwoTone className={timeEstimateIconClass} />\n {isTimeEstimateLoading ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n calculateFriendlyFileSize(numBytes)\n )}\n </span>\n </Tooltip>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is an estimate of how long package download will take.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"downloadTimeEstimateUI\">\n <WatchLaterTwoTone className={timeEstimateIconClass} />\n {isLoading && numFiles != null && numFiles > 0 ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n friendlyTime\n )}\n </span>\n </Tooltip>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,EAAM,OAAO,EAAS,EACtB,EAAM,OAAO,EAAa;AAkB1B,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,aAAU,gBAAa,GACzB,EAAE,gBAAa,uBAAoB,GAAmB,EACtD,IAAc,CAAC,CAAC,GAEhB,CAAC,GAAO,KAAY,EAAgB;EACxC,WAAW;EACX,eAAe;EAChB,CAAC,EACI,EAAE,cAAW,qBAAkB;AAErC,SAAgB;AACd,EAAI,KACF,EAAkB,EAAa,CAAC,MAAK,MAAS;AAC5C,KAAS;IACP,WAAW;IACX,eAAe;IAChB,CAAC;IACF;IAEH,CAAC,GAAiB,EAAY,CAAC;CAElC,IAAM,IACJ,KAAa,MAAkB,KAAK,CAAC,IAAW,IAAI,IAAW,GAC3D,IAAwB,MAA0B,GAClD,IAAe,IACjB,KACA,EAAM,SAAS,EAAE,SAAS,GAAuB,CAAC,CAAC,UAAU,EAE3D,IAAc,MAAa,GAC3B,IAAqB,IACvB,iBACA,0BAEE,IAAwB,IAC1B,iBACA;AACJ,QACE,kBAAC,QAAD;EAAM,WAAU;YAAhB;GACG,KAAY,QACX,kBAAC,QAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAwB,WAAW,GAAsB,CAAA,EACxD,IACC,kBAAC,GAAD,EAAqB,OAAO,IAAM,CAAA,GAElC,kBAAA,GAAA,EAAA,UAAA,CAAG,EAAS,gBAAgB,EAAC,YAAc,EAAA,CAAA,CAExC,EAAA,CAAA;GAER,KACC,kBAAC,GAAD;IACE,OAAM;IACN,gBAAA;IACA,WAAU;cAEV,kBAAC,QAAD;KAAM,eAAY;eAAlB,CACE,kBAAC,GAAD,EAAe,WAAW,GAAyB,CAAA,EAClD,IACC,kBAAC,GAAD,EAAqB,OAAO,IAAM,CAAA,GAElC,EAA0B,EAAS,CAEhC;;IACC,CAAA;GAEX,KACC,kBAAC,GAAD;IACE,OAAM;IACN,gBAAA;IACA,WAAU;cAEV,kBAAC,QAAD;KAAM,eAAY;eAAlB,CACE,kBAAC,GAAD,EAAmB,WAAW,GAAyB,CAAA,EACtD,KAAa,KAAY,QAAQ,IAAW,IAC3C,kBAAC,GAAD,EAAqB,OAAO,IAAM,CAAA,GAElC,EAEG;;IACC,CAAA;GAEP"}
1
+ {"version":3,"file":"DownloadDetails.js","names":[],"sources":["../../../src/components/download_list/DownloadDetails.tsx"],"sourcesContent":["import { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { testDownloadSpeed } from '@/utils/functions/testDownloadSpeed'\nimport {\n InsertDriveFileTwoTone,\n LayersTwoTone,\n WatchLaterTwoTone,\n} from '@mui/icons-material'\nimport { Tooltip } from '@mui/material'\nimport dayjs from 'dayjs'\nimport duration from 'dayjs/plugin/duration'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { useEffect, useState } from 'react'\nimport { SkeletonInlineBlock } from '../Skeleton/SkeletonInlineBlock'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ndayjs.extend(duration)\ndayjs.extend(relativeTime)\n\nexport type DownloadDetailsProps = {\n numFiles?: number\n numBytes?: number\n}\n\ntype State = {\n isLoading: boolean\n downloadSpeed: number\n}\n\n/**\n * Displays download information including number of files, size of download, and time to download.\n * Prefer to use {@link ../DownloadCart/DownloadDetails} instead, particularly when you have information about file packaging in/eligibility\n * @param props\n * @returns\n */\nexport default function DownloadDetails(props: DownloadDetailsProps) {\n const { numFiles, numBytes } = props\n const { accessToken, isAuthenticated } = useSynapseContext()\n const hasNumBytes = !!numBytes\n\n const [state, setState] = useState<State>({\n isLoading: hasNumBytes, // figure out the estimated download time iff we were given a byte count\n downloadSpeed: 0,\n })\n const { isLoading, downloadSpeed } = state\n\n useEffect(() => {\n if (isAuthenticated) {\n testDownloadSpeed(accessToken!).then(speed => {\n setState({\n isLoading: false,\n downloadSpeed: speed,\n })\n })\n }\n }, [isAuthenticated, accessToken])\n\n const timeEstimateInSeconds =\n isLoading || downloadSpeed === 0 || !numBytes ? 0 : numBytes / downloadSpeed\n const isTimeEstimateLoading = timeEstimateInSeconds === 0\n const friendlyTime = isTimeEstimateLoading\n ? ''\n : dayjs.duration({ seconds: timeEstimateInSeconds }).humanize()\n\n const isZeroFiles = numFiles === 0\n const fileCountIconClass = isZeroFiles\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n\n const timeEstimateIconClass = isTimeEstimateLoading\n ? 'SRC-inactive'\n : 'SRC-primary-text-color'\n return (\n <span className=\"download-details-container\">\n {numFiles != null && (\n <span>\n <InsertDriveFileTwoTone className={fileCountIconClass} />\n {isZeroFiles ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n <>{numFiles.toLocaleString()}&nbsp;files</>\n )}\n </span>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is the total size of all files. Zipped package(s) will likely be smaller.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"numBytesUI\">\n <LayersTwoTone className={timeEstimateIconClass} />\n {isTimeEstimateLoading ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n calculateFriendlyFileSize(numBytes)\n )}\n </span>\n </Tooltip>\n )}\n {hasNumBytes && (\n <Tooltip\n title=\"This is an estimate of how long package download will take.\"\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement=\"top\"\n >\n <span data-testid=\"downloadTimeEstimateUI\">\n <WatchLaterTwoTone className={timeEstimateIconClass} />\n {isLoading && numFiles != null && numFiles > 0 ? (\n <SkeletonInlineBlock width={50} />\n ) : (\n friendlyTime\n )}\n </span>\n </Tooltip>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,EAAM,OAAO,CAAQ,GACrB,EAAM,OAAO,CAAY;AAkBzB,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,aAAU,gBAAa,GACzB,EAAE,gBAAa,uBAAoB,EAAkB,GACrD,IAAc,CAAC,CAAC,GAEhB,CAAC,GAAO,KAAY,EAAgB;EACxC,WAAW;EACX,eAAe;CACjB,CAAC,GACK,EAAE,cAAW,qBAAkB;CAErC,QAAgB;EACd,AAAI,KACF,EAAkB,CAAY,EAAE,MAAK,MAAS;GAC5C,EAAS;IACP,WAAW;IACX,eAAe;GACjB,CAAC;EACH,CAAC;CAEL,GAAG,CAAC,GAAiB,CAAW,CAAC;CAEjC,IAAM,IACJ,KAAa,MAAkB,KAAK,CAAC,IAAW,IAAI,IAAW,GAC3D,IAAwB,MAA0B,GAClD,IAAe,IACjB,KACA,EAAM,SAAS,EAAE,SAAS,EAAsB,CAAC,EAAE,SAAS,GAE1D,IAAc,MAAa,GAC3B,IAAqB,IACvB,iBACA,0BAEE,IAAwB,IAC1B,iBACA;CACJ,OACE,kBAAC,QAAD;EAAM,WAAU;YAAhB;GACG,KAAY,QACX,kBAAC,QAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAwB,WAAW,EAAqB,CAAA,GACvD,IACC,kBAAC,GAAD,EAAqB,OAAO,GAAK,CAAA,IAEjC,kBAAA,GAAA,EAAA,UAAA,CAAG,EAAS,eAAe,GAAE,WAAa,EAAA,CAAA,CAExC,EAAA,CAAA;GAEP,KACC,kBAAC,GAAD;IACE,OAAM;IACN,gBAAA;IACA,WAAU;cAEV,kBAAC,QAAD;KAAM,eAAY;eAAlB,CACE,kBAAC,GAAD,EAAe,WAAW,EAAwB,CAAA,GACjD,IACC,kBAAC,GAAD,EAAqB,OAAO,GAAK,CAAA,IAEjC,EAA0B,CAAQ,CAEhC;;GACC,CAAA;GAEV,KACC,kBAAC,GAAD;IACE,OAAM;IACN,gBAAA;IACA,WAAU;cAEV,kBAAC,QAAD;KAAM,eAAY;eAAlB,CACE,kBAAC,GAAD,EAAmB,WAAW,EAAwB,CAAA,GACrD,KAAa,KAAY,QAAQ,IAAW,IAC3C,kBAAC,GAAD,EAAqB,OAAO,GAAK,CAAA,IAEjC,CAEE;;GACC,CAAA;EAEP;;AAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/download_list/index.ts"],"sourcesContent":["import DownloadDetails from './DownloadDetails'\n\nexport default { DownloadDetails }\nexport { DownloadDetails }\n"],"mappings":";;AAEA,IAAA,IAAe,EAAE,oBAAiB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/download_list/index.ts"],"sourcesContent":["import DownloadDetails from './DownloadDetails'\n\nexport default { DownloadDetails }\nexport { DownloadDetails }\n"],"mappings":";;AAEA,IAAA,IAAe,EAAE,mBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationsTable.js","names":[],"sources":["../../../../src/components/entity/metadata/AnnotationsTable.tsx"],"sourcesContent":["import { EntityAnnotationKey } from '@/components/entity/metadata/EntityAnnotationKey'\nimport { useGetJson } from '@/synapse-queries/entity/useEntity'\nimport { useGetSchema } from '@/synapse-queries/entity/useSchema'\nimport {\n useGetSchemaBinding,\n useGetValidationResults,\n} from '@/synapse-queries/entity/useEntityBoundSchema'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { isISOTimestamp } from '@/utils/functions/DateTimeUtils'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n getDisplayedAnnotationDescription,\n getDisplayedAnnotationTitle,\n useGetAnnotatedJsonInstance,\n} from '@/utils/jsonschema/SchemaAnnotationUtils'\nimport { Json } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { isEmpty } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport FullWidthAlert from '../../FullWidthAlert'\nimport { SkeletonTable } from '../../Skeleton'\n\nexport type AnnotationsTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport function getDisplayedAnnotation(\n value: string | number | boolean,\n): string {\n if (typeof value === 'number' || typeof value === 'boolean') {\n return value.toString()\n } else if (isISOTimestamp(value)) {\n return formatDate(dayjs(value))\n }\n return value\n}\n\nexport function AnnotationsTable(props: AnnotationsTableProps) {\n const { entityId, versionNumber } = props\n const [isManuallyRefetching, setIsManuallyRefetching] = useState(false)\n\n const {\n data: entityData,\n isLoading: isLoadingEntityData,\n refetch: refetchEntityData,\n } = useGetJson(entityId, versionNumber, true)\n const entityMetadata = entityData?.entityMetadata\n const annotations = entityData?.annotations\n\n const { data: boundSchema, isLoading: isLoadingSchemaBinding } =\n useGetSchemaBinding(entityId)\n const { data: validationSchema, isLoading: isLoadingValidationSchema } =\n useGetSchema(boundSchema?.jsonSchemaVersionInfo.$id!, {\n enabled: Boolean(boundSchema),\n })\n\n const { data: annotatedInstance, isLoading: isLoadingSchemaAnnotations } =\n useGetAnnotatedJsonInstance(entityData?.entity as Json, validationSchema)\n\n const { data: validationResults, refetch: refetchValidationInformation } =\n useGetValidationResults(entityId, {\n enabled: Boolean(boundSchema),\n })\n\n const showSchemaInformation = Boolean(boundSchema)\n\n // If the entity has not yet been validated since the last fetch, then derived annotations may not have been calculated.\n const recentChangesHaveNotBeenValidated =\n !!entityMetadata &&\n !!validationResults &&\n dayjs(entityMetadata.modifiedOn).diff(\n dayjs(validationResults.validatedOn),\n ) > 0\n\n const onRefetch = useCallback(async () => {\n setIsManuallyRefetching(true)\n const promises = [\n // Refetch the annotations, which may have changed if new derived annotations have been calculated\n void refetchEntityData(),\n // Refetch the validation information, which we use to determine if derived annotations may still be pending\n void refetchValidationInformation(),\n ]\n await Promise.allSettled(promises)\n setIsManuallyRefetching(false)\n }, [refetchEntityData, refetchValidationInformation])\n\n const isLoading =\n isLoadingEntityData ||\n isLoadingSchemaBinding ||\n isLoadingValidationSchema ||\n isLoadingSchemaAnnotations\n\n return isLoading || isManuallyRefetching ? (\n <SkeletonTable numRows={3} numCols={2} />\n ) : (\n <>\n {entityMetadata && annotations && isEmpty(annotations) ? (\n <div className=\"placeholder\">\n This{' '}\n {entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )}{' '}\n has no annotations.\n </div>\n ) : null}\n <table className=\"AnnotationsTable\">\n <tbody>\n {annotations &&\n Object.keys(annotations).map((annotationKey: string) => {\n return (\n <tr key={annotationKey} className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key\">\n <EntityAnnotationKey\n annotationKey={annotationKey}\n title={getDisplayedAnnotationTitle(\n annotationKey,\n annotatedInstance,\n )}\n description={getDisplayedAnnotationDescription(\n annotationKey,\n annotatedInstance,\n )}\n />\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n {Array.isArray(annotations[annotationKey])\n ? annotations[annotationKey]\n .map(getDisplayedAnnotation)\n .join(', ')\n : getDisplayedAnnotation(\n annotations[annotationKey] as\n | string\n | number\n | boolean,\n )}\n </td>\n </tr>\n )\n })}\n {showSchemaInformation ? (\n <tr className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key Schema\">\n Validation Schema\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n <a\n href={`${getEndpoint(\n BackendDestinationEnum.REPO_ENDPOINT,\n )}/repo/v1/schema/type/registered/${\n boundSchema!.jsonSchemaVersionInfo.$id\n }`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {boundSchema!.jsonSchemaVersionInfo.schemaName}\n </a>\n </td>\n </tr>\n ) : null}\n </tbody>\n </table>\n {entityMetadata &&\n showSchemaInformation &&\n recentChangesHaveNotBeenValidated && (\n <FullWidthAlert\n variant=\"warning\"\n description={`This ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} has changed since it has been last validated. If this ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} is expected to have annotations derived from the Validation Schema, they may not yet be visible.`}\n primaryButtonConfig={{\n text: 'Reload Annotations',\n onClick: () => {\n onRefetch()\n },\n }}\n isGlobal={false}\n />\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkCA,SAAgB,EACd,GACQ;AAMR,QALI,OAAO,KAAU,YAAY,OAAO,KAAU,YACzC,EAAM,UAAU,GACd,EAAe,EAAM,GACvB,EAAW,EAAM,EAAM,CAAC,GAE1B;;AAGT,SAAgB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,aAAU,qBAAkB,GAC9B,CAAC,GAAsB,KAA2B,EAAS,GAAM,EAEjE,EACJ,MAAM,GACN,WAAW,GACX,SAAS,MACP,EAAW,GAAU,GAAe,GAAK,EACvC,IAAiB,GAAY,gBAC7B,IAAc,GAAY,aAE1B,EAAE,MAAM,GAAa,WAAW,MACpC,EAAoB,EAAS,EACzB,EAAE,MAAM,GAAkB,WAAW,MACzC,EAAa,GAAa,sBAAsB,KAAM,EACpD,SAAS,EAAQ,GAClB,CAAC,EAEE,EAAE,MAAM,GAAmB,WAAW,MAC1C,EAA4B,GAAY,QAAgB,EAAiB,EAErE,EAAE,MAAM,GAAmB,SAAS,MACxC,EAAwB,GAAU,EAChC,SAAS,EAAQ,GAClB,CAAC,EAEE,IAAwB,EAAQ,GAGhC,IACJ,CAAC,CAAC,KACF,CAAC,CAAC,KACF,EAAM,EAAe,WAAW,CAAC,KAC/B,EAAM,EAAkB,YAAY,CACrC,GAAG,GAEA,IAAY,EAAY,YAAY;AACxC,IAAwB,GAAK;EAC7B,IAAM,IAAW,CAEf,KAAK,GAAmB,EAExB,KAAK,GAA8B,CACpC;AAED,EADA,MAAM,QAAQ,WAAW,EAAS,EAClC,EAAwB,GAAM;IAC7B,CAAC,GAAmB,EAA6B,CAAC;AAQrD,QALE,KACA,KACA,KACA,KAEkB,IAClB,kBAAC,GAAD;EAAe,SAAS;EAAG,SAAS;EAAK,CAAA,GAEzC,kBAAA,GAAA,EAAA,UAAA;EACG,KAAkB,KAAe,EAAQ,EAAY,GACpD,kBAAC,OAAD;GAAK,WAAU;aAAf;IAA6B;IACtB;IACJ,EACC,EAAoB,EAAe,aAAa,CACjD;IAAE;IAAI;IAEH;OACJ;EACJ,kBAAC,SAAD;GAAO,WAAU;aACf,kBAAC,SAAD,EAAA,UAAA,CACG,KACC,OAAO,KAAK,EAAY,CAAC,KAAK,MAE1B,kBAAC,MAAD;IAAwB,WAAU;cAAlC,CACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD;MACiB;MACf,OAAO,EACL,GACA,EACD;MACD,aAAa,EACX,GACA,EACD;MACD,CAAA;KACC,CAAA,EACL,kBAAC,MAAD;KAAI,WAAU;eACX,MAAM,QAAQ,EAAY,GAAe,GACtC,EAAY,GACT,IAAI,EAAuB,CAC3B,KAAK,KAAK,GACb,EACE,EAAY,GAIb;KACF,CAAA,CACF;MA1BI,EA0BJ,CAEP,EACH,IACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAAoC;KAE7C,CAAA,EACL,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,KAAD;MACE,MAAM,GAAG,EACP,EAAuB,cACxB,CAAC,kCACA,EAAa,sBAAsB;MAErC,QAAO;MACP,KAAI;gBAEH,EAAa,sBAAsB;MAClC,CAAA;KACD,CAAA,CACF;QACH,KACE,EAAA,CAAA;GACF,CAAA;EACP,KACC,KACA,KACE,kBAAC,GAAD;GACE,SAAQ;GACR,aAAa,QAAQ,EACnB,EAAoB,EAAe,aAAa,CACjD,CAAC,yDAAyD,EACzD,EAAoB,EAAe,aAAa,CACjD,CAAC;GACF,qBAAqB;IACnB,MAAM;IACN,eAAe;AACb,QAAW;;IAEd;GACD,UAAU;GACV,CAAA;EAEL,EAAA,CAAA"}
1
+ {"version":3,"file":"AnnotationsTable.js","names":[],"sources":["../../../../src/components/entity/metadata/AnnotationsTable.tsx"],"sourcesContent":["import { EntityAnnotationKey } from '@/components/entity/metadata/EntityAnnotationKey'\nimport { useGetJson } from '@/synapse-queries/entity/useEntity'\nimport { useGetSchema } from '@/synapse-queries/entity/useSchema'\nimport {\n useGetSchemaBinding,\n useGetValidationResults,\n} from '@/synapse-queries/entity/useEntityBoundSchema'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { isISOTimestamp } from '@/utils/functions/DateTimeUtils'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport {\n getDisplayedAnnotationDescription,\n getDisplayedAnnotationTitle,\n useGetAnnotatedJsonInstance,\n} from '@/utils/jsonschema/SchemaAnnotationUtils'\nimport { Json } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { isEmpty } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport FullWidthAlert from '../../FullWidthAlert'\nimport { SkeletonTable } from '../../Skeleton'\n\nexport type AnnotationsTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport function getDisplayedAnnotation(\n value: string | number | boolean,\n): string {\n if (typeof value === 'number' || typeof value === 'boolean') {\n return value.toString()\n } else if (isISOTimestamp(value)) {\n return formatDate(dayjs(value))\n }\n return value\n}\n\nexport function AnnotationsTable(props: AnnotationsTableProps) {\n const { entityId, versionNumber } = props\n const [isManuallyRefetching, setIsManuallyRefetching] = useState(false)\n\n const {\n data: entityData,\n isLoading: isLoadingEntityData,\n refetch: refetchEntityData,\n } = useGetJson(entityId, versionNumber, true)\n const entityMetadata = entityData?.entityMetadata\n const annotations = entityData?.annotations\n\n const { data: boundSchema, isLoading: isLoadingSchemaBinding } =\n useGetSchemaBinding(entityId)\n const { data: validationSchema, isLoading: isLoadingValidationSchema } =\n useGetSchema(boundSchema?.jsonSchemaVersionInfo.$id!, {\n enabled: Boolean(boundSchema),\n })\n\n const { data: annotatedInstance, isLoading: isLoadingSchemaAnnotations } =\n useGetAnnotatedJsonInstance(entityData?.entity as Json, validationSchema)\n\n const { data: validationResults, refetch: refetchValidationInformation } =\n useGetValidationResults(entityId, {\n enabled: Boolean(boundSchema),\n })\n\n const showSchemaInformation = Boolean(boundSchema)\n\n // If the entity has not yet been validated since the last fetch, then derived annotations may not have been calculated.\n const recentChangesHaveNotBeenValidated =\n !!entityMetadata &&\n !!validationResults &&\n dayjs(entityMetadata.modifiedOn).diff(\n dayjs(validationResults.validatedOn),\n ) > 0\n\n const onRefetch = useCallback(async () => {\n setIsManuallyRefetching(true)\n const promises = [\n // Refetch the annotations, which may have changed if new derived annotations have been calculated\n void refetchEntityData(),\n // Refetch the validation information, which we use to determine if derived annotations may still be pending\n void refetchValidationInformation(),\n ]\n await Promise.allSettled(promises)\n setIsManuallyRefetching(false)\n }, [refetchEntityData, refetchValidationInformation])\n\n const isLoading =\n isLoadingEntityData ||\n isLoadingSchemaBinding ||\n isLoadingValidationSchema ||\n isLoadingSchemaAnnotations\n\n return isLoading || isManuallyRefetching ? (\n <SkeletonTable numRows={3} numCols={2} />\n ) : (\n <>\n {entityMetadata && annotations && isEmpty(annotations) ? (\n <div className=\"placeholder\">\n This{' '}\n {entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )}{' '}\n has no annotations.\n </div>\n ) : null}\n <table className=\"AnnotationsTable\">\n <tbody>\n {annotations &&\n Object.keys(annotations).map((annotationKey: string) => {\n return (\n <tr key={annotationKey} className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key\">\n <EntityAnnotationKey\n annotationKey={annotationKey}\n title={getDisplayedAnnotationTitle(\n annotationKey,\n annotatedInstance,\n )}\n description={getDisplayedAnnotationDescription(\n annotationKey,\n annotatedInstance,\n )}\n />\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n {Array.isArray(annotations[annotationKey])\n ? annotations[annotationKey]\n .map(getDisplayedAnnotation)\n .join(', ')\n : getDisplayedAnnotation(\n annotations[annotationKey] as\n | string\n | number\n | boolean,\n )}\n </td>\n </tr>\n )\n })}\n {showSchemaInformation ? (\n <tr className=\"AnnotationsTable__Row\">\n <td className=\"AnnotationsTable__Row__Key Schema\">\n Validation Schema\n </td>\n <td className=\"AnnotationsTable__Row__Value\">\n <a\n href={`${getEndpoint(\n BackendDestinationEnum.REPO_ENDPOINT,\n )}/repo/v1/schema/type/registered/${\n boundSchema!.jsonSchemaVersionInfo.$id\n }`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {boundSchema!.jsonSchemaVersionInfo.schemaName}\n </a>\n </td>\n </tr>\n ) : null}\n </tbody>\n </table>\n {entityMetadata &&\n showSchemaInformation &&\n recentChangesHaveNotBeenValidated && (\n <FullWidthAlert\n variant=\"warning\"\n description={`This ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} has changed since it has been last validated. If this ${entityTypeToFriendlyName(\n convertToEntityType(entityMetadata.concreteType),\n )} is expected to have annotations derived from the Validation Schema, they may not yet be visible.`}\n primaryButtonConfig={{\n text: 'Reload Annotations',\n onClick: () => {\n onRefetch()\n },\n }}\n isGlobal={false}\n />\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkCA,SAAgB,EACd,GACQ;CAMR,OALI,OAAO,KAAU,YAAY,OAAO,KAAU,YACzC,EAAM,SAAS,IACb,EAAe,CAAK,IACtB,EAAW,EAAM,CAAK,CAAC,IAEzB;AACT;AAEA,SAAgB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,aAAU,qBAAkB,GAC9B,CAAC,GAAsB,KAA2B,EAAS,EAAK,GAEhE,EACJ,MAAM,GACN,WAAW,GACX,SAAS,MACP,EAAW,GAAU,GAAe,EAAI,GACtC,IAAiB,GAAY,gBAC7B,IAAc,GAAY,aAE1B,EAAE,MAAM,GAAa,WAAW,MACpC,EAAoB,CAAQ,GACxB,EAAE,MAAM,GAAkB,WAAW,MACzC,EAAa,GAAa,sBAAsB,KAAM,EACpD,SAAS,EAAQ,EACnB,CAAC,GAEG,EAAE,MAAM,GAAmB,WAAW,MAC1C,EAA4B,GAAY,QAAgB,CAAgB,GAEpE,EAAE,MAAM,GAAmB,SAAS,MACxC,EAAwB,GAAU,EAChC,SAAS,EAAQ,EACnB,CAAC,GAEG,IAAwB,EAAQ,GAGhC,IACJ,CAAC,CAAC,KACF,CAAC,CAAC,KACF,EAAM,EAAe,UAAU,EAAE,KAC/B,EAAM,EAAkB,WAAW,CACrC,IAAI,GAEA,IAAY,EAAY,YAAY;EACxC,EAAwB,EAAI;EAC5B,IAAM,IAAW,CAEf,KAAK,EAAkB,GAEvB,KAAK,EAA6B,CACpC;EAEA,AADA,MAAM,QAAQ,WAAW,CAAQ,GACjC,EAAwB,EAAK;CAC/B,GAAG,CAAC,GAAmB,CAA4B,CAAC;CAQpD,OALE,KACA,KACA,KACA,KAEkB,IAClB,kBAAC,GAAD;EAAe,SAAS;EAAG,SAAS;CAAI,CAAA,IAExC,kBAAA,GAAA,EAAA,UAAA;EACG,KAAkB,KAAe,EAAQ,CAAW,IACnD,kBAAC,OAAD;GAAK,WAAU;aAAf;IAA6B;IACtB;IACJ,EACC,EAAoB,EAAe,YAAY,CACjD;IAAG;IAAI;GAEJ;OACH;EACJ,kBAAC,SAAD;GAAO,WAAU;aACf,kBAAC,SAAD,EAAA,UAAA,CACG,KACC,OAAO,KAAK,CAAW,EAAE,KAAK,MAE1B,kBAAC,MAAD;IAAwB,WAAU;cAAlC,CACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD;MACiB;MACf,OAAO,EACL,GACA,CACF;MACA,aAAa,EACX,GACA,CACF;KACD,CAAA;IACC,CAAA,GACJ,kBAAC,MAAD;KAAI,WAAU;eACX,MAAM,QAAQ,EAAY,EAAc,IACrC,EAAY,GACT,IAAI,CAAsB,EAC1B,KAAK,IAAI,IACZ,EACE,EAAY,EAId;IACF,CAAA,CACF;MA1BK,CA0BL,CAEP,GACF,IACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAAoC;IAE9C,CAAA,GACJ,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,KAAD;MACE,MAAM,GAAG,EACP,EAAuB,aACzB,EAAE,kCACA,EAAa,sBAAsB;MAErC,QAAO;MACP,KAAI;gBAEH,EAAa,sBAAsB;KACnC,CAAA;IACD,CAAA,CACF;QACF,IACC,EAAA,CAAA;EACF,CAAA;EACN,KACC,KACA,KACE,kBAAC,GAAD;GACE,SAAQ;GACR,aAAa,QAAQ,EACnB,EAAoB,EAAe,YAAY,CACjD,EAAE,yDAAyD,EACzD,EAAoB,EAAe,YAAY,CACjD,EAAE;GACF,qBAAqB;IACnB,MAAM;IACN,eAAe;KACb,EAAU;IACZ;GACF;GACA,UAAU;EACX,CAAA;CAEL,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityAnnotationKey.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityAnnotationKey.tsx"],"sourcesContent":["import { Box, Tooltip } from '@mui/material'\n\ntype EntityAnnotationKeyProps = {\n /** The key of the annotation */\n annotationKey: string\n /** An optional title of the annotation */\n title?: string\n /** An optional */\n description?: string\n}\n\n/**\n * A component used to display an Entity annotation key.\n */\nexport function EntityAnnotationKey(props: EntityAnnotationKeyProps) {\n const { annotationKey, title, description } = props\n\n if (title == annotationKey && !description) {\n return annotationKey\n }\n\n return (\n <Tooltip\n placement={'left'}\n title={\n <>\n {title != annotationKey && (\n <p>\n <strong>Annotation Key: {annotationKey}</strong>\n </p>\n )}\n <p>{description}</p>\n </>\n }\n >\n <Box\n component=\"span\"\n sx={theme => ({\n textDecorationLine: 'underline',\n textDecorationStyle: 'dotted',\n textDecorationThickness: '15%',\n textDecorationColor: theme.palette.secondary.main,\n textUnderlineOffset: '4px',\n cursor: 'pointer',\n })}\n >\n {title}\n </Box>\n </Tooltip>\n )\n}\n"],"mappings":";;;AAcA,SAAgB,EAAoB,GAAiC;CACnE,IAAM,EAAE,kBAAe,UAAO,mBAAgB;AAM9C,QAJI,KAAS,KAAiB,CAAC,IACtB,IAIP,kBAAC,GAAD;EACE,WAAW;EACX,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,KAAS,KACR,kBAAC,KAAD,EAAA,UACE,kBAAC,UAAD,EAAA,UAAA,CAAQ,oBAAiB,EAAuB,EAAA,CAAA,EAC9C,CAAA,EAEN,kBAAC,KAAD,EAAA,UAAI,GAAgB,CAAA,CACnB,EAAA,CAAA;YAGL,kBAAC,GAAD;GACE,WAAU;GACV,KAAI,OAAU;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,qBAAqB,EAAM,QAAQ,UAAU;IAC7C,qBAAqB;IACrB,QAAQ;IACT;aAEA;GACG,CAAA;EACE,CAAA"}
1
+ {"version":3,"file":"EntityAnnotationKey.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityAnnotationKey.tsx"],"sourcesContent":["import { Box, Tooltip } from '@mui/material'\n\ntype EntityAnnotationKeyProps = {\n /** The key of the annotation */\n annotationKey: string\n /** An optional title of the annotation */\n title?: string\n /** An optional */\n description?: string\n}\n\n/**\n * A component used to display an Entity annotation key.\n */\nexport function EntityAnnotationKey(props: EntityAnnotationKeyProps) {\n const { annotationKey, title, description } = props\n\n if (title == annotationKey && !description) {\n return annotationKey\n }\n\n return (\n <Tooltip\n placement={'left'}\n title={\n <>\n {title != annotationKey && (\n <p>\n <strong>Annotation Key: {annotationKey}</strong>\n </p>\n )}\n <p>{description}</p>\n </>\n }\n >\n <Box\n component=\"span\"\n sx={theme => ({\n textDecorationLine: 'underline',\n textDecorationStyle: 'dotted',\n textDecorationThickness: '15%',\n textDecorationColor: theme.palette.secondary.main,\n textUnderlineOffset: '4px',\n cursor: 'pointer',\n })}\n >\n {title}\n </Box>\n </Tooltip>\n )\n}\n"],"mappings":";;;AAcA,SAAgB,EAAoB,GAAiC;CACnE,IAAM,EAAE,kBAAe,UAAO,mBAAgB;CAM9C,OAJI,KAAS,KAAiB,CAAC,IACtB,IAIP,kBAAC,GAAD;EACE,WAAW;EACX,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,KAAS,KACR,kBAAC,KAAD,EAAA,UACE,kBAAC,UAAD,EAAA,UAAA,CAAQ,oBAAiB,CAAsB,EAAA,CAAA,EAC9C,CAAA,GAEL,kBAAC,KAAD,EAAA,UAAI,EAAe,CAAA,CACnB,EAAA,CAAA;YAGJ,kBAAC,GAAD;GACE,WAAU;GACV,KAAI,OAAU;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;IACzB,qBAAqB,EAAM,QAAQ,UAAU;IAC7C,qBAAqB;IACrB,QAAQ;GACV;aAEC;EACE,CAAA;CACE,CAAA;AAEb"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityModal.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityModal.tsx"],"sourcesContent":["import useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport {\n entityTypeToFriendlyName,\n isVersionableEntityType,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { Button, Tooltip } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\nimport Form from '@rjsf/core'\nimport { VersionableEntity } from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { ConfirmationDialog } from '../../ConfirmationDialog'\nimport { DialogBase } from '../../DialogBase'\nimport { SynapseErrorBoundary } from '../../error/ErrorBanner'\nimport { SchemaDrivenAnnotationEditor } from '../../SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor'\nimport { displayToast } from '../../ToastMessage/ToastMessage'\nimport { AnnotationsTable } from './AnnotationsTable'\nimport { MetadataTable } from './MetadataTable'\n\nexport const EntityModalTabs = [\n // non-annotation metadata about the entity\n 'METADATA',\n // annotation and schema information\n 'ANNOTATIONS',\n // TODO: Access -- we haven't yet built a viewer/editor for ACLs in SRC -- consider a redesign before building\n //'ACCESS', // ACLs (and maybe ARs?)\n // TODO: Previews - we would need preview renderers that accomplish feature parity with SWC\n //'PREVIEW' // should only show this tab if a preview exists\n] as const\ntype EntityModalTab = (typeof EntityModalTabs)[number]\n\nexport type EntityModalProps = {\n readonly show: boolean\n readonly entityId: string\n readonly versionNumber?: number\n readonly onClose: () => void\n readonly initialTab?: EntityModalTab\n readonly showTabs?: boolean\n readonly onEditModeChanged?: (isInEditMode: boolean) => void\n}\n\nexport function EntityModal(props: EntityModalProps) {\n const {\n entityId,\n versionNumber,\n show,\n onClose,\n initialTab = 'METADATA',\n showTabs = true,\n onEditModeChanged = noop,\n } = props\n const annotationEditorFormRef = useRef<Form>(null)\n\n const [currentTab, setCurrentTab] = useState<EntityModalTab>(initialTab)\n const [showEditCancellationWarning, setShowEditCancellationWarning] =\n useState(false)\n const [isInEditMode, setIsInEditMode] = useState(false)\n\n // Need to store variable behavior for when the user confirms they want to cancel editing\n // We may return to the readonly view, or we might close the entire modal, depending on what they clicked.\n const [onCancelEdit, setOnCancelEdit] = useState<() => void>(() =>\n setIsInEditMode(false),\n )\n\n // Call the callback if `isInEditMode` changes\n // e.g. to set the global isInEditMode tracker in SWC\n useEffect(() => {\n onEditModeChanged(isInEditMode)\n return () => {\n // Ensure we disable edit mode when the component unmounts\n onEditModeChanged(false)\n }\n }, [isInEditMode, onEditModeChanged])\n\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n const canEdit = entityBundle && entityBundle.permissions.canEdit\n\n const isVersionable =\n entityBundle && isVersionableEntityType(entityBundle.entityType)\n\n const isLatestVersion =\n isVersionable && (entityBundle.entity as VersionableEntity).isLatestVersion!\n\n const showOpenEntityPageButton =\n currentTab === 'METADATA' &&\n entityBundle &&\n !(typeof window !== 'undefined' && window.location.href.includes(entityId))\n const openEntityPageButton = (\n <Button\n variant={'contained'}\n onClick={() =>\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId}`,\n '_blank',\n 'noopener',\n )\n }\n >\n Open{' '}\n {entityBundle ? entityTypeToFriendlyName(entityBundle?.entityType) : ''}\n </Button>\n )\n\n const showSaveAnnotationsButton = currentTab === 'ANNOTATIONS' && isInEditMode\n const saveAnnotationsButton = (\n <Button\n variant={'contained'}\n onClick={() => {\n // Workaround for https://github.com/rjsf-team/react-jsonschema-form/issues/3121\n annotationEditorFormRef.current!.formElement.current.requestSubmit()\n }}\n >\n Save Annotations\n </Button>\n )\n\n const showCancelAnnotationEditsButton =\n currentTab === 'ANNOTATIONS' && isInEditMode\n const cancelAnnotationEditsButton = (\n <Button\n variant={'outlined'}\n onClick={() => {\n setOnCancelEdit(() => () => setIsInEditMode(false))\n setShowEditCancellationWarning(true)\n }}\n >\n Cancel\n </Button>\n )\n\n const showEditAnnotationsButton =\n canEdit && currentTab === 'ANNOTATIONS' && !isInEditMode\n const disableEditingOldVersion = isVersionable && !isLatestVersion\n const editAnnotationsButton = (\n <Tooltip\n title={\n disableEditingOldVersion\n ? 'Annotations can only be edited on the latest version'\n : undefined\n }\n >\n {/* Wrap in span so tooltip works even when disabled */}\n <span>\n <Button\n variant={'contained'}\n disabled={disableEditingOldVersion}\n onClick={() => {\n setIsInEditMode(true)\n }}\n >\n Edit\n </Button>\n </span>\n </Tooltip>\n )\n\n const dialogContent = (\n <>\n {showTabs && !isInEditMode ? (\n <div className=\"Tabs\">\n {EntityModalTabs.map(tabName => {\n return (\n <div\n className=\"Tab\"\n role=\"tab\"\n key={tabName}\n onClick={e => {\n e.stopPropagation()\n setCurrentTab(tabName)\n }}\n aria-selected={tabName === currentTab}\n >\n {tabName}\n </div>\n )\n })}\n </div>\n ) : null}\n <div style={currentTab === 'ANNOTATIONS' ? {} : { display: 'none' }}>\n {isInEditMode ? (\n <SynapseErrorBoundary>\n <SchemaDrivenAnnotationEditor\n entityId={entityId}\n formRef={annotationEditorFormRef}\n hideActions\n onSuccess={() => {\n displayToast('Annotations successfully updated.', 'success')\n setIsInEditMode(false)\n }}\n onCancel={() => setIsInEditMode(false)}\n />\n </SynapseErrorBoundary>\n ) : (\n <AnnotationsTable entityId={entityId} versionNumber={versionNumber} />\n )}\n </div>\n <div style={currentTab === 'METADATA' ? {} : { display: 'none' }}>\n <MetadataTable entityId={entityId} versionNumber={versionNumber} />\n </div>\n </>\n )\n\n const cancelEditingConfirmationModal = (\n <ConfirmationDialog\n open={showEditCancellationWarning}\n title=\"Unsaved Changes\"\n content=\"Any unsaved changes will be lost. Are you sure you want to close the editor?\"\n onCancel={() => {\n setShowEditCancellationWarning(false)\n }}\n onConfirm={() => {\n setShowEditCancellationWarning(false)\n onCancelEdit()\n }}\n />\n )\n\n const modalTitle = useMemo(() => {\n if (!entityBundle?.entity.name) {\n return <Skeleton width={'40%'} />\n } else if (currentTab === 'ANNOTATIONS') {\n return `${isInEditMode ? 'Edit ' : ''}Annotations for ${\n entityBundle.entity.name\n }`\n }\n return entityBundle.entity.name\n }, [currentTab, entityBundle?.entity.name, isInEditMode])\n\n return (\n <DialogBase\n className={`EntityMetadata`}\n open={show}\n onCancel={() => {\n if (isInEditMode) {\n setShowEditCancellationWarning(true)\n setOnCancelEdit(() => {\n // Need to return a function in a function because passing a function to setState has a different meaning\n return () => {\n setIsInEditMode(false)\n onClose()\n }\n })\n } else {\n onClose()\n }\n }}\n maxWidth={isInEditMode ? 'md' : 'sm'}\n title={modalTitle}\n content={dialogContent}\n actions={\n <>\n {cancelEditingConfirmationModal}\n {showCancelAnnotationEditsButton && cancelAnnotationEditsButton}\n {showSaveAnnotationsButton && saveAnnotationsButton}\n {showEditAnnotationsButton && editAnnotationsButton}\n {showOpenEntityPageButton && openEntityPageButton}\n </>\n }\n />\n )\n}\n\nexport default EntityModal\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,IAAa,IAAkB,CAE7B,YAEA,cAKD;AAaD,SAAgB,EAAY,GAAyB;CACnD,IAAM,EACJ,aACA,kBACA,SACA,YACA,gBAAa,YACb,cAAW,IACX,uBAAoB,MAClB,GACE,IAA0B,EAAa,KAAK,EAE5C,CAAC,GAAY,KAAiB,EAAyB,EAAW,EAClE,CAAC,GAA6B,KAClC,EAAS,GAAM,EACX,CAAC,GAAc,KAAmB,EAAS,GAAM,EAIjD,CAAC,IAAc,KAAmB,QACtC,EAAgB,GAAM,CACvB;AAID,UACE,EAAkB,EAAa,QAClB;AAEX,IAAkB,GAAM;KAEzB,CAAC,GAAc,EAAkB,CAAC;CAErC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,EAAc,EACpE,IAAU,KAAgB,EAAa,YAAY,SAEnD,IACJ,KAAgB,EAAwB,EAAa,WAAW,EAE5D,IACJ,KAAkB,EAAa,OAA6B,iBAExD,IACJ,MAAe,cACf,KACA,EAAE,OAAO,SAAW,OAAe,OAAO,SAAS,KAAK,SAAS,EAAS,GACtE,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eACE,OAAO,KACL,GAAG,EACD,EAAuB,gBACxB,CAAC,UAAU,KACZ,UACA,WACD;YATL;GAWC;GACM;GACJ,IAAe,EAAyB,GAAc,WAAW,GAAG;GAC9D;KAGL,IAA4B,MAAe,iBAAiB,GAC5D,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;AAEb,KAAwB,QAAS,YAAY,QAAQ,eAAe;;YAEvE;EAEQ,CAAA,EAGL,IACJ,MAAe,iBAAiB,GAC5B,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;AAEb,GADA,cAA4B,EAAgB,GAAM,CAAC,EACnD,EAA+B,GAAK;;YAEvC;EAEQ,CAAA,EAGL,IACJ,KAAW,MAAe,iBAAiB,CAAC,GACxC,IAA2B,KAAiB,CAAC,GAC7C,IACJ,kBAAC,GAAD;EACE,OACE,IACI,yDACA,KAAA;YAIN,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACE,SAAS;GACT,UAAU;GACV,eAAe;AACb,MAAgB,GAAK;;aAExB;GAEQ,CAAA,EACJ,CAAA;EACC,CAAA,EAGN,IACJ,kBAAA,GAAA,EAAA,UAAA;EACG,KAAY,CAAC,IACZ,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAgB,KAAI,MAEjB,kBAAC,OAAD;IACE,WAAU;IACV,MAAK;IAEL,UAAS,MAAK;AAEZ,KADA,EAAE,iBAAiB,EACnB,EAAc,EAAQ;;IAExB,iBAAe,MAAY;cAE1B;IACG,EARC,EAQD,CAER;GACE,CAAA,GACJ;EACJ,kBAAC,OAAD;GAAK,OAAO,MAAe,gBAAgB,EAAE,GAAG,EAAE,SAAS,QAAQ;aAChE,IACC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IACY;IACV,SAAS;IACT,aAAA;IACA,iBAAiB;AAEf,KADA,EAAa,qCAAqC,UAAU,EAC5D,EAAgB,GAAM;;IAExB,gBAAgB,EAAgB,GAAM;IACtC,CAAA,EACmB,CAAA,GAEvB,kBAAC,GAAD;IAA4B;IAAyB;IAAiB,CAAA;GAEpE,CAAA;EACN,kBAAC,OAAD;GAAK,OAAO,MAAe,aAAa,EAAE,GAAG,EAAE,SAAS,QAAQ;aAC9D,kBAAC,GAAD;IAAyB;IAAyB;IAAiB,CAAA;GAC/D,CAAA;EACL,EAAA,CAAA,EAGC,KACJ,kBAAC,GAAD;EACE,MAAM;EACN,OAAM;EACN,SAAQ;EACR,gBAAgB;AACd,KAA+B,GAAM;;EAEvC,iBAAiB;AAEf,GADA,EAA+B,GAAM,EACrC,IAAc;;EAEhB,CAAA,EAGE,KAAa,QACZ,GAAc,OAAO,OAEf,MAAe,gBACjB,GAAG,IAAe,UAAU,GAAG,kBACpC,EAAa,OAAO,SAGjB,EAAa,OAAO,OANlB,kBAAC,GAAD,EAAU,OAAO,OAAS,CAAA,EAOlC;EAAC;EAAY,GAAc,OAAO;EAAM;EAAa,CAAC;AAEzD,QACE,kBAAC,GAAD;EACE,WAAW;EACX,MAAM;EACN,gBAAgB;AACd,GAAI,KACF,EAA+B,GAAK,EACpC,cAEe;AAEX,IADA,EAAgB,GAAM,EACtB,GAAS;KAEX,IAEF,GAAS;;EAGb,UAAU,IAAe,OAAO;EAChC,OAAO;EACP,SAAS;EACT,SACE,kBAAA,GAAA,EAAA,UAAA;GACG;GACA,KAAmC;GACnC,KAA6B;GAC7B,KAA6B;GAC7B,KAA4B;GAC5B,EAAA,CAAA;EAEL,CAAA"}
1
+ {"version":3,"file":"EntityModal.js","names":[],"sources":["../../../../src/components/entity/metadata/EntityModal.tsx"],"sourcesContent":["import useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport {\n entityTypeToFriendlyName,\n isVersionableEntityType,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { Button, Tooltip } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\nimport Form from '@rjsf/core'\nimport { VersionableEntity } from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { ConfirmationDialog } from '../../ConfirmationDialog'\nimport { DialogBase } from '../../DialogBase'\nimport { SynapseErrorBoundary } from '../../error/ErrorBanner'\nimport { SchemaDrivenAnnotationEditor } from '../../SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor'\nimport { displayToast } from '../../ToastMessage/ToastMessage'\nimport { AnnotationsTable } from './AnnotationsTable'\nimport { MetadataTable } from './MetadataTable'\n\nexport const EntityModalTabs = [\n // non-annotation metadata about the entity\n 'METADATA',\n // annotation and schema information\n 'ANNOTATIONS',\n // TODO: Access -- we haven't yet built a viewer/editor for ACLs in SRC -- consider a redesign before building\n //'ACCESS', // ACLs (and maybe ARs?)\n // TODO: Previews - we would need preview renderers that accomplish feature parity with SWC\n //'PREVIEW' // should only show this tab if a preview exists\n] as const\ntype EntityModalTab = (typeof EntityModalTabs)[number]\n\nexport type EntityModalProps = {\n readonly show: boolean\n readonly entityId: string\n readonly versionNumber?: number\n readonly onClose: () => void\n readonly initialTab?: EntityModalTab\n readonly showTabs?: boolean\n readonly onEditModeChanged?: (isInEditMode: boolean) => void\n}\n\nexport function EntityModal(props: EntityModalProps) {\n const {\n entityId,\n versionNumber,\n show,\n onClose,\n initialTab = 'METADATA',\n showTabs = true,\n onEditModeChanged = noop,\n } = props\n const annotationEditorFormRef = useRef<Form>(null)\n\n const [currentTab, setCurrentTab] = useState<EntityModalTab>(initialTab)\n const [showEditCancellationWarning, setShowEditCancellationWarning] =\n useState(false)\n const [isInEditMode, setIsInEditMode] = useState(false)\n\n // Need to store variable behavior for when the user confirms they want to cancel editing\n // We may return to the readonly view, or we might close the entire modal, depending on what they clicked.\n const [onCancelEdit, setOnCancelEdit] = useState<() => void>(() =>\n setIsInEditMode(false),\n )\n\n // Call the callback if `isInEditMode` changes\n // e.g. to set the global isInEditMode tracker in SWC\n useEffect(() => {\n onEditModeChanged(isInEditMode)\n return () => {\n // Ensure we disable edit mode when the component unmounts\n onEditModeChanged(false)\n }\n }, [isInEditMode, onEditModeChanged])\n\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n const canEdit = entityBundle && entityBundle.permissions.canEdit\n\n const isVersionable =\n entityBundle && isVersionableEntityType(entityBundle.entityType)\n\n const isLatestVersion =\n isVersionable && (entityBundle.entity as VersionableEntity).isLatestVersion!\n\n const showOpenEntityPageButton =\n currentTab === 'METADATA' &&\n entityBundle &&\n !(typeof window !== 'undefined' && window.location.href.includes(entityId))\n const openEntityPageButton = (\n <Button\n variant={'contained'}\n onClick={() =>\n window.open(\n `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId}`,\n '_blank',\n 'noopener',\n )\n }\n >\n Open{' '}\n {entityBundle ? entityTypeToFriendlyName(entityBundle?.entityType) : ''}\n </Button>\n )\n\n const showSaveAnnotationsButton = currentTab === 'ANNOTATIONS' && isInEditMode\n const saveAnnotationsButton = (\n <Button\n variant={'contained'}\n onClick={() => {\n // Workaround for https://github.com/rjsf-team/react-jsonschema-form/issues/3121\n annotationEditorFormRef.current!.formElement.current.requestSubmit()\n }}\n >\n Save Annotations\n </Button>\n )\n\n const showCancelAnnotationEditsButton =\n currentTab === 'ANNOTATIONS' && isInEditMode\n const cancelAnnotationEditsButton = (\n <Button\n variant={'outlined'}\n onClick={() => {\n setOnCancelEdit(() => () => setIsInEditMode(false))\n setShowEditCancellationWarning(true)\n }}\n >\n Cancel\n </Button>\n )\n\n const showEditAnnotationsButton =\n canEdit && currentTab === 'ANNOTATIONS' && !isInEditMode\n const disableEditingOldVersion = isVersionable && !isLatestVersion\n const editAnnotationsButton = (\n <Tooltip\n title={\n disableEditingOldVersion\n ? 'Annotations can only be edited on the latest version'\n : undefined\n }\n >\n {/* Wrap in span so tooltip works even when disabled */}\n <span>\n <Button\n variant={'contained'}\n disabled={disableEditingOldVersion}\n onClick={() => {\n setIsInEditMode(true)\n }}\n >\n Edit\n </Button>\n </span>\n </Tooltip>\n )\n\n const dialogContent = (\n <>\n {showTabs && !isInEditMode ? (\n <div className=\"Tabs\">\n {EntityModalTabs.map(tabName => {\n return (\n <div\n className=\"Tab\"\n role=\"tab\"\n key={tabName}\n onClick={e => {\n e.stopPropagation()\n setCurrentTab(tabName)\n }}\n aria-selected={tabName === currentTab}\n >\n {tabName}\n </div>\n )\n })}\n </div>\n ) : null}\n <div style={currentTab === 'ANNOTATIONS' ? {} : { display: 'none' }}>\n {isInEditMode ? (\n <SynapseErrorBoundary>\n <SchemaDrivenAnnotationEditor\n entityId={entityId}\n formRef={annotationEditorFormRef}\n hideActions\n onSuccess={() => {\n displayToast('Annotations successfully updated.', 'success')\n setIsInEditMode(false)\n }}\n onCancel={() => setIsInEditMode(false)}\n />\n </SynapseErrorBoundary>\n ) : (\n <AnnotationsTable entityId={entityId} versionNumber={versionNumber} />\n )}\n </div>\n <div style={currentTab === 'METADATA' ? {} : { display: 'none' }}>\n <MetadataTable entityId={entityId} versionNumber={versionNumber} />\n </div>\n </>\n )\n\n const cancelEditingConfirmationModal = (\n <ConfirmationDialog\n open={showEditCancellationWarning}\n title=\"Unsaved Changes\"\n content=\"Any unsaved changes will be lost. Are you sure you want to close the editor?\"\n onCancel={() => {\n setShowEditCancellationWarning(false)\n }}\n onConfirm={() => {\n setShowEditCancellationWarning(false)\n onCancelEdit()\n }}\n />\n )\n\n const modalTitle = useMemo(() => {\n if (!entityBundle?.entity.name) {\n return <Skeleton width={'40%'} />\n } else if (currentTab === 'ANNOTATIONS') {\n return `${isInEditMode ? 'Edit ' : ''}Annotations for ${\n entityBundle.entity.name\n }`\n }\n return entityBundle.entity.name\n }, [currentTab, entityBundle?.entity.name, isInEditMode])\n\n return (\n <DialogBase\n className={`EntityMetadata`}\n open={show}\n onCancel={() => {\n if (isInEditMode) {\n setShowEditCancellationWarning(true)\n setOnCancelEdit(() => {\n // Need to return a function in a function because passing a function to setState has a different meaning\n return () => {\n setIsInEditMode(false)\n onClose()\n }\n })\n } else {\n onClose()\n }\n }}\n maxWidth={isInEditMode ? 'md' : 'sm'}\n title={modalTitle}\n content={dialogContent}\n actions={\n <>\n {cancelEditingConfirmationModal}\n {showCancelAnnotationEditsButton && cancelAnnotationEditsButton}\n {showSaveAnnotationsButton && saveAnnotationsButton}\n {showEditAnnotationsButton && editAnnotationsButton}\n {showOpenEntityPageButton && openEntityPageButton}\n </>\n }\n />\n )\n}\n\nexport default EntityModal\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,IAAa,IAAkB,CAE7B,YAEA,aAKF;AAaA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EACJ,aACA,kBACA,SACA,YACA,gBAAa,YACb,cAAW,IACX,uBAAoB,MAClB,GACE,IAA0B,EAAa,IAAI,GAE3C,CAAC,GAAY,KAAiB,EAAyB,CAAU,GACjE,CAAC,GAA6B,KAClC,EAAS,EAAK,GACV,CAAC,GAAc,KAAmB,EAAS,EAAK,GAIhD,CAAC,IAAc,KAAmB,QACtC,EAAgB,EAAK,CACvB;CAIA,SACE,EAAkB,CAAY,SACjB;EAEX,EAAkB,EAAK;CACzB,IACC,CAAC,GAAc,CAAiB,CAAC;CAEpC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,CAAa,GACnE,IAAU,KAAgB,EAAa,YAAY,SAEnD,IACJ,KAAgB,EAAwB,EAAa,UAAU,GAE3D,IACJ,KAAkB,EAAa,OAA6B,iBAExD,IACJ,MAAe,cACf,KACA,EAAE,OAAO,SAAW,OAAe,OAAO,SAAS,KAAK,SAAS,CAAQ,IACrE,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eACE,OAAO,KACL,GAAG,EACD,EAAuB,eACzB,EAAE,UAAU,KACZ,UACA,UACF;YATJ;GAWC;GACM;GACJ,IAAe,EAAyB,GAAc,UAAU,IAAI;EAC/D;KAGJ,IAA4B,MAAe,iBAAiB,GAC5D,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;GAEb,EAAwB,QAAS,YAAY,QAAQ,cAAc;EACrE;YACD;CAEO,CAAA,GAGJ,IACJ,MAAe,iBAAiB,GAC5B,IACJ,kBAAC,GAAD;EACE,SAAS;EACT,eAAe;GAEb,AADA,cAA4B,EAAgB,EAAK,CAAC,GAClD,EAA+B,EAAI;EACrC;YACD;CAEO,CAAA,GAGJ,IACJ,KAAW,MAAe,iBAAiB,CAAC,GACxC,IAA2B,KAAiB,CAAC,GAC7C,IACJ,kBAAC,GAAD;EACE,OACE,IACI,yDACA,KAAA;YAIN,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;GACE,SAAS;GACT,UAAU;GACV,eAAe;IACb,EAAgB,EAAI;GACtB;aACD;EAEO,CAAA,EACJ,CAAA;CACC,CAAA,GAGL,IACJ,kBAAA,GAAA,EAAA,UAAA;EACG,KAAY,CAAC,IACZ,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAgB,KAAI,MAEjB,kBAAC,OAAD;IACE,WAAU;IACV,MAAK;IAEL,UAAS,MAAK;KAEZ,AADA,EAAE,gBAAgB,GAClB,EAAc,CAAO;IACvB;IACA,iBAAe,MAAY;cAE1B;GACE,GARE,CAQF,CAER;EACE,CAAA,IACH;EACJ,kBAAC,OAAD;GAAK,OAAO,MAAe,gBAAgB,CAAC,IAAI,EAAE,SAAS,OAAO;aAC/D,IACC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IACY;IACV,SAAS;IACT,aAAA;IACA,iBAAiB;KAEf,AADA,EAAa,qCAAqC,SAAS,GAC3D,EAAgB,EAAK;IACvB;IACA,gBAAgB,EAAgB,EAAK;GACtC,CAAA,EACmB,CAAA,IAEtB,kBAAC,GAAD;IAA4B;IAAyB;GAAgB,CAAA;EAEpE,CAAA;EACL,kBAAC,OAAD;GAAK,OAAO,MAAe,aAAa,CAAC,IAAI,EAAE,SAAS,OAAO;aAC7D,kBAAC,GAAD;IAAyB;IAAyB;GAAgB,CAAA;EAC/D,CAAA;CACL,EAAA,CAAA,GAGE,KACJ,kBAAC,GAAD;EACE,MAAM;EACN,OAAM;EACN,SAAQ;EACR,gBAAgB;GACd,EAA+B,EAAK;EACtC;EACA,iBAAiB;GAEf,AADA,EAA+B,EAAK,GACpC,GAAa;EACf;CACD,CAAA,GAGG,KAAa,QACZ,GAAc,OAAO,OAEf,MAAe,gBACjB,GAAG,IAAe,UAAU,GAAG,kBACpC,EAAa,OAAO,SAGjB,EAAa,OAAO,OANlB,kBAAC,GAAD,EAAU,OAAO,MAAQ,CAAA,GAOjC;EAAC;EAAY,GAAc,OAAO;EAAM;CAAY,CAAC;CAExD,OACE,kBAAC,GAAD;EACE,WAAW;EACX,MAAM;EACN,gBAAgB;GACd,AAAI,KACF,EAA+B,EAAI,GACnC,cAEe;IAEX,AADA,EAAgB,EAAK,GACrB,EAAQ;GACV,CACD,KAED,EAAQ;EAEZ;EACA,UAAU,IAAe,OAAO;EAChC,OAAO;EACP,SAAS;EACT,SACE,kBAAA,GAAA,EAAA,UAAA;GACG;GACA,KAAmC;GACnC,KAA6B;GAC7B,KAA6B;GAC7B,KAA4B;EAC7B,EAAA,CAAA;CAEL,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTable.js","names":[],"sources":["../../../../src/components/entity/metadata/MetadataTable.tsx"],"sourcesContent":["import React from 'react'\nimport useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport { useGetUploadDestinationForStorageLocation } from '@/synapse-queries/file/useUploadDestination'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n entityTypeToFriendlyName,\n getVersionDisplay,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n getDataFileHandle,\n getStorageLocationName,\n} from '@/utils/functions/FileHandleUtils'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type MetadataTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport const MetadataTable = ({\n entityId,\n versionNumber,\n}: MetadataTableProps): React.ReactNode => {\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = entityBundle && isVersionableEntity(entityBundle.entity)\n\n const dataFileHandle = entityBundle\n ? getDataFileHandle(entityBundle)\n : undefined\n const parentId = entityBundle?.entity?.parentId\n const storageLocationId = dataFileHandle?.storageLocationId\n const { data: storageLocationUploadDestination } =\n useGetUploadDestinationForStorageLocation(parentId!, storageLocationId!, {\n enabled: parentId !== undefined && storageLocationId != null,\n })\n\n let fileLocationName: string | undefined = undefined\n if (dataFileHandle) {\n fileLocationName = getStorageLocationName(\n dataFileHandle,\n storageLocationUploadDestination,\n )\n }\n\n return entityBundle ? (\n <table className=\"MetadataTable\">\n <tbody>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Name</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.name}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Type</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityTypeToFriendlyName(entityBundle.entityType)}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Synapse ID</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.id}\n </td>\n </tr>\n {isVersionable && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Version</td>\n <td className=\"MetadataTable__Row__Value\">\n {getVersionDisplay(entityBundle.entity)}\n </td>\n </tr>\n )}\n {fileLocationName && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Storage</td>\n <td className=\"MetadataTable__Row__Value\">{fileLocationName}</td>\n </tr>\n )}\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\"> Last Modified By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.modifiedBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.modifiedOn))}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Created By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.createdBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.createdOn))}\n </td>\n </tr>\n </tbody>\n </table>\n ) : null\n}\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,KAAiB,EAC5B,aACA,uBACyC;CACzC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,EAAc,EAEpE,IAAgB,KAAgB,EAAoB,EAAa,OAAO,EAExE,IAAiB,IACnB,EAAkB,EAAa,GAC/B,KAAA,GACE,IAAW,GAAc,QAAQ,UACjC,IAAoB,GAAgB,mBACpC,EAAE,MAAM,MACZ,EAA0C,GAAW,GAAoB,EACvE,SAAS,MAAa,KAAA,KAAa,KAAqB,MACzD,CAAC,EAEA;AAQJ,QAPI,MACF,IAAmB,EACjB,GACA,EACD,GAGI,IACL,kBAAC,SAAD;EAAO,WAAU;YACf,kBAAC,SAAD,EAAA,UAAA;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;KAAS,CAAA,EACjD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAa,QAAQ;KACnB,CAAA,CACF;;GACL,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;KAAS,CAAA,EACjD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAyB,EAAa,WAAW;KAC/C,CAAA,CACF;;GACL,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;KAAe,CAAA,EACvD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAa,QAAQ;KACnB,CAAA,CACF;;GACJ,KACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;KAAY,CAAA,EACpD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAkB,EAAa,OAAO;KACpC,CAAA,CACF;;GAEN,KACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;KAAY,CAAA,EACpD,kBAAC,MAAD;KAAI,WAAU;eAA6B;KAAsB,CAAA,CAC9D;;GAEP,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;KAAsB,CAAA,EAC9D,kBAAC,MAAD;KAAI,WAAU;eAAd;MACE,kBAAC,GAAD,EAAW,QAAQ,EAAa,QAAQ,YAAc,CAAA;;MAAI;MACzD,EAAW,EAAM,EAAa,QAAQ,WAAW,CAAC;MAChD;OACF;;GACL,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;KAAe,CAAA,EACvD,kBAAC,MAAD;KAAI,WAAU;eAAd;MACE,kBAAC,GAAD,EAAW,QAAQ,EAAa,QAAQ,WAAa,CAAA;;MAAI;MACxD,EAAW,EAAM,EAAa,QAAQ,UAAU,CAAC;MAC/C;OACF;;GACC,EAAA,CAAA;EACF,CAAA,GACN"}
1
+ {"version":3,"file":"MetadataTable.js","names":[],"sources":["../../../../src/components/entity/metadata/MetadataTable.tsx"],"sourcesContent":["import React from 'react'\nimport useGetEntityBundle from '@/synapse-queries/entity/useEntityBundle'\nimport { useGetUploadDestinationForStorageLocation } from '@/synapse-queries/file/useUploadDestination'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n entityTypeToFriendlyName,\n getVersionDisplay,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport {\n getDataFileHandle,\n getStorageLocationName,\n} from '@/utils/functions/FileHandleUtils'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type MetadataTableProps = {\n readonly entityId: string\n readonly versionNumber?: number\n}\n\nexport const MetadataTable = ({\n entityId,\n versionNumber,\n}: MetadataTableProps): React.ReactNode => {\n const { data: entityBundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = entityBundle && isVersionableEntity(entityBundle.entity)\n\n const dataFileHandle = entityBundle\n ? getDataFileHandle(entityBundle)\n : undefined\n const parentId = entityBundle?.entity?.parentId\n const storageLocationId = dataFileHandle?.storageLocationId\n const { data: storageLocationUploadDestination } =\n useGetUploadDestinationForStorageLocation(parentId!, storageLocationId!, {\n enabled: parentId !== undefined && storageLocationId != null,\n })\n\n let fileLocationName: string | undefined = undefined\n if (dataFileHandle) {\n fileLocationName = getStorageLocationName(\n dataFileHandle,\n storageLocationUploadDestination,\n )\n }\n\n return entityBundle ? (\n <table className=\"MetadataTable\">\n <tbody>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Name</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.name}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Type</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityTypeToFriendlyName(entityBundle.entityType)}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Synapse ID</td>\n <td className=\"MetadataTable__Row__Value\">\n {entityBundle.entity?.id}\n </td>\n </tr>\n {isVersionable && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Version</td>\n <td className=\"MetadataTable__Row__Value\">\n {getVersionDisplay(entityBundle.entity)}\n </td>\n </tr>\n )}\n {fileLocationName && (\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Storage</td>\n <td className=\"MetadataTable__Row__Value\">{fileLocationName}</td>\n </tr>\n )}\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\"> Last Modified By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.modifiedBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.modifiedOn))}\n </td>\n </tr>\n <tr className=\"MetadataTable__Row\">\n <td className=\"MetadataTable__Row__Key\">Created By</td>\n <td className=\"MetadataTable__Row__Value\">\n <UserBadge userId={entityBundle.entity?.createdBy} /> at{' '}\n {formatDate(dayjs(entityBundle.entity?.createdOn))}\n </td>\n </tr>\n </tbody>\n </table>\n ) : null\n}\n"],"mappings":";;;;;;;;;;AAqBA,IAAa,KAAiB,EAC5B,aACA,uBACyC;CACzC,IAAM,EAAE,MAAM,MAAiB,EAAmB,GAAU,CAAa,GAEnE,IAAgB,KAAgB,EAAoB,EAAa,MAAM,GAEvE,IAAiB,IACnB,EAAkB,CAAY,IAC9B,KAAA,GACE,IAAW,GAAc,QAAQ,UACjC,IAAoB,GAAgB,mBACpC,EAAE,MAAM,MACZ,EAA0C,GAAW,GAAoB,EACvE,SAAS,MAAa,KAAA,KAAa,KAAqB,KAC1D,CAAC,GAEC;CAQJ,OAPI,MACF,IAAmB,EACjB,GACA,CACF,IAGK,IACL,kBAAC,SAAD;EAAO,WAAU;YACf,kBAAC,SAAD,EAAA,UAAA;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAQ,CAAA,GAChD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAa,QAAQ;IACpB,CAAA,CACF;;GACJ,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAQ,CAAA,GAChD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAyB,EAAa,UAAU;IAC/C,CAAA,CACF;;GACJ,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAc,CAAA,GACtD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAa,QAAQ;IACpB,CAAA,CACF;;GACH,KACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAW,CAAA,GACnD,kBAAC,MAAD;KAAI,WAAU;eACX,EAAkB,EAAa,MAAM;IACpC,CAAA,CACF;;GAEL,KACC,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAW,CAAA,GACnD,kBAAC,MAAD;KAAI,WAAU;eAA6B;IAAqB,CAAA,CAC9D;;GAEN,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAqB,CAAA,GAC7D,kBAAC,MAAD;KAAI,WAAU;eAAd;MACE,kBAAC,GAAD,EAAW,QAAQ,EAAa,QAAQ,WAAa,CAAA;MAAC;MAAI;MACzD,EAAW,EAAM,EAAa,QAAQ,UAAU,CAAC;KAChD;MACF;;GACJ,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0B;IAAc,CAAA,GACtD,kBAAC,MAAD;KAAI,WAAU;eAAd;MACE,kBAAC,GAAD,EAAW,QAAQ,EAAa,QAAQ,UAAY,CAAA;MAAC;MAAI;MACxD,EAAW,EAAM,EAAa,QAAQ,SAAS,CAAC;KAC/C;MACF;;EACC,EAAA,CAAA;CACF,CAAA,IACL;AACN"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreatedByModifiedBy.js","names":[],"sources":["../../../../src/components/entity/page/CreatedByModifiedBy.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport {\n useGetEntity,\n useGetQueryResultBundleWithAsyncStatus,\n} from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n isDataset,\n isTable,\n} from '@/utils/functions/EntityTypeUtils'\nimport { BUNDLE_MASK_LAST_UPDATED_ON } from '@/utils/SynapseConstants'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Box,\n Breadcrumbs,\n Skeleton,\n SxProps,\n Tooltip,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type CreatedByModifiedByProps = {\n entityId: string\n versionNumber?: number\n}\n\nfunction Separator() {\n const theme = useTheme()\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'))\n if (isSmallScreen) {\n return null\n }\n return (\n <Typography variant={'breadcrumb1'} sx={{ color: 'grey.700' }}>\n /\n </Typography>\n )\n}\n\nexport function CreatedByModifiedBy(props: CreatedByModifiedByProps) {\n const { entityId, versionNumber } = props\n const entityIdWithVersion = `${entityId}${\n versionNumber ? `.${versionNumber}` : ''\n }`\n\n const { data: entity } = useGetEntity(entityId, versionNumber)\n\n const { data: tableQueryResult } = useGetQueryResultBundleWithAsyncStatus(\n {\n entityId,\n query: {\n sql: `SELECT * FROM ${entityIdWithVersion} LIMIT 0`,\n },\n partMask: BUNDLE_MASK_LAST_UPDATED_ON,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n },\n { enabled: !!(entity && isTable(entity)) },\n )\n\n const tableLastRebuilt = tableQueryResult?.responseBody?.lastUpdatedOn\n const friendlyName = entity\n ? entityTypeToFriendlyName(convertToEntityType(entity.concreteType))\n : ''\n\n const datasetCreatedByTooltipText =\n 'This is the user who created this Dataset. ' +\n 'This may not be the same person who generated the files in this Dataset, or who originally uploaded these files to Synapse.'\n\n const tableModifiedOnTooltipText = (\n <>\n <p>\n This is when the configuration of this {friendlyName} was last changed.\n </p>\n <p>Configuration changes may be triggered by (for example):</p>\n <ul>\n <li>Editing the name of the {friendlyName}</li>\n <li>Updating the schema used by the {friendlyName}</li>\n </ul>\n <p>\n This does NOT reflect changes to the data displayed in the the{' '}\n {friendlyName}.\n </p>\n </>\n )\n /*\n If the tooltip text is a string, MUI automatically applies it to aria-label which is more accessible and testable.\n Since this tooltip text is a ReactNode, let's manually create a short string to use for the aria-label.\n */\n const tableModifiedOnAccessibleLabel = `This is when the configuration of this ${friendlyName} was last changed.`\n\n const tableLastUpdatedTooltipText =\n `When data changes, the ${friendlyName} is rebuilt to reflect those changes. ` +\n `This is the last time changes were made to the data.`\n\n const createdByTooltipId = `${entityIdWithVersion}-createdByTooltip`\n const modifiedByTooltipId = `${entityIdWithVersion}-modifiedByTooltip`\n const lastUpdatedTooltipId = `${entityIdWithVersion}-lastUpdatedTooltip`\n\n const iconSx: SxProps = {\n width: '16px',\n height: '16px',\n ml: '4px',\n verticalAlign: 'text-bottom',\n }\n\n return (\n <Box\n sx={theme => ({\n bgcolor: 'grey.100',\n py: '10px',\n [theme.breakpoints.down('sm')]: {\n p: '24px 40px',\n },\n })}\n >\n <Breadcrumbs\n separator={<Separator />}\n sx={theme => ({\n '& .MuiBreadcrumbs-ol': {\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n gap: '4px',\n },\n },\n })}\n >\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={createdByTooltipId}\n >\n {friendlyName} created by <UserBadge userId={entity?.createdBy} />{' '}\n on {formatDate(dayjs(entity?.createdOn))}\n {entity && isDataset(entity) && (\n <Tooltip\n id={createdByTooltipId}\n title={datasetCreatedByTooltipText}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={modifiedByTooltipId}\n >\n {entity && isTable(entity) ? 'Configuration' : friendlyName} last\n modified by <UserBadge userId={entity?.modifiedBy} /> on{' '}\n {formatDate(dayjs(entity?.modifiedOn))}\n {entity && isTable(entity) && (\n <Tooltip\n id={modifiedByTooltipId}\n title={tableModifiedOnTooltipText}\n aria-label={tableModifiedOnAccessibleLabel}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n {tableLastRebuilt && (\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={lastUpdatedTooltipId}\n >\n {friendlyName} last rebuilt on {formatDate(dayjs(tableLastRebuilt))}\n <Tooltip\n title={tableLastUpdatedTooltipText}\n id={lastUpdatedTooltipId}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n </Typography>\n )}\n </Breadcrumbs>\n </Box>\n )\n}\n\nexport default CreatedByModifiedBy\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreatedByModifiedBy.js","names":[],"sources":["../../../../src/components/entity/page/CreatedByModifiedBy.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport {\n useGetEntity,\n useGetQueryResultBundleWithAsyncStatus,\n} from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n isDataset,\n isTable,\n} from '@/utils/functions/EntityTypeUtils'\nimport { BUNDLE_MASK_LAST_UPDATED_ON } from '@/utils/SynapseConstants'\nimport { InfoTwoTone } from '@mui/icons-material'\nimport {\n Box,\n Breadcrumbs,\n Skeleton,\n SxProps,\n Tooltip,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport dayjs from 'dayjs'\nimport { UserBadge } from '../../UserCard/UserBadge'\n\nexport type CreatedByModifiedByProps = {\n entityId: string\n versionNumber?: number\n}\n\nfunction Separator() {\n const theme = useTheme()\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'))\n if (isSmallScreen) {\n return null\n }\n return (\n <Typography variant={'breadcrumb1'} sx={{ color: 'grey.700' }}>\n /\n </Typography>\n )\n}\n\nexport function CreatedByModifiedBy(props: CreatedByModifiedByProps) {\n const { entityId, versionNumber } = props\n const entityIdWithVersion = `${entityId}${\n versionNumber ? `.${versionNumber}` : ''\n }`\n\n const { data: entity } = useGetEntity(entityId, versionNumber)\n\n const { data: tableQueryResult } = useGetQueryResultBundleWithAsyncStatus(\n {\n entityId,\n query: {\n sql: `SELECT * FROM ${entityIdWithVersion} LIMIT 0`,\n },\n partMask: BUNDLE_MASK_LAST_UPDATED_ON,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n },\n { enabled: !!(entity && isTable(entity)) },\n )\n\n const tableLastRebuilt = tableQueryResult?.responseBody?.lastUpdatedOn\n const friendlyName = entity\n ? entityTypeToFriendlyName(convertToEntityType(entity.concreteType))\n : ''\n\n const datasetCreatedByTooltipText =\n 'This is the user who created this Dataset. ' +\n 'This may not be the same person who generated the files in this Dataset, or who originally uploaded these files to Synapse.'\n\n const tableModifiedOnTooltipText = (\n <>\n <p>\n This is when the configuration of this {friendlyName} was last changed.\n </p>\n <p>Configuration changes may be triggered by (for example):</p>\n <ul>\n <li>Editing the name of the {friendlyName}</li>\n <li>Updating the schema used by the {friendlyName}</li>\n </ul>\n <p>\n This does NOT reflect changes to the data displayed in the the{' '}\n {friendlyName}.\n </p>\n </>\n )\n /*\n If the tooltip text is a string, MUI automatically applies it to aria-label which is more accessible and testable.\n Since this tooltip text is a ReactNode, let's manually create a short string to use for the aria-label.\n */\n const tableModifiedOnAccessibleLabel = `This is when the configuration of this ${friendlyName} was last changed.`\n\n const tableLastUpdatedTooltipText =\n `When data changes, the ${friendlyName} is rebuilt to reflect those changes. ` +\n `This is the last time changes were made to the data.`\n\n const createdByTooltipId = `${entityIdWithVersion}-createdByTooltip`\n const modifiedByTooltipId = `${entityIdWithVersion}-modifiedByTooltip`\n const lastUpdatedTooltipId = `${entityIdWithVersion}-lastUpdatedTooltip`\n\n const iconSx: SxProps = {\n width: '16px',\n height: '16px',\n ml: '4px',\n verticalAlign: 'text-bottom',\n }\n\n return (\n <Box\n sx={theme => ({\n bgcolor: 'grey.100',\n py: '10px',\n [theme.breakpoints.down('sm')]: {\n p: '24px 40px',\n },\n })}\n >\n <Breadcrumbs\n separator={<Separator />}\n sx={theme => ({\n '& .MuiBreadcrumbs-ol': {\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n gap: '4px',\n },\n },\n })}\n >\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={createdByTooltipId}\n >\n {friendlyName} created by <UserBadge userId={entity?.createdBy} />{' '}\n on {formatDate(dayjs(entity?.createdOn))}\n {entity && isDataset(entity) && (\n <Tooltip\n id={createdByTooltipId}\n title={datasetCreatedByTooltipText}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n <ConditionalWrapper condition={!entity} wrapper={Skeleton}>\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={modifiedByTooltipId}\n >\n {entity && isTable(entity) ? 'Configuration' : friendlyName} last\n modified by <UserBadge userId={entity?.modifiedBy} /> on{' '}\n {formatDate(dayjs(entity?.modifiedOn))}\n {entity && isTable(entity) && (\n <Tooltip\n id={modifiedByTooltipId}\n title={tableModifiedOnTooltipText}\n aria-label={tableModifiedOnAccessibleLabel}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n )}\n </Typography>\n </ConditionalWrapper>\n {tableLastRebuilt && (\n <Typography\n sx={{ color: 'grey.700' }}\n variant={'breadcrumb1'}\n aria-describedby={lastUpdatedTooltipId}\n >\n {friendlyName} last rebuilt on {formatDate(dayjs(tableLastRebuilt))}\n <Tooltip\n title={tableLastUpdatedTooltipText}\n id={lastUpdatedTooltipId}\n >\n <InfoTwoTone sx={iconSx} />\n </Tooltip>\n </Typography>\n )}\n </Breadcrumbs>\n </Box>\n )\n}\n\nexport default CreatedByModifiedBy\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityActionMenu.js","names":[],"sources":["../../../../../src/components/entity/page/action_menu/EntityActionMenu.tsx"],"sourcesContent":["import { SxProps } from '@mui/material'\nimport { ComplexMenu } from '../../../menu/ComplexMenu'\nimport IconSvg, { IconName } from '../../../IconSvg/IconSvg'\nimport { DropdownMenuItem, DropdownMenuProps } from '../../../menu/DropdownMenu'\nimport { IconSvgButtonProps } from '../../../IconSvgButton'\nimport { MouseEvent } from 'react'\n\n// Represents the two types of dropdown menus that will be displayed on the entity page\ntype EntityActionMenuDropdownMenuType = 'DOWNLOAD' | 'PRIMARY'\n\ntype EntityActionMenuDropdownMenuConfiguration = {\n visible: boolean\n tooltipText?: string\n disabled?: boolean\n}\n\nexport type ActionConfiguration = {\n visible: boolean\n text: string\n disabled?: boolean\n tooltipText?: string\n onClick?: (e: MouseEvent) => void\n href?: string\n}\n\nexport type ActionConfigurationMap = Record<string, ActionConfiguration>\n\nexport type MenuConfigurationMap = Record<\n EntityActionMenuDropdownMenuType,\n EntityActionMenuDropdownMenuConfiguration\n>\n\nexport type ActionViewProps = {\n action: string\n icon?: IconName\n textSx?: SxProps\n iconSx?: SxProps\n}\n\nexport type EntityActionMenuLayout = {\n buttonActions: ActionViewProps[]\n downloadMenuActions: ActionViewProps[][]\n primaryMenuActions: ActionViewProps[][]\n primaryMenuText: string\n primaryMenuEndIcon: IconName\n menuButtonSx?: SxProps\n}\n\nexport type EntityActionMenuProps = {\n /* Maps a unique action string to a dynamic configuration for that particular action */\n actionConfiguration: ActionConfigurationMap\n /* Maps each dropdown menu to a dynamic configuration for that particular menu */\n menuConfiguration: MenuConfigurationMap\n /* Defines the layout of the actions. Typically depends on just the entity type and area. */\n layout: EntityActionMenuLayout\n}\n\n/*\n * All visible actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\nfunction getUnmappedActions(\n actionConfiguration: ActionConfigurationMap,\n layout: EntityActionMenuLayout,\n): ActionConfigurationMap {\n return Object.fromEntries(\n Object.entries(actionConfiguration).filter(([action, config]) => {\n // We don't care about actions that are not configured or should not be visible\n if (!config || !config.visible) {\n return false\n }\n\n const allLayoutActions: ActionViewProps[] = [\n ...layout.buttonActions,\n ...layout.primaryMenuActions.flat(),\n ...layout.downloadMenuActions.flat(),\n ]\n // Action is unmapped if it's visible and the layout doesn't have it\n return !allLayoutActions.some(\n layoutAction => layoutAction.action === action,\n )\n }),\n )\n}\n\n/**\n * Given a group of dropdown menu items and an action configuration,\n * return a list of dropdown menu items with non-visible and non-configured actions removed.\n * @param group\n * @param actionConfiguration\n */\nfunction mapAndFilterItemsInMenuGroup(\n group: ActionViewProps[],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[] {\n return group.reduce(\n (itemAcc: DropdownMenuItem[], actionViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[actionViewProps.action]\n // Only show the item if it's configured + visible\n if (configForAction && configForAction.visible) {\n itemAcc.push({\n text: configForAction.text ?? actionViewProps.action,\n onClick: configForAction.onClick,\n href: configForAction.href,\n tooltipText: configForAction.tooltipText,\n disabled: configForAction.disabled,\n icon: actionViewProps.icon,\n textSx: actionViewProps.textSx,\n iconSx: actionViewProps.iconSx,\n })\n }\n return itemAcc\n },\n [],\n )\n}\n\n/**\n * Given a list of groups of dropdown menu actions, returns a list of dropdown menu item\n * groups where non-visible actions have been removed, and groups with no visible actions\n * have been removed.\n * @param menuActions\n * @param actionConfiguration\n */\nfunction mapAndFilterMenuGroups(\n menuActions: ActionViewProps[][],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[][] {\n return menuActions.reduce(\n (groupAcc: DropdownMenuItem[][], group: ActionViewProps[]) => {\n const itemGroup = mapAndFilterItemsInMenuGroup(group, actionConfiguration)\n // Only show the group if it contains visible items\n if (itemGroup.length > 0) {\n groupAcc.push(itemGroup)\n }\n return groupAcc\n },\n [],\n )\n}\n\n/**\n * The EntityActionMenu renders a menu that displays the actions that can be invoked on an Entity page.\n */\nexport default function EntityActionMenu(props: EntityActionMenuProps) {\n const { actionConfiguration, menuConfiguration, layout } = props\n\n /*\n * All actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\n const unmappedActions = getUnmappedActions(actionConfiguration, layout)\n // Warn if unmapped actions were found and push them on to the layout.\n if (Object.entries(unmappedActions).length > 0) {\n console.warn(\n 'Actions are visible but have not been configured in the layout:',\n Object.entries(unmappedActions).map(entry => entry[0]),\n )\n // Modify the layout: put the unmapped actions in their own group at the top of the menu\n layout.primaryMenuActions.unshift(\n Object.entries(unmappedActions).map(\n (entry): ActionViewProps => ({\n action: entry[0],\n }),\n ),\n )\n }\n\n // Map button actions to an IconButtonConfiguration and omit non-visible actions\n const iconButtonConfigs: IconSvgButtonProps[] = layout.buttonActions.reduce(\n (acc: IconSvgButtonProps[], buttonViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[buttonViewProps.action]\n if (configForAction && configForAction.visible) {\n let onClick = configForAction.onClick\n if (onClick == null && !configForAction.href) {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n onClick = () => {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n }\n }\n acc.push({\n icon: buttonViewProps.icon as IconName,\n onClick: onClick,\n tooltipText: configForAction.text,\n disabled: configForAction.disabled,\n href: configForAction.href,\n })\n }\n return acc\n },\n [],\n )\n\n const downloadMenuConfig: DropdownMenuProps = {\n dropdownButtonText: 'Download Options',\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonTooltip: menuConfiguration.DOWNLOAD.tooltipText,\n buttonProps: {\n disabled: menuConfiguration.DOWNLOAD.disabled,\n endIcon: <IconSvg icon={'download'} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.downloadMenuActions,\n actionConfiguration,\n ),\n }\n\n const primaryMenuConfig: DropdownMenuProps = {\n dropdownButtonText: layout.primaryMenuText,\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonProps: {\n endIcon: <IconSvg icon={layout.primaryMenuEndIcon} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.primaryMenuActions,\n actionConfiguration,\n ),\n }\n\n return (\n <ComplexMenu\n iconButtons={iconButtonConfigs}\n dropdownMenus={[downloadMenuConfig, primaryMenuConfig]}\n />\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getUnmappedActions,\n mapAndFilterItemsInMenuGroup,\n mapAndFilterMenuGroups,\n}\n"],"mappings":";;;;AA6DA,SAAS,EACP,GACA,GACwB;AACxB,QAAO,OAAO,YACZ,OAAO,QAAQ,EAAoB,CAAC,QAAQ,CAAC,GAAQ,OAE/C,CAAC,KAAU,CAAC,EAAO,UACd,KASF,CAAC;EALN,GAAG,EAAO;EACV,GAAG,EAAO,mBAAmB,MAAM;EACnC,GAAG,EAAO,oBAAoB,MAAM;EAG9B,CAAiB,MACvB,MAAgB,EAAa,WAAW,EACzC,CACD,CACH;;AASH,SAAS,EACP,GACA,GACoB;AACpB,QAAO,EAAM,QACV,GAA6B,MAAqC;EACjE,IAAM,IAAkB,EAAoB,EAAgB;AAc5D,SAZI,KAAmB,EAAgB,WACrC,EAAQ,KAAK;GACX,MAAM,EAAgB,QAAQ,EAAgB;GAC9C,SAAS,EAAgB;GACzB,MAAM,EAAgB;GACtB,aAAa,EAAgB;GAC7B,UAAU,EAAgB;GAC1B,MAAM,EAAgB;GACtB,QAAQ,EAAgB;GACxB,QAAQ,EAAgB;GACzB,CAAC,EAEG;IAET,EAAE,CACH;;AAUH,SAAS,EACP,GACA,GACsB;AACtB,QAAO,EAAY,QAChB,GAAgC,MAA6B;EAC5D,IAAM,IAAY,EAA6B,GAAO,EAAoB;AAK1E,SAHI,EAAU,SAAS,KACrB,EAAS,KAAK,EAAU,EAEnB;IAET,EAAE,CACH;;AAMH,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,wBAAqB,sBAAmB,cAAW,GAMrD,IAAkB,EAAmB,GAAqB,EAAO;AAsEvE,QApEI,OAAO,QAAQ,EAAgB,CAAC,SAAS,MAC3C,QAAQ,KACN,mEACA,OAAO,QAAQ,EAAgB,CAAC,KAAI,MAAS,EAAM,GAAG,CACvD,EAED,EAAO,mBAAmB,QACxB,OAAO,QAAQ,EAAgB,CAAC,KAC7B,OAA4B,EAC3B,QAAQ,EAAM,IACf,EACF,CACF,GAyDD,kBAAC,GAAD;EACE,aAtD4C,EAAO,cAAc,QAClE,GAA2B,MAAqC;GAC/D,IAAM,IAAkB,EAAoB,EAAgB;AAC5D,OAAI,KAAmB,EAAgB,SAAS;IAC9C,IAAI,IAAU,EAAgB;AAO9B,IANI,KAAW,QAAQ,CAAC,EAAgB,SACtC,QAAQ,KAAK,6BAA6B,EAAgB,SAAS,EACnE,UAAgB;AACd,aAAQ,KAAK,6BAA6B,EAAgB,SAAS;QAGvE,EAAI,KAAK;KACP,MAAM,EAAgB;KACb;KACT,aAAa,EAAgB;KAC7B,UAAU,EAAgB;KAC1B,MAAM,EAAgB;KACvB,CAAC;;AAEJ,UAAO;KAET,EAAE,CAiCa;EACb,eAAe,CAAC;GA9BlB,oBAAoB;GACpB,2BAA2B;GAC3B,qBAAqB;GACrB,eAAe,EAAkB,SAAS;GAC1C,aAAa;IACX,UAAU,EAAkB,SAAS;IACrC,SAAS,kBAAC,GAAD;KAAS,MAAM;KAAY,MAAM;KAAS,CAAA;IACpD;GACD,OAAO,EACL,EAAO,qBACP,EACD;GAmBiB,EAAoB;GAftC,oBAAoB,EAAO;GAC3B,2BAA2B;GAC3B,qBAAqB;GACrB,aAAa,EACX,SAAS,kBAAC,GAAD;IAAS,MAAM,EAAO;IAAoB,MAAM;IAAS,CAAA,EACnE;GACD,OAAO,EACL,EAAO,oBACP,EACD;GAMqC,CAAkB;EACtD,CAAA;;AAIN,IAAa,IAA4B;CACvC;CACA;CACA;CACD"}
1
+ {"version":3,"file":"EntityActionMenu.js","names":[],"sources":["../../../../../src/components/entity/page/action_menu/EntityActionMenu.tsx"],"sourcesContent":["import { SxProps } from '@mui/material'\nimport { ComplexMenu } from '../../../menu/ComplexMenu'\nimport IconSvg, { IconName } from '../../../IconSvg/IconSvg'\nimport { DropdownMenuItem, DropdownMenuProps } from '../../../menu/DropdownMenu'\nimport { IconSvgButtonProps } from '../../../IconSvgButton'\nimport { MouseEvent } from 'react'\n\n// Represents the two types of dropdown menus that will be displayed on the entity page\ntype EntityActionMenuDropdownMenuType = 'DOWNLOAD' | 'PRIMARY'\n\ntype EntityActionMenuDropdownMenuConfiguration = {\n visible: boolean\n tooltipText?: string\n disabled?: boolean\n}\n\nexport type ActionConfiguration = {\n visible: boolean\n text: string\n disabled?: boolean\n tooltipText?: string\n onClick?: (e: MouseEvent) => void\n href?: string\n}\n\nexport type ActionConfigurationMap = Record<string, ActionConfiguration>\n\nexport type MenuConfigurationMap = Record<\n EntityActionMenuDropdownMenuType,\n EntityActionMenuDropdownMenuConfiguration\n>\n\nexport type ActionViewProps = {\n action: string\n icon?: IconName\n textSx?: SxProps\n iconSx?: SxProps\n}\n\nexport type EntityActionMenuLayout = {\n buttonActions: ActionViewProps[]\n downloadMenuActions: ActionViewProps[][]\n primaryMenuActions: ActionViewProps[][]\n primaryMenuText: string\n primaryMenuEndIcon: IconName\n menuButtonSx?: SxProps\n}\n\nexport type EntityActionMenuProps = {\n /* Maps a unique action string to a dynamic configuration for that particular action */\n actionConfiguration: ActionConfigurationMap\n /* Maps each dropdown menu to a dynamic configuration for that particular menu */\n menuConfiguration: MenuConfigurationMap\n /* Defines the layout of the actions. Typically depends on just the entity type and area. */\n layout: EntityActionMenuLayout\n}\n\n/*\n * All visible actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\nfunction getUnmappedActions(\n actionConfiguration: ActionConfigurationMap,\n layout: EntityActionMenuLayout,\n): ActionConfigurationMap {\n return Object.fromEntries(\n Object.entries(actionConfiguration).filter(([action, config]) => {\n // We don't care about actions that are not configured or should not be visible\n if (!config || !config.visible) {\n return false\n }\n\n const allLayoutActions: ActionViewProps[] = [\n ...layout.buttonActions,\n ...layout.primaryMenuActions.flat(),\n ...layout.downloadMenuActions.flat(),\n ]\n // Action is unmapped if it's visible and the layout doesn't have it\n return !allLayoutActions.some(\n layoutAction => layoutAction.action === action,\n )\n }),\n )\n}\n\n/**\n * Given a group of dropdown menu items and an action configuration,\n * return a list of dropdown menu items with non-visible and non-configured actions removed.\n * @param group\n * @param actionConfiguration\n */\nfunction mapAndFilterItemsInMenuGroup(\n group: ActionViewProps[],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[] {\n return group.reduce(\n (itemAcc: DropdownMenuItem[], actionViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[actionViewProps.action]\n // Only show the item if it's configured + visible\n if (configForAction && configForAction.visible) {\n itemAcc.push({\n text: configForAction.text ?? actionViewProps.action,\n onClick: configForAction.onClick,\n href: configForAction.href,\n tooltipText: configForAction.tooltipText,\n disabled: configForAction.disabled,\n icon: actionViewProps.icon,\n textSx: actionViewProps.textSx,\n iconSx: actionViewProps.iconSx,\n })\n }\n return itemAcc\n },\n [],\n )\n}\n\n/**\n * Given a list of groups of dropdown menu actions, returns a list of dropdown menu item\n * groups where non-visible actions have been removed, and groups with no visible actions\n * have been removed.\n * @param menuActions\n * @param actionConfiguration\n */\nfunction mapAndFilterMenuGroups(\n menuActions: ActionViewProps[][],\n actionConfiguration: ActionConfigurationMap,\n): DropdownMenuItem[][] {\n return menuActions.reduce(\n (groupAcc: DropdownMenuItem[][], group: ActionViewProps[]) => {\n const itemGroup = mapAndFilterItemsInMenuGroup(group, actionConfiguration)\n // Only show the group if it contains visible items\n if (itemGroup.length > 0) {\n groupAcc.push(itemGroup)\n }\n return groupAcc\n },\n [],\n )\n}\n\n/**\n * The EntityActionMenu renders a menu that displays the actions that can be invoked on an Entity page.\n */\nexport default function EntityActionMenu(props: EntityActionMenuProps) {\n const { actionConfiguration, menuConfiguration, layout } = props\n\n /*\n * All actions should be specified in the layout, but this is not guaranteed at compile time.\n * Find all visible actions in the action configuration that are not in the layout.\n */\n const unmappedActions = getUnmappedActions(actionConfiguration, layout)\n // Warn if unmapped actions were found and push them on to the layout.\n if (Object.entries(unmappedActions).length > 0) {\n console.warn(\n 'Actions are visible but have not been configured in the layout:',\n Object.entries(unmappedActions).map(entry => entry[0]),\n )\n // Modify the layout: put the unmapped actions in their own group at the top of the menu\n layout.primaryMenuActions.unshift(\n Object.entries(unmappedActions).map(\n (entry): ActionViewProps => ({\n action: entry[0],\n }),\n ),\n )\n }\n\n // Map button actions to an IconButtonConfiguration and omit non-visible actions\n const iconButtonConfigs: IconSvgButtonProps[] = layout.buttonActions.reduce(\n (acc: IconSvgButtonProps[], buttonViewProps: ActionViewProps) => {\n const configForAction = actionConfiguration[buttonViewProps.action]\n if (configForAction && configForAction.visible) {\n let onClick = configForAction.onClick\n if (onClick == null && !configForAction.href) {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n onClick = () => {\n console.warn(`No handler registered for ${buttonViewProps.action}`)\n }\n }\n acc.push({\n icon: buttonViewProps.icon as IconName,\n onClick: onClick,\n tooltipText: configForAction.text,\n disabled: configForAction.disabled,\n href: configForAction.href,\n })\n }\n return acc\n },\n [],\n )\n\n const downloadMenuConfig: DropdownMenuProps = {\n dropdownButtonText: 'Download Options',\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonTooltip: menuConfiguration.DOWNLOAD.tooltipText,\n buttonProps: {\n disabled: menuConfiguration.DOWNLOAD.disabled,\n endIcon: <IconSvg icon={'download'} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.downloadMenuActions,\n actionConfiguration,\n ),\n }\n\n const primaryMenuConfig: DropdownMenuProps = {\n dropdownButtonText: layout.primaryMenuText,\n convertSingleItemToButton: true,\n renderMenuIfNoItems: false,\n buttonProps: {\n endIcon: <IconSvg icon={layout.primaryMenuEndIcon} wrap={false} />,\n },\n items: mapAndFilterMenuGroups(\n layout.primaryMenuActions,\n actionConfiguration,\n ),\n }\n\n return (\n <ComplexMenu\n iconButtons={iconButtonConfigs}\n dropdownMenus={[downloadMenuConfig, primaryMenuConfig]}\n />\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getUnmappedActions,\n mapAndFilterItemsInMenuGroup,\n mapAndFilterMenuGroups,\n}\n"],"mappings":";;;;AA6DA,SAAS,EACP,GACA,GACwB;CACxB,OAAO,OAAO,YACZ,OAAO,QAAQ,CAAmB,EAAE,QAAQ,CAAC,GAAQ,OAE/C,CAAC,KAAU,CAAC,EAAO,UACd,KASF,CAAC;EALN,GAAG,EAAO;EACV,GAAG,EAAO,mBAAmB,KAAK;EAClC,GAAG,EAAO,oBAAoB,KAAK;CAG7B,EAAiB,MACvB,MAAgB,EAAa,WAAW,CAC1C,CACD,CACH;AACF;AAQA,SAAS,EACP,GACA,GACoB;CACpB,OAAO,EAAM,QACV,GAA6B,MAAqC;EACjE,IAAM,IAAkB,EAAoB,EAAgB;EAc5D,OAZI,KAAmB,EAAgB,WACrC,EAAQ,KAAK;GACX,MAAM,EAAgB,QAAQ,EAAgB;GAC9C,SAAS,EAAgB;GACzB,MAAM,EAAgB;GACtB,aAAa,EAAgB;GAC7B,UAAU,EAAgB;GAC1B,MAAM,EAAgB;GACtB,QAAQ,EAAgB;GACxB,QAAQ,EAAgB;EAC1B,CAAC,GAEI;CACT,GACA,CAAC,CACH;AACF;AASA,SAAS,EACP,GACA,GACsB;CACtB,OAAO,EAAY,QAChB,GAAgC,MAA6B;EAC5D,IAAM,IAAY,EAA6B,GAAO,CAAmB;EAKzE,OAHI,EAAU,SAAS,KACrB,EAAS,KAAK,CAAS,GAElB;CACT,GACA,CAAC,CACH;AACF;AAKA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,wBAAqB,sBAAmB,cAAW,GAMrD,IAAkB,EAAmB,GAAqB,CAAM;CAsEtE,OApEI,OAAO,QAAQ,CAAe,EAAE,SAAS,MAC3C,QAAQ,KACN,mEACA,OAAO,QAAQ,CAAe,EAAE,KAAI,MAAS,EAAM,EAAE,CACvD,GAEA,EAAO,mBAAmB,QACxB,OAAO,QAAQ,CAAe,EAAE,KAC7B,OAA4B,EAC3B,QAAQ,EAAM,GAChB,EACF,CACF,IAyDA,kBAAC,GAAD;EACE,aAtD4C,EAAO,cAAc,QAClE,GAA2B,MAAqC;GAC/D,IAAM,IAAkB,EAAoB,EAAgB;GAC5D,IAAI,KAAmB,EAAgB,SAAS;IAC9C,IAAI,IAAU,EAAgB;IAO9B,AANI,KAAW,QAAQ,CAAC,EAAgB,SACtC,QAAQ,KAAK,6BAA6B,EAAgB,QAAQ,GAClE,UAAgB;KACd,QAAQ,KAAK,6BAA6B,EAAgB,QAAQ;IACpE,IAEF,EAAI,KAAK;KACP,MAAM,EAAgB;KACb;KACT,aAAa,EAAgB;KAC7B,UAAU,EAAgB;KAC1B,MAAM,EAAgB;IACxB,CAAC;GACH;GACA,OAAO;EACT,GACA,CAAC,CAiCc;EACb,eAAe,CAAC;GA9BlB,oBAAoB;GACpB,2BAA2B;GAC3B,qBAAqB;GACrB,eAAe,EAAkB,SAAS;GAC1C,aAAa;IACX,UAAU,EAAkB,SAAS;IACrC,SAAS,kBAAC,GAAD;KAAS,MAAM;KAAY,MAAM;IAAQ,CAAA;GACpD;GACA,OAAO,EACL,EAAO,qBACP,CACF;EAmBkB,GAAoB;GAftC,oBAAoB,EAAO;GAC3B,2BAA2B;GAC3B,qBAAqB;GACrB,aAAa,EACX,SAAS,kBAAC,GAAD;IAAS,MAAM,EAAO;IAAoB,MAAM;GAAQ,CAAA,EACnE;GACA,OAAO,EACL,EAAO,oBACP,CACF;EAMsC,CAAiB;CACtD,CAAA;AAEL;AAEA,IAAa,IAA4B;CACvC;CACA;CACA;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPageBreadcrumbs.js","names":[],"sources":["../../../../../src/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.tsx"],"sourcesContent":["import { Breadcrumbs } from '@/components/Breadcrumbs/Breadcrumbs'\nimport { SxProps } from '@mui/material'\nimport { MouseEventHandler } from 'react'\n\ntype BreadcrumbItem = {\n /* The text to show in the breadcrumb item. Strings > 25 characters will be truncated */\n text: string\n /* Whether this item represents the current page. If true, this item will not have a link. Default false */\n current?: boolean\n /* Link for the item, if using react-router */\n to?: string\n /* Link for the item, if it should be a normal anchor */\n href?: string\n /* Event handler fired when the link is clicked */\n onClick?: MouseEventHandler\n}\n\ntype EntityPageBreadcrumbsProps = {\n items: BreadcrumbItem[]\n sx?: SxProps\n}\n\nconst ENTITY_PAGE_MAX_BREADCRUMB_LENGTH = 32\n\nconst entityPageBreadcrumbStyle: SxProps = {\n marginTop: '0px',\n padding: '10px 40px',\n backgroundColor: 'grey.200',\n ['& .MuiLink-root']: {\n color: 'text.secondary',\n letterSpacing: 0,\n '&:visited': {\n color: 'text.secondary',\n },\n },\n '& .MuiSvgIcon-root': {\n color: 'grey.500',\n },\n}\n\nexport default function EntityPageBreadcrumbs(\n props: EntityPageBreadcrumbsProps,\n) {\n const { items } = props\n return (\n <Breadcrumbs\n items={items}\n sx={entityPageBreadcrumbStyle}\n maxBreadcrumbLength={ENTITY_PAGE_MAX_BREADCRUMB_LENGTH}\n />\n )\n}\n"],"mappings":";;;AAsBA,IAAM,IAAoC,IAEpC,IAAqC;CACzC,WAAW;CACX,SAAS;CACT,iBAAiB;CAChB,mBAAoB;EACnB,OAAO;EACP,eAAe;EACf,aAAa,EACX,OAAO,kBACR;EACF;CACD,sBAAsB,EACpB,OAAO,YACR;CACF;AAED,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU;AAClB,QACE,kBAAC,GAAD;EACS;EACP,IAAI;EACJ,qBAAqB;EACrB,CAAA"}
1
+ {"version":3,"file":"EntityPageBreadcrumbs.js","names":[],"sources":["../../../../../src/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.tsx"],"sourcesContent":["import { Breadcrumbs } from '@/components/Breadcrumbs/Breadcrumbs'\nimport { SxProps } from '@mui/material'\nimport { MouseEventHandler } from 'react'\n\ntype BreadcrumbItem = {\n /* The text to show in the breadcrumb item. Strings > 25 characters will be truncated */\n text: string\n /* Whether this item represents the current page. If true, this item will not have a link. Default false */\n current?: boolean\n /* Link for the item, if using react-router */\n to?: string\n /* Link for the item, if it should be a normal anchor */\n href?: string\n /* Event handler fired when the link is clicked */\n onClick?: MouseEventHandler\n}\n\ntype EntityPageBreadcrumbsProps = {\n items: BreadcrumbItem[]\n sx?: SxProps\n}\n\nconst ENTITY_PAGE_MAX_BREADCRUMB_LENGTH = 32\n\nconst entityPageBreadcrumbStyle: SxProps = {\n marginTop: '0px',\n padding: '10px 40px',\n backgroundColor: 'grey.200',\n ['& .MuiLink-root']: {\n color: 'text.secondary',\n letterSpacing: 0,\n '&:visited': {\n color: 'text.secondary',\n },\n },\n '& .MuiSvgIcon-root': {\n color: 'grey.500',\n },\n}\n\nexport default function EntityPageBreadcrumbs(\n props: EntityPageBreadcrumbsProps,\n) {\n const { items } = props\n return (\n <Breadcrumbs\n items={items}\n sx={entityPageBreadcrumbStyle}\n maxBreadcrumbLength={ENTITY_PAGE_MAX_BREADCRUMB_LENGTH}\n />\n )\n}\n"],"mappings":";;;AAsBA,IAAM,IAAoC,IAEpC,IAAqC;CACzC,WAAW;CACX,SAAS;CACT,iBAAiB;CAChB,mBAAoB;EACnB,OAAO;EACP,eAAe;EACf,aAAa,EACX,OAAO,iBACT;CACF;CACA,sBAAsB,EACpB,OAAO,WACT;AACF;AAEA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU;CAClB,OACE,kBAAC,GAAD;EACS;EACP,IAAI;EACJ,qBAAqB;CACtB,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"CitationsDialog.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/CitationsDialog.tsx"],"sourcesContent":["import { List, ListItem, Link, Typography, Button } from '@mui/material'\nimport { CitingWork } from './useDataCiteUsage'\nimport { sanitize } from '@/utils/functions/SanitizeHtmlUtils'\nimport { DialogBase } from '@/components/DialogBase'\n\ntype Props = {\n open: boolean\n onClose: () => void\n citations: CitingWork[]\n title?: string\n}\n\nexport const CitationsDialog: React.FC<Props> = ({\n open,\n onClose,\n citations,\n title = 'Cited by',\n}) => {\n return (\n <DialogBase\n title={title}\n onCancel={() => {\n onClose()\n }}\n open={open}\n content={\n <List>\n {citations.map(w => {\n const title = w.title ?? w.doi\n return (\n <ListItem key={w.id} alignItems=\"flex-start\">\n <Typography>\n <Link\n href={`https://doi.org/${w.doi}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span\n dangerouslySetInnerHTML={{ __html: sanitize(title) }}\n />\n </Link>\n <br />\n {w.containerTitle ? `${w.containerTitle} · ` : ''}\n {w.publisher ? `${w.publisher} · ` : ''}\n {w.publicationYear ?? ''}\n </Typography>\n </ListItem>\n )\n })}\n </List>\n }\n actions={\n <>\n <Button variant={'outlined'} onClick={() => onClose()}>\n Close\n </Button>\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;AAYA,IAAa,KAAoC,EAC/C,SACA,YACA,cACA,WAAQ,iBAGN,kBAAC,GAAD;CACS;CACP,gBAAgB;AACd,KAAS;;CAEL;CACN,SACE,kBAAC,GAAD,EAAA,UACG,EAAU,KAAI,MAAK;EAClB,IAAM,IAAQ,EAAE,SAAS,EAAE;AAC3B,SACE,kBAAC,GAAD;GAAqB,YAAW;aAC9B,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KACE,MAAM,mBAAmB,EAAE;KAC3B,QAAO;KACP,KAAI;eAEJ,kBAAC,QAAD,EACE,yBAAyB,EAAE,QAAQ,EAAS,EAAM,EAAE,EACpD,CAAA;KACG,CAAA;IACP,kBAAC,MAAD,EAAM,CAAA;IACL,EAAE,iBAAiB,GAAG,EAAE,eAAe,OAAO;IAC9C,EAAE,YAAY,GAAG,EAAE,UAAU,OAAO;IACpC,EAAE,mBAAmB;IACX,EAAA,CAAA;GACJ,EAhBI,EAAE,GAgBN;GAEb,EACG,CAAA;CAET,SACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EAAQ,SAAS;EAAY,eAAe,GAAS;YAAE;EAE9C,CAAA,EACR,CAAA;CAEL,CAAA"}
1
+ {"version":3,"file":"CitationsDialog.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/CitationsDialog.tsx"],"sourcesContent":["import { List, ListItem, Link, Typography, Button } from '@mui/material'\nimport { CitingWork } from './useDataCiteUsage'\nimport { sanitize } from '@/utils/functions/SanitizeHtmlUtils'\nimport { DialogBase } from '@/components/DialogBase'\n\ntype Props = {\n open: boolean\n onClose: () => void\n citations: CitingWork[]\n title?: string\n}\n\nexport const CitationsDialog: React.FC<Props> = ({\n open,\n onClose,\n citations,\n title = 'Cited by',\n}) => {\n return (\n <DialogBase\n title={title}\n onCancel={() => {\n onClose()\n }}\n open={open}\n content={\n <List>\n {citations.map(w => {\n const title = w.title ?? w.doi\n return (\n <ListItem key={w.id} alignItems=\"flex-start\">\n <Typography>\n <Link\n href={`https://doi.org/${w.doi}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span\n dangerouslySetInnerHTML={{ __html: sanitize(title) }}\n />\n </Link>\n <br />\n {w.containerTitle ? `${w.containerTitle} · ` : ''}\n {w.publisher ? `${w.publisher} · ` : ''}\n {w.publicationYear ?? ''}\n </Typography>\n </ListItem>\n )\n })}\n </List>\n }\n actions={\n <>\n <Button variant={'outlined'} onClick={() => onClose()}>\n Close\n </Button>\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;AAYA,IAAa,KAAoC,EAC/C,SACA,YACA,cACA,WAAQ,iBAGN,kBAAC,GAAD;CACS;CACP,gBAAgB;EACd,EAAQ;CACV;CACM;CACN,SACE,kBAAC,GAAD,EAAA,UACG,EAAU,KAAI,MAAK;EAClB,IAAM,IAAQ,EAAE,SAAS,EAAE;EAC3B,OACE,kBAAC,GAAD;GAAqB,YAAW;aAC9B,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KACE,MAAM,mBAAmB,EAAE;KAC3B,QAAO;KACP,KAAI;eAEJ,kBAAC,QAAD,EACE,yBAAyB,EAAE,QAAQ,EAAS,CAAK,EAAE,EACpD,CAAA;IACG,CAAA;IACN,kBAAC,MAAD,CAAK,CAAA;IACJ,EAAE,iBAAiB,GAAG,EAAE,eAAe,OAAO;IAC9C,EAAE,YAAY,GAAG,EAAE,UAAU,OAAO;IACpC,EAAE,mBAAmB;GACZ,EAAA,CAAA;EACJ,GAhBK,EAAE,EAgBP;CAEd,CAAC,EACG,CAAA;CAER,SACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EAAQ,SAAS;EAAY,eAAe,EAAQ;YAAG;CAE/C,CAAA,EACR,CAAA;AAEL,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPageTitleBar.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { isDockerRepository } from '@/utils/types/IsType'\nimport { Avatar, Box, Skeleton, Stack, Typography } from '@mui/material'\nimport FavoriteButton from '../../../favorites/FavoriteButton'\nimport IconSvg, { type2SvgIconName } from '../../../IconSvg/IconSvg'\nimport EntityActionMenu, {\n EntityActionMenuProps,\n} from '../action_menu/EntityActionMenu'\nimport { EntityTitleBarVersionInfo } from './EntityTitleBarVersionInfo'\nimport TitleBarProperties from './TitleBarProperties'\n\nexport type EntityPageTitleBarProps = {\n entityId: string\n versionNumber?: number\n /* Props that will be passed through to an EntityActionMenu component */\n entityActionMenuProps?: EntityActionMenuProps\n /* Callback invoked when an ACT member clicks \"Add Conditions for Use\". */\n onActMemberClickAddConditionsForUse: () => void\n}\n\n/**\n * The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and\n * provides controls to view and manipulate the Entity.\n */\nexport default function EntityPageTitleBar(props: EntityPageTitleBarProps) {\n const { entityId, versionNumber, entityActionMenuProps } = props\n\n const toggleShowVersionHistory =\n entityActionMenuProps?.actionConfiguration['SHOW_VERSION_HISTORY']?.onClick\n\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n versionNumber,\n )\n\n const name =\n bundle?.entity && isDockerRepository(bundle.entity)\n ? bundle.entity.repositoryName\n : bundle?.entity?.name\n\n return (\n <div>\n <Box\n sx={{\n padding: '20px 40px',\n backgroundColor: 'grey.100',\n }}\n >\n <Stack\n sx={{\n flexDirection: { xs: 'column', sm: 'row' },\n }}\n >\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n flexGrow: 1,\n }}\n >\n <ConditionalWrapper\n condition={isLoading}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n }}\n >\n <Avatar sx={{ bgcolor: 'grey.300', height: 48, width: 48 }}>\n {bundle?.entityType && (\n <IconSvg\n icon={\n bundle?.entityType\n ? type2SvgIconName[bundle.entityType]\n : 'file'\n }\n wrap={false}\n sx={{ color: 'grey.700' }}\n />\n )}\n </Avatar>\n </ConditionalWrapper>\n <Box sx={{ marginLeft: '10px', flexGrow: 1 }}>\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n gap: '3px',\n }}\n >\n <ConditionalWrapper condition={isLoading} wrapper={Skeleton}>\n <Typography variant={'headline2'}>\n {name ?? 'Name not set'}\n </Typography>\n </ConditionalWrapper>\n {bundle?.entity?.id && (\n <FavoriteButton entityId={bundle.entity.id} />\n )}\n </Stack>\n <EntityTitleBarVersionInfo\n entityId={entityId}\n versionNumber={versionNumber}\n toggleShowVersionHistory={toggleShowVersionHistory}\n />\n </Box>\n </Stack>\n {entityActionMenuProps && (\n <EntityActionMenu {...entityActionMenuProps} />\n )}\n </Stack>\n </Box>\n <TitleBarProperties {...props} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,SAAwB,EAAmB,GAAgC;CACzE,IAAM,EAAE,aAAU,kBAAe,6BAA0B,GAErD,IACJ,GAAuB,oBAAoB,sBAAyB,SAEhE,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,EACD,EAEK,IACJ,GAAQ,UAAU,EAAmB,EAAO,OAAO,GAC/C,EAAO,OAAO,iBACd,GAAQ,QAAQ;AAEtB,QACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,iBAAiB;GAClB;YAED,kBAAC,GAAD;GACE,IAAI,EACF,eAAe;IAAE,IAAI;IAAU,IAAI;IAAO,EAC3C;aAHH,CAKE,kBAAC,GAAD;IACE,WAAW;IACX,IAAI;KACF,YAAY;KACZ,UAAU;KACX;cALH,CAOE,kBAAC,GAAD;KACE,WAAW;KACX,SAAS;KACT,cAAc,EACZ,SAAS,YACV;eAED,kBAAC,GAAD;MAAQ,IAAI;OAAE,SAAS;OAAY,QAAQ;OAAI,OAAO;OAAI;gBACvD,GAAQ,cACP,kBAAC,GAAD;OACE,MACE,GAAQ,aACJ,EAAiB,EAAO,cACxB;OAEN,MAAM;OACN,IAAI,EAAE,OAAO,YAAY;OACzB,CAAA;MAEG,CAAA;KACU,CAAA,EACrB,kBAAC,GAAD;KAAK,IAAI;MAAE,YAAY;MAAQ,UAAU;MAAG;eAA5C,CACE,kBAAC,GAAD;MACE,WAAW;MACX,IAAI;OACF,YAAY;OACZ,KAAK;OACN;gBALH,CAOE,kBAAC,GAAD;OAAoB,WAAW;OAAW,SAAS;iBACjD,kBAAC,GAAD;QAAY,SAAS;kBAClB,KAAQ;QACE,CAAA;OACM,CAAA,EACpB,GAAQ,QAAQ,MACf,kBAAC,GAAD,EAAgB,UAAU,EAAO,OAAO,IAAM,CAAA,CAE1C;SACR,kBAAC,GAAD;MACY;MACK;MACW;MAC1B,CAAA,CACE;OACA;OACP,KACC,kBAAC,GAAD,EAAkB,GAAI,GAAyB,CAAA,CAE3C;;EACJ,CAAA,EACN,kBAAC,GAAD,EAAoB,GAAI,GAAS,CAAA,CAC7B,EAAA,CAAA"}
1
+ {"version":3,"file":"EntityPageTitleBar.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityPageTitleBar.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { isDockerRepository } from '@/utils/types/IsType'\nimport { Avatar, Box, Skeleton, Stack, Typography } from '@mui/material'\nimport FavoriteButton from '../../../favorites/FavoriteButton'\nimport IconSvg, { type2SvgIconName } from '../../../IconSvg/IconSvg'\nimport EntityActionMenu, {\n EntityActionMenuProps,\n} from '../action_menu/EntityActionMenu'\nimport { EntityTitleBarVersionInfo } from './EntityTitleBarVersionInfo'\nimport TitleBarProperties from './TitleBarProperties'\n\nexport type EntityPageTitleBarProps = {\n entityId: string\n versionNumber?: number\n /* Props that will be passed through to an EntityActionMenu component */\n entityActionMenuProps?: EntityActionMenuProps\n /* Callback invoked when an ACT member clicks \"Add Conditions for Use\". */\n onActMemberClickAddConditionsForUse: () => void\n}\n\n/**\n * The EntityPageTitleBar component is shown on every Entity page in Synapse, and shows an Entity's metadata and\n * provides controls to view and manipulate the Entity.\n */\nexport default function EntityPageTitleBar(props: EntityPageTitleBarProps) {\n const { entityId, versionNumber, entityActionMenuProps } = props\n\n const toggleShowVersionHistory =\n entityActionMenuProps?.actionConfiguration['SHOW_VERSION_HISTORY']?.onClick\n\n const { data: bundle, isLoading } = useGetEntityBundle(\n entityId,\n versionNumber,\n )\n\n const name =\n bundle?.entity && isDockerRepository(bundle.entity)\n ? bundle.entity.repositoryName\n : bundle?.entity?.name\n\n return (\n <div>\n <Box\n sx={{\n padding: '20px 40px',\n backgroundColor: 'grey.100',\n }}\n >\n <Stack\n sx={{\n flexDirection: { xs: 'column', sm: 'row' },\n }}\n >\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n flexGrow: 1,\n }}\n >\n <ConditionalWrapper\n condition={isLoading}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n }}\n >\n <Avatar sx={{ bgcolor: 'grey.300', height: 48, width: 48 }}>\n {bundle?.entityType && (\n <IconSvg\n icon={\n bundle?.entityType\n ? type2SvgIconName[bundle.entityType]\n : 'file'\n }\n wrap={false}\n sx={{ color: 'grey.700' }}\n />\n )}\n </Avatar>\n </ConditionalWrapper>\n <Box sx={{ marginLeft: '10px', flexGrow: 1 }}>\n <Stack\n direction={'row'}\n sx={{\n alignItems: 'center',\n gap: '3px',\n }}\n >\n <ConditionalWrapper condition={isLoading} wrapper={Skeleton}>\n <Typography variant={'headline2'}>\n {name ?? 'Name not set'}\n </Typography>\n </ConditionalWrapper>\n {bundle?.entity?.id && (\n <FavoriteButton entityId={bundle.entity.id} />\n )}\n </Stack>\n <EntityTitleBarVersionInfo\n entityId={entityId}\n versionNumber={versionNumber}\n toggleShowVersionHistory={toggleShowVersionHistory}\n />\n </Box>\n </Stack>\n {entityActionMenuProps && (\n <EntityActionMenu {...entityActionMenuProps} />\n )}\n </Stack>\n </Box>\n <TitleBarProperties {...props} />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,SAAwB,EAAmB,GAAgC;CACzE,IAAM,EAAE,aAAU,kBAAe,6BAA0B,GAErD,IACJ,GAAuB,oBAAoB,sBAAyB,SAEhE,EAAE,MAAM,GAAQ,iBAAc,EAClC,GACA,CACF,GAEM,IACJ,GAAQ,UAAU,EAAmB,EAAO,MAAM,IAC9C,EAAO,OAAO,iBACd,GAAQ,QAAQ;CAEtB,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,iBAAiB;EACnB;YAEA,kBAAC,GAAD;GACE,IAAI,EACF,eAAe;IAAE,IAAI;IAAU,IAAI;GAAM,EAC3C;aAHF,CAKE,kBAAC,GAAD;IACE,WAAW;IACX,IAAI;KACF,YAAY;KACZ,UAAU;IACZ;cALF,CAOE,kBAAC,GAAD;KACE,WAAW;KACX,SAAS;KACT,cAAc,EACZ,SAAS,WACX;eAEA,kBAAC,GAAD;MAAQ,IAAI;OAAE,SAAS;OAAY,QAAQ;OAAI,OAAO;MAAG;gBACtD,GAAQ,cACP,kBAAC,GAAD;OACE,MACE,GAAQ,aACJ,EAAiB,EAAO,cACxB;OAEN,MAAM;OACN,IAAI,EAAE,OAAO,WAAW;MACzB,CAAA;KAEG,CAAA;IACU,CAAA,GACpB,kBAAC,GAAD;KAAK,IAAI;MAAE,YAAY;MAAQ,UAAU;KAAE;eAA3C,CACE,kBAAC,GAAD;MACE,WAAW;MACX,IAAI;OACF,YAAY;OACZ,KAAK;MACP;gBALF,CAOE,kBAAC,GAAD;OAAoB,WAAW;OAAW,SAAS;iBACjD,kBAAC,GAAD;QAAY,SAAS;kBAClB,KAAQ;OACC,CAAA;MACM,CAAA,GACnB,GAAQ,QAAQ,MACf,kBAAC,GAAD,EAAgB,UAAU,EAAO,OAAO,GAAK,CAAA,CAE1C;SACP,kBAAC,GAAD;MACY;MACK;MACW;KAC3B,CAAA,CACE;MACA;OACN,KACC,kBAAC,GAAD,EAAkB,GAAI,EAAwB,CAAA,CAE3C;;CACJ,CAAA,GACL,kBAAC,GAAD,EAAoB,GAAI,EAAQ,CAAA,CAC7B,EAAA,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTitleBarVersionInfo.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityTitleBarVersionInfo.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport {\n isEntityRefCollectionView,\n isTable,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { truncateString } from '@/utils/functions/StringUtils'\nimport { Box, Link, Tooltip, Typography } from '@mui/material'\nimport { Entity } from '@sage-bionetworks/synapse-types'\nimport { ActionConfiguration } from '../action_menu/EntityActionMenu'\n\nconst MAX_VERSION_LABEL_LENGTH = 50\nexport type EntityTitleBarVersionInfoProps = {\n entityId: string\n versionNumber?: number\n toggleShowVersionHistory: ActionConfiguration['onClick']\n}\n\nfunction getDisplayedVersionLabel(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n return null\n }\n return entity.versionLabel ?? null\n}\n\nfunction getDisplayedVersionNumber(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n if (isEntityRefCollectionView(entity)) {\n return 'Draft Version'\n }\n return 'Current Version'\n }\n return `V${entity.versionNumber}${entity.isLatestVersion ? ' (Current)' : ''}`\n}\n\nexport function EntityTitleBarVersionInfo(\n props: EntityTitleBarVersionInfoProps,\n) {\n const { entityId, versionNumber, toggleShowVersionHistory } = props\n\n const { data: bundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = bundle?.entity && isVersionableEntity(bundle.entity)\n\n const fullVersionLabel =\n bundle?.entity && getDisplayedVersionLabel(bundle.entity)\n const truncatedVersionLabel = fullVersionLabel\n ? truncateString(fullVersionLabel, MAX_VERSION_LABEL_LENGTH)\n : undefined\n\n const versionNumberDisplay =\n bundle?.entity && getDisplayedVersionNumber(bundle.entity)\n\n if (!isVersionable) {\n return null\n }\n\n return (\n <Box sx={{ marginTop: '3px' }}>\n <Tooltip title={fullVersionLabel} placement={'bottom'}>\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n fontStyle: 'italic',\n }}\n >\n {truncatedVersionLabel}\n </Typography>\n </Tooltip>\n {fullVersionLabel && versionNumberDisplay && (\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n marginLeft: '5px',\n marginRight: '5px',\n }}\n >\n /\n </Typography>\n )}\n <Tooltip title={'Click to show version history'} placement={'top'}>\n <Link\n onClick={toggleShowVersionHistory}\n variant=\"smallText1\"\n sx={{ fontWeight: 400 }}\n >\n {versionNumberDisplay}\n </Link>\n </Tooltip>\n </Box>\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getDisplayedVersionLabel,\n getDisplayedVersionNumber,\n}\n"],"mappings":";;;;;;;AAWA,IAAM,IAA2B;AAOjC,SAAS,EAAyB,GAA+B;AAO/D,QANI,CAAC,EAAoB,EAAO,IAG5B,EAAQ,EAAO,IAAI,EAAO,kBACrB,OAEF,EAAO,gBAAgB;;AAGhC,SAAS,EAA0B,GAA+B;AAUhE,QATK,EAAoB,EAAO,GAG5B,EAAQ,EAAO,IAAI,EAAO,kBACxB,EAA0B,EAAO,GAC5B,kBAEF,oBAEF,IAAI,EAAO,gBAAgB,EAAO,kBAAkB,eAAe,OARjE;;AAWX,SAAgB,EACd,GACA;CACA,IAAM,EAAE,aAAU,kBAAe,gCAA6B,GAExD,EAAE,MAAM,MAAW,EAAmB,GAAU,EAAc,EAE9D,IAAgB,GAAQ,UAAU,EAAoB,EAAO,OAAO,EAEpE,IACJ,GAAQ,UAAU,EAAyB,EAAO,OAAO,EACrD,IAAwB,IAC1B,EAAe,GAAkB,EAAyB,GAC1D,KAAA,GAEE,IACJ,GAAQ,UAAU,EAA0B,EAAO,OAAO;AAM5D,QAJK,IAKH,kBAAC,GAAD;EAAK,IAAI,EAAE,WAAW,OAAO;YAA7B;GACE,kBAAC,GAAD;IAAS,OAAO;IAAkB,WAAW;cAC3C,kBAAC,GAAD;KACE,WAAW;KACX,SAAQ;KACR,IAAI;MACF,OAAO;MACP,WAAW;MACZ;eAEA;KACU,CAAA;IACL,CAAA;GACT,KAAoB,KACnB,kBAAC,GAAD;IACE,WAAW;IACX,SAAQ;IACR,IAAI;KACF,OAAO;KACP,YAAY;KACZ,aAAa;KACd;cACF;IAEY,CAAA;GAEf,kBAAC,GAAD;IAAS,OAAO;IAAiC,WAAW;cAC1D,kBAAC,GAAD;KACE,SAAS;KACT,SAAQ;KACR,IAAI,EAAE,YAAY,KAAK;eAEtB;KACI,CAAA;IACC,CAAA;GACN;MAvCC;;AA2CX,IAAa,IAA4B;CACvC;CACA;CACD"}
1
+ {"version":3,"file":"EntityTitleBarVersionInfo.js","names":[],"sources":["../../../../../src/components/entity/page/title_bar/EntityTitleBarVersionInfo.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport {\n isEntityRefCollectionView,\n isTable,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport { truncateString } from '@/utils/functions/StringUtils'\nimport { Box, Link, Tooltip, Typography } from '@mui/material'\nimport { Entity } from '@sage-bionetworks/synapse-types'\nimport { ActionConfiguration } from '../action_menu/EntityActionMenu'\n\nconst MAX_VERSION_LABEL_LENGTH = 50\nexport type EntityTitleBarVersionInfoProps = {\n entityId: string\n versionNumber?: number\n toggleShowVersionHistory: ActionConfiguration['onClick']\n}\n\nfunction getDisplayedVersionLabel(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n return null\n }\n return entity.versionLabel ?? null\n}\n\nfunction getDisplayedVersionNumber(entity: Entity): string | null {\n if (!isVersionableEntity(entity)) {\n return null\n }\n if (isTable(entity) && entity.isLatestVersion) {\n if (isEntityRefCollectionView(entity)) {\n return 'Draft Version'\n }\n return 'Current Version'\n }\n return `V${entity.versionNumber}${entity.isLatestVersion ? ' (Current)' : ''}`\n}\n\nexport function EntityTitleBarVersionInfo(\n props: EntityTitleBarVersionInfoProps,\n) {\n const { entityId, versionNumber, toggleShowVersionHistory } = props\n\n const { data: bundle } = useGetEntityBundle(entityId, versionNumber)\n\n const isVersionable = bundle?.entity && isVersionableEntity(bundle.entity)\n\n const fullVersionLabel =\n bundle?.entity && getDisplayedVersionLabel(bundle.entity)\n const truncatedVersionLabel = fullVersionLabel\n ? truncateString(fullVersionLabel, MAX_VERSION_LABEL_LENGTH)\n : undefined\n\n const versionNumberDisplay =\n bundle?.entity && getDisplayedVersionNumber(bundle.entity)\n\n if (!isVersionable) {\n return null\n }\n\n return (\n <Box sx={{ marginTop: '3px' }}>\n <Tooltip title={fullVersionLabel} placement={'bottom'}>\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n fontStyle: 'italic',\n }}\n >\n {truncatedVersionLabel}\n </Typography>\n </Tooltip>\n {fullVersionLabel && versionNumberDisplay && (\n <Typography\n component={'span'}\n variant=\"smallText1\"\n sx={{\n color: 'grey.700',\n marginLeft: '5px',\n marginRight: '5px',\n }}\n >\n /\n </Typography>\n )}\n <Tooltip title={'Click to show version history'} placement={'top'}>\n <Link\n onClick={toggleShowVersionHistory}\n variant=\"smallText1\"\n sx={{ fontWeight: 400 }}\n >\n {versionNumberDisplay}\n </Link>\n </Tooltip>\n </Box>\n )\n}\n\nexport const EXPORTED_FOR_UNIT_TESTING = {\n getDisplayedVersionLabel,\n getDisplayedVersionNumber,\n}\n"],"mappings":";;;;;;;AAWA,IAAM,IAA2B;AAOjC,SAAS,EAAyB,GAA+B;CAO/D,OANI,CAAC,EAAoB,CAAM,KAG3B,EAAQ,CAAM,KAAK,EAAO,kBACrB,OAEF,EAAO,gBAAgB;AAChC;AAEA,SAAS,EAA0B,GAA+B;CAUhE,OATK,EAAoB,CAAM,IAG3B,EAAQ,CAAM,KAAK,EAAO,kBACxB,EAA0B,CAAM,IAC3B,kBAEF,oBAEF,IAAI,EAAO,gBAAgB,EAAO,kBAAkB,eAAe,OARjE;AASX;AAEA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,aAAU,kBAAe,gCAA6B,GAExD,EAAE,MAAM,MAAW,EAAmB,GAAU,CAAa,GAE7D,IAAgB,GAAQ,UAAU,EAAoB,EAAO,MAAM,GAEnE,IACJ,GAAQ,UAAU,EAAyB,EAAO,MAAM,GACpD,IAAwB,IAC1B,EAAe,GAAkB,CAAwB,IACzD,KAAA,GAEE,IACJ,GAAQ,UAAU,EAA0B,EAAO,MAAM;CAM3D,OAJK,IAKH,kBAAC,GAAD;EAAK,IAAI,EAAE,WAAW,MAAM;YAA5B;GACE,kBAAC,GAAD;IAAS,OAAO;IAAkB,WAAW;cAC3C,kBAAC,GAAD;KACE,WAAW;KACX,SAAQ;KACR,IAAI;MACF,OAAO;MACP,WAAW;KACb;eAEC;IACS,CAAA;GACL,CAAA;GACR,KAAoB,KACnB,kBAAC,GAAD;IACE,WAAW;IACX,SAAQ;IACR,IAAI;KACF,OAAO;KACP,YAAY;KACZ,aAAa;IACf;cACD;GAEW,CAAA;GAEd,kBAAC,GAAD;IAAS,OAAO;IAAiC,WAAW;cAC1D,kBAAC,GAAD;KACE,SAAS;KACT,SAAQ;KACR,IAAI,EAAE,YAAY,IAAI;eAErB;IACG,CAAA;GACC,CAAA;EACN;MAvCE;AAyCX;AAEA,IAAa,IAA4B;CACvC;CACA;AACF"}