synapse-react-client 4.0.19 → 4.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1553) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +1 -1
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  5. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  6. package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
  7. package/dist/assets/GoogleIcon.js.map +1 -1
  8. package/dist/assets/GoogleIcon24.js.map +1 -1
  9. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  10. package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
  11. package/dist/assets/homepage/aacr.js.map +1 -1
  12. package/dist/assets/homepage/cri.js.map +1 -1
  13. package/dist/assets/homepage/ctf.js.map +1 -1
  14. package/dist/assets/homepage/egress.js.map +1 -1
  15. package/dist/assets/homepage/facebook.js.map +1 -1
  16. package/dist/assets/homepage/fisma.js.map +1 -1
  17. package/dist/assets/homepage/gff.js.map +1 -1
  18. package/dist/assets/homepage/github.js.map +1 -1
  19. package/dist/assets/homepage/gray.js.map +1 -1
  20. package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
  21. package/dist/assets/homepage/instagram.js.map +1 -1
  22. package/dist/assets/homepage/linkedin.js.map +1 -1
  23. package/dist/assets/homepage/ml-commons.js.map +1 -1
  24. package/dist/assets/homepage/nih-aging.js.map +1 -1
  25. package/dist/assets/homepage/nih-heart.js.map +1 -1
  26. package/dist/assets/homepage/nih-nci.js.map +1 -1
  27. package/dist/assets/homepage/nih-nimh.js.map +1 -1
  28. package/dist/assets/homepage/ntap.js.map +1 -1
  29. package/dist/assets/homepage/plan-item.js.map +1 -1
  30. package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
  31. package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
  32. package/dist/assets/homepage/python.js.map +1 -1
  33. package/dist/assets/homepage/r.js.map +1 -1
  34. package/dist/assets/homepage/research-credit-feature.js.map +1 -1
  35. package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
  36. package/dist/assets/homepage/sloan.js.map +1 -1
  37. package/dist/assets/homepage/twitter.js.map +1 -1
  38. package/dist/assets/homepage/users.js.map +1 -1
  39. package/dist/assets/homepage/youtube.js.map +1 -1
  40. package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
  41. package/dist/assets/icons/AccessPending.js.map +1 -1
  42. package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
  43. package/dist/assets/icons/AddAd.js.map +1 -1
  44. package/dist/assets/icons/AddToList.js.map +1 -1
  45. package/dist/assets/icons/Alert.js.map +1 -1
  46. package/dist/assets/icons/Arrow.js.map +1 -1
  47. package/dist/assets/icons/AwardScroll.js.map +1 -1
  48. package/dist/assets/icons/Baseline.js.map +1 -1
  49. package/dist/assets/icons/Cavatica.js.map +1 -1
  50. package/dist/assets/icons/CertifiedUser.js.map +1 -1
  51. package/dist/assets/icons/Challenge.js.map +1 -1
  52. package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
  53. package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
  54. package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
  55. package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
  56. package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
  57. package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
  58. package/dist/assets/icons/ClappingHands.js.map +1 -1
  59. package/dist/assets/icons/CloudWarning.js.map +1 -1
  60. package/dist/assets/icons/CommunicateFindings.js.map +1 -1
  61. package/dist/assets/icons/CreateVersion.js.map +1 -1
  62. package/dist/assets/icons/DNA_Two.js.map +1 -1
  63. package/dist/assets/icons/Data2.js.map +1 -1
  64. package/dist/assets/icons/DoubleQuotes.js.map +1 -1
  65. package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
  66. package/dist/assets/icons/FileWithShield.js.map +1 -1
  67. package/dist/assets/icons/FileWithShield2.js.map +1 -1
  68. package/dist/assets/icons/FrontHand.js.map +1 -1
  69. package/dist/assets/icons/HandWithMoney.js.map +1 -1
  70. package/dist/assets/icons/IconCopy.js.map +1 -1
  71. package/dist/assets/icons/IconMinus.js.map +1 -1
  72. package/dist/assets/icons/IconPlus.js.map +1 -1
  73. package/dist/assets/icons/Java.js.map +1 -1
  74. package/dist/assets/icons/MintDoi.js.map +1 -1
  75. package/dist/assets/icons/MultiFile.js.map +1 -1
  76. package/dist/assets/icons/MultiFile2.js.map +1 -1
  77. package/dist/assets/icons/NoData.js.map +1 -1
  78. package/dist/assets/icons/NoSearchResults.js.map +1 -1
  79. package/dist/assets/icons/ORCIDIcon.js.map +1 -1
  80. package/dist/assets/icons/OpenBook.js.map +1 -1
  81. package/dist/assets/icons/Podium.js.map +1 -1
  82. package/dist/assets/icons/Python.js.map +1 -1
  83. package/dist/assets/icons/QueryStructuredData.js.map +1 -1
  84. package/dist/assets/icons/RLogo.js.map +1 -1
  85. package/dist/assets/icons/RecordProvenance.js.map +1 -1
  86. package/dist/assets/icons/RosetteRibbon.js.map +1 -1
  87. package/dist/assets/icons/SageFullLogo.js.map +1 -1
  88. package/dist/assets/icons/SearchImage.js.map +1 -1
  89. package/dist/assets/icons/ShareYourResearch.js.map +1 -1
  90. package/dist/assets/icons/Sort.js.map +1 -1
  91. package/dist/assets/icons/StarTrophy.js.map +1 -1
  92. package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
  93. package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
  94. package/dist/assets/icons/SynapseLogoName.js.map +1 -1
  95. package/dist/assets/icons/TasksIcon.js.map +1 -1
  96. package/dist/assets/icons/Terminal.js.map +1 -1
  97. package/dist/assets/icons/ThreeStars.js.map +1 -1
  98. package/dist/assets/icons/UnpackagableFile.js.map +1 -1
  99. package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
  100. package/dist/assets/icons/ValidatedProfile.js.map +1 -1
  101. package/dist/assets/icons/account-certified.js.map +1 -1
  102. package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
  103. package/dist/assets/icons/account-validated.js.map +1 -1
  104. package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
  105. package/dist/assets/icons/chart2.js.map +1 -1
  106. package/dist/assets/icons/columns.js.map +1 -1
  107. package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
  108. package/dist/assets/icons/computationalTool.js.map +1 -1
  109. package/dist/assets/icons/dataReuse.js.map +1 -1
  110. package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
  111. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  112. package/dist/assets/icons/error_page/maintenance.js.map +1 -1
  113. package/dist/assets/icons/error_page/no-access.js.map +1 -1
  114. package/dist/assets/icons/error_page/unavailable.js.map +1 -1
  115. package/dist/assets/icons/file.js.map +1 -1
  116. package/dist/assets/icons/inSilicoModel.js.map +1 -1
  117. package/dist/assets/icons/institution.js.map +1 -1
  118. package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
  119. package/dist/assets/icons/modelSystem.js.map +1 -1
  120. package/dist/assets/icons/mouse.js.map +1 -1
  121. package/dist/assets/icons/organizations.js.map +1 -1
  122. package/dist/assets/icons/person.js.map +1 -1
  123. package/dist/assets/icons/spatialProfiling.js.map +1 -1
  124. package/dist/assets/icons/standardDataModel.js.map +1 -1
  125. package/dist/assets/icons/study-active.js.map +1 -1
  126. package/dist/assets/icons/study-complete.js.map +1 -1
  127. package/dist/assets/icons/subscribe_plus.js.map +1 -1
  128. package/dist/assets/icons/synapse-logo.js.map +1 -1
  129. package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
  130. package/dist/assets/icons/translational.js.map +1 -1
  131. package/dist/assets/icons/tree_horizontal.js.map +1 -1
  132. package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
  133. package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
  134. package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
  135. package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
  136. package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
  137. package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
  138. package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
  139. package/dist/assets/illustrations/docker_illustration.js.map +1 -1
  140. package/dist/assets/illustrations/donation_illustration.js.map +1 -1
  141. package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
  142. package/dist/assets/illustrations/files_illustration.js.map +1 -1
  143. package/dist/assets/illustrations/following_illustration.js.map +1 -1
  144. package/dist/assets/illustrations/index.js.map +1 -1
  145. package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
  146. package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
  147. package/dist/assets/illustrations/projects_illustration.js.map +1 -1
  148. package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
  149. package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
  150. package/dist/assets/illustrations/tables_illustration.js.map +1 -1
  151. package/dist/assets/illustrations/teams_illustration.js.map +1 -1
  152. package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
  153. package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
  154. package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
  155. package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
  156. package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
  157. package/dist/assets/logos/other/pluto-logo.js.map +1 -1
  158. package/dist/assets/logos/other/terra-logo.js.map +1 -1
  159. package/dist/assets/mui_components/AccessManagement.js.map +1 -1
  160. package/dist/assets/mui_components/AccountCertified.js.map +1 -1
  161. package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
  162. package/dist/assets/mui_components/AccountValidated.js.map +1 -1
  163. package/dist/assets/mui_components/ActionKey.js.map +1 -1
  164. package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
  165. package/dist/assets/mui_components/Chromatin.js.map +1 -1
  166. package/dist/assets/mui_components/Clinical.js.map +1 -1
  167. package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
  168. package/dist/assets/mui_components/Data.js.map +1 -1
  169. package/dist/assets/mui_components/DataLocked.js.map +1 -1
  170. package/dist/assets/mui_components/DataReuse.js.map +1 -1
  171. package/dist/assets/mui_components/Dataset.js.map +1 -1
  172. package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
  173. package/dist/assets/mui_components/Docker.js.map +1 -1
  174. package/dist/assets/mui_components/GeneExpression.js.map +1 -1
  175. package/dist/assets/mui_components/GeneVariants.js.map +1 -1
  176. package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
  177. package/dist/assets/mui_components/Imaging.js.map +1 -1
  178. package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
  179. package/dist/assets/mui_components/Kinomics.js.map +1 -1
  180. package/dist/assets/mui_components/LineGraph.js.map +1 -1
  181. package/dist/assets/mui_components/ModelSystem.js.map +1 -1
  182. package/dist/assets/mui_components/Other.js.map +1 -1
  183. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  184. package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
  185. package/dist/assets/mui_components/Proteomics.js.map +1 -1
  186. package/dist/assets/mui_components/Rat.js.map +1 -1
  187. package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
  188. package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
  189. package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
  190. package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
  191. package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
  192. package/dist/assets/sustainability/dialPosition1.js.map +1 -1
  193. package/dist/assets/sustainability/dialPosition2.js.map +1 -1
  194. package/dist/assets/sustainability/dialPosition3.js.map +1 -1
  195. package/dist/assets/sustainability/dialPosition4.js.map +1 -1
  196. package/dist/assets/themed_icons/Active.js.map +1 -1
  197. package/dist/assets/themed_icons/Chart.js.map +1 -1
  198. package/dist/assets/themed_icons/Close.js.map +1 -1
  199. package/dist/assets/themed_icons/Collapse.js.map +1 -1
  200. package/dist/assets/themed_icons/Columns.js.map +1 -1
  201. package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
  202. package/dist/assets/themed_icons/Database.js.map +1 -1
  203. package/dist/assets/themed_icons/Download.js.map +1 -1
  204. package/dist/assets/themed_icons/Expand.js.map +1 -1
  205. package/dist/assets/themed_icons/Explore.js.map +1 -1
  206. package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
  207. package/dist/assets/themed_icons/Filter.js.map +1 -1
  208. package/dist/assets/themed_icons/Program.js.map +1 -1
  209. package/dist/assets/themed_icons/Project.js.map +1 -1
  210. package/dist/assets/themed_icons/Publication.js.map +1 -1
  211. package/dist/assets/themed_icons/Search.js.map +1 -1
  212. package/dist/assets/themed_icons/Settings.js.map +1 -1
  213. package/dist/assets/themed_icons/SortDown.js.map +1 -1
  214. package/dist/assets/themed_icons/SortUp.js.map +1 -1
  215. package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
  216. package/dist/assets/themed_icons/Study.js.map +1 -1
  217. package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
  218. package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
  219. package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
  220. package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
  221. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
  222. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  223. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  224. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  225. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
  226. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  227. package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
  228. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  229. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  230. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  231. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  232. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  233. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  234. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  235. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  236. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
  237. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  238. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  239. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  240. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
  241. package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
  242. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  243. package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
  244. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
  245. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  246. package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
  247. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  248. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  249. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  250. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  251. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  252. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  253. package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
  254. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  255. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
  256. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
  257. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  258. package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
  259. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  260. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  261. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  262. package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
  263. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  264. package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
  265. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
  266. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  267. package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
  268. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  269. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  270. package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
  271. package/dist/components/AddToDownloadListV2.js.map +1 -1
  272. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  273. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  274. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  275. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  276. package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
  277. package/dist/components/Authentication/LoginForm.js.map +1 -1
  278. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  279. package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
  280. package/dist/components/Authentication/Logout.js.map +1 -1
  281. package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
  282. package/dist/components/Authentication/PasswordField.js.map +1 -1
  283. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  284. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  285. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  286. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  287. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  288. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  289. package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
  290. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  291. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  292. package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
  293. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  294. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  295. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  296. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  297. package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
  298. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  299. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  300. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  301. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  302. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  303. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  304. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  305. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  306. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  307. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  308. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  309. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  310. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  311. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  312. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  313. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  314. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  315. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  316. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  317. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  321. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  322. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  323. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  324. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  325. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  326. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  330. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  331. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  332. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  333. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  334. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  335. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  336. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  337. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  338. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  339. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  340. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  341. package/dist/components/ComponentCollapse.js.map +1 -1
  342. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  343. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  344. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  345. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  346. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  347. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  348. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  349. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  350. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  351. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  352. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  353. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  354. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  355. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  356. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  357. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  358. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  359. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  360. package/dist/components/DataExplorer/DataExplorer.js +28 -31
  361. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  362. package/dist/components/DataGrid/DataGrid.js +72 -72
  363. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  364. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  365. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  366. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  367. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  368. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  369. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  370. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  371. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  372. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  373. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  374. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  375. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  376. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  377. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  378. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  379. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  380. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  381. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  382. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  383. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  384. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  385. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  386. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  387. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  388. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
  389. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  390. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  391. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  392. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  393. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  394. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  395. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  396. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  397. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  398. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  399. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  400. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  401. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  402. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  403. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  404. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  405. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  406. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  407. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  408. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  409. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  410. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  411. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  412. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  413. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  414. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  415. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  416. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  417. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  418. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  419. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  420. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  421. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  422. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  423. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  424. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  425. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  426. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  427. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  428. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  429. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  430. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  431. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  432. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  433. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  434. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  435. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  436. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  437. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  438. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  439. package/dist/components/DialogBase.js.map +1 -1
  440. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  441. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  442. package/dist/components/DirectDownloadButton.js.map +1 -1
  443. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  444. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  445. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  446. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  447. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  448. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  449. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  450. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  451. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  452. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  453. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  454. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  455. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  456. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  457. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  458. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  459. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  460. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  461. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  462. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  463. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  464. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  465. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  466. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  467. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  468. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  469. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  470. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  471. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  472. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  473. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  474. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  475. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  476. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  477. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  478. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  479. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  480. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  481. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  482. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  483. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  484. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  485. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  486. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  487. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  488. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  489. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  490. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  491. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  492. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  493. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  494. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  495. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  496. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  497. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  498. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  499. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  500. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  501. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  502. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  503. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  504. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  505. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  506. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  507. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  508. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  509. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  510. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  511. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  513. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  514. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  515. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  516. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  517. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  518. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  519. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  520. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  521. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  522. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  523. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  524. package/dist/components/EntityIcon.js.map +1 -1
  525. package/dist/components/EntityLink.js.map +1 -1
  526. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  527. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  528. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  529. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  530. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  531. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  532. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  533. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  534. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  535. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  536. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  537. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  538. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  539. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  540. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  541. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  542. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  543. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  544. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  545. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  546. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  547. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  548. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  549. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  550. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  551. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  552. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  553. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  554. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  555. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  556. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  557. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  558. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  559. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  560. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  561. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  562. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  563. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  564. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  565. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  566. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  567. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  568. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  569. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  570. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  571. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  572. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  573. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  574. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  575. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  576. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  577. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  578. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  579. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  580. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  581. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  582. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  583. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  584. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  585. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  586. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  587. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  588. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  589. package/dist/components/Forum/ForumPage.js.map +1 -1
  590. package/dist/components/Forum/ForumTable.js.map +1 -1
  591. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  592. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  593. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  594. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  595. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  596. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  597. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  598. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  599. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  600. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  601. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  602. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  603. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  604. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  605. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  606. package/dist/components/GenericCard/Linkify.js.map +1 -1
  607. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  608. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  609. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  610. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  611. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  612. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  613. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  614. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  615. package/dist/components/Goals/Goals.js +25 -27
  616. package/dist/components/Goals/Goals.js.map +1 -1
  617. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  618. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  619. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  620. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  621. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  622. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  623. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  624. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  625. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  626. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  627. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  628. package/dist/components/HasAccess/AccessIcon.js +10 -10
  629. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  630. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  631. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  632. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  633. package/dist/components/HeaderCard.js.map +1 -1
  634. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  635. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  636. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  637. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  638. package/dist/components/Icon/Icon.js.map +1 -1
  639. package/dist/components/IconList.js.map +1 -1
  640. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  641. package/dist/components/IconSvgButton.js.map +1 -1
  642. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  643. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  644. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  645. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  646. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  647. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  648. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  649. package/dist/components/JsonLdScript.js.map +1 -1
  650. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  651. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  652. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  653. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  654. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  655. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  656. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  657. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  658. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  659. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  660. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  661. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  662. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  663. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  664. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  665. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  666. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  667. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  668. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  669. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  670. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  671. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  672. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  673. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  674. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  675. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  676. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  677. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  678. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  679. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  680. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  681. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  682. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  683. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  684. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  685. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  686. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  687. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  688. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  689. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  690. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  691. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  692. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  693. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  694. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  695. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  696. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  697. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  698. package/dist/components/MuiContainer.js.map +1 -1
  699. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  700. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  701. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  702. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  703. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  704. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  705. package/dist/components/Plot/BarPlot.js.map +1 -1
  706. package/dist/components/Plot/DotPlot.js.map +1 -1
  707. package/dist/components/Plot/Plot.d.ts +12 -1
  708. package/dist/components/Plot/Plot.d.ts.map +1 -1
  709. package/dist/components/Plot/Plot.js +5 -1
  710. package/dist/components/Plot/Plot.js.map +1 -1
  711. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  712. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  713. package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
  714. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  715. package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
  716. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  717. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  718. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  719. package/dist/components/Plot/index.d.ts +3 -1
  720. package/dist/components/Plot/index.d.ts.map +1 -1
  721. package/dist/components/Plot/index.js +2 -1
  722. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  723. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  724. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  725. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  726. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  727. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  728. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  729. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  730. package/dist/components/PortalList/PortalCard.js.map +1 -1
  731. package/dist/components/PortalList/PortalList.js.map +1 -1
  732. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  733. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  734. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  735. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  736. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  737. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  738. package/dist/components/Programs/Programs.js.map +1 -1
  739. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  740. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  741. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  742. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  743. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  744. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  745. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  746. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  747. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  748. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  749. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  750. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  751. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  752. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  753. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  754. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  755. package/dist/components/QuerySortSelector.js.map +1 -1
  756. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  757. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  758. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  759. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  760. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  761. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  762. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  763. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  764. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  765. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  766. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  767. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  768. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  769. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  770. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  771. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  772. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  773. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  774. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  775. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  776. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  777. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  778. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  779. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  780. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  781. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  782. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  783. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  784. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  785. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  786. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  787. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  788. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  789. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  790. package/dist/components/Resources/Resources.js +8 -11
  791. package/dist/components/Resources/Resources.js.map +1 -1
  792. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  793. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  794. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  795. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  796. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  797. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  798. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  799. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  800. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  801. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  802. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  803. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  804. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  805. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  806. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  807. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  808. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  809. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  810. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  811. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  812. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  813. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  814. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  815. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  816. package/dist/components/SignInButton.js.map +1 -1
  817. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  818. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  819. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  820. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  821. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  822. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  823. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  824. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  825. package/dist/components/SourceAppImage.js.map +1 -1
  826. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  827. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  828. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  829. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  830. package/dist/components/StatisticsPlot.js.map +1 -1
  831. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  832. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  833. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  834. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  835. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  836. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  837. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  838. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  839. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  840. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  841. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  842. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  843. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  844. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  845. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  846. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  847. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  848. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  849. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  850. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  851. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  852. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  853. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  854. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  855. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  856. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  857. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  858. package/dist/components/SynapseForm/Header.js.map +1 -1
  859. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  860. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  861. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  862. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  863. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  864. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  865. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  866. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  867. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  868. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  869. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  870. package/dist/components/SynapseForm/types.js.map +1 -1
  871. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  872. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  873. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  874. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  875. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  876. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  877. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  878. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  879. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  880. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  881. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  882. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  883. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  884. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  885. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  886. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  887. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  888. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  889. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  890. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  891. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  892. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  893. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  894. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  895. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  896. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  897. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  898. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  899. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  900. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  901. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  902. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  903. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  904. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  905. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  906. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  907. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  908. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  909. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  910. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  911. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  912. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  913. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  914. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  915. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  916. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  917. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  918. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  919. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  920. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  921. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  922. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  923. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  924. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  925. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  926. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  927. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  928. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  929. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  930. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  931. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  932. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  933. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  934. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  935. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  936. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  937. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  938. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  939. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  940. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  941. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  942. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  943. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  944. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  945. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  946. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  947. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  948. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  949. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  950. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  951. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  952. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  953. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  954. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  955. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  956. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  957. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  958. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  959. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  960. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  961. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  962. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  963. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  964. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
  965. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  966. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  967. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  968. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  969. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  970. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  971. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  972. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  973. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
  974. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  975. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  976. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  977. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  978. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  979. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  980. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  981. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  982. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  983. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  984. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  985. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  986. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  987. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  988. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  989. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  990. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  991. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  992. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  993. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  994. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  995. package/dist/components/TeamBadge.js.map +1 -1
  996. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  997. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  998. package/dist/components/TemplateComponent.js.map +1 -1
  999. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1000. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1001. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1002. package/dist/components/TextField/TextField.js.map +1 -1
  1003. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1004. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1005. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1006. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1007. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1008. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1009. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1010. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1011. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1012. package/dist/components/TotalQueryResults.js.map +1 -1
  1013. package/dist/components/UserCard/Avatar.js.map +1 -1
  1014. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1015. package/dist/components/UserCard/UserCard.js.map +1 -1
  1016. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1017. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1018. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1019. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1020. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1021. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1022. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1023. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1024. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1025. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1026. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1027. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1028. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1029. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1030. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1031. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1032. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1033. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1034. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1035. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1036. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1037. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1038. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1039. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1040. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1041. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1042. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1043. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1044. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1045. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1046. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1047. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1048. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1049. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1050. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1051. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1052. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1053. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1054. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1055. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1056. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1057. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1058. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1059. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1060. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1061. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1062. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1063. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1064. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1065. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1066. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1067. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1068. package/dist/components/download_list/index.js.map +1 -1
  1069. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1070. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1071. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1072. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1073. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1074. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1075. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1076. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1077. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1078. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1079. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1080. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1081. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1082. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1083. package/dist/components/error/ErrorBanner.js.map +1 -1
  1084. package/dist/components/error/ErrorChip.js.map +1 -1
  1085. package/dist/components/error/ErrorPage.js +24 -24
  1086. package/dist/components/error/ErrorPage.js.map +1 -1
  1087. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1088. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1089. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1090. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1091. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1092. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1093. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1094. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1095. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1096. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1097. package/dist/components/index.js +48 -47
  1098. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1099. package/dist/components/layout/SWCHeader.js.map +1 -1
  1100. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1101. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1102. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1103. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1104. package/dist/components/row_renderers/Funder.js.map +1 -1
  1105. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1106. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1107. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1108. package/dist/components/styled/HoverPopover.js.map +1 -1
  1109. package/dist/components/styled/InlineBadge.js.map +1 -1
  1110. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1111. package/dist/components/styled/LargeButton.js.map +1 -1
  1112. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1113. package/dist/components/styled/LightTooltip.js.map +1 -1
  1114. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1115. package/dist/components/styled/StyledPopover.js.map +1 -1
  1116. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1117. package/dist/components/styled/WideButton.js.map +1 -1
  1118. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
  1119. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
  1120. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1121. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1122. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  1123. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
  1124. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
  1125. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
  1126. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
  1127. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
  1128. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
  1129. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1130. package/dist/components/trash/TrashCanList.js.map +1 -1
  1131. package/dist/components/utils/Blocker.js.map +1 -1
  1132. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1133. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1134. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1135. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1136. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1137. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1138. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1139. package/dist/components/widgets/Range.js.map +1 -1
  1140. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1141. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1142. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1143. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1144. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1145. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1146. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1147. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1148. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1149. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1150. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1151. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1152. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1153. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1154. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1155. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1156. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1157. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1158. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1159. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1160. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1161. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1162. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1163. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1164. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1165. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1166. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1167. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1168. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1169. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1170. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1171. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1172. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1173. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1174. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1175. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1176. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1177. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1178. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1179. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1180. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1181. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1182. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1183. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1184. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1185. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1186. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1187. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1188. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1189. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1190. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1191. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1192. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1193. package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
  1194. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1195. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1196. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1197. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1198. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1199. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1200. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1201. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1202. package/dist/index.js +54 -53
  1203. package/dist/index.js.map +1 -1
  1204. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1205. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1206. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1207. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1208. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1209. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1210. package/dist/mocks/chat/mockChat.js.map +1 -1
  1211. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1212. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1213. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1214. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1215. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1216. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1217. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1218. package/dist/mocks/entity/index.js.map +1 -1
  1219. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1220. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1221. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1222. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1223. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1224. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1225. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1226. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1227. package/dist/mocks/entity/mockProject.js.map +1 -1
  1228. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1229. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1230. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1231. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1232. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1233. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1234. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1235. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1236. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1237. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1238. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1239. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1240. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1241. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1242. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1243. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1244. package/dist/mocks/mockSchema.js.map +1 -1
  1245. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1246. package/dist/mocks/mockShortIo.js.map +1 -1
  1247. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1248. package/dist/mocks/mockSubscription.js.map +1 -1
  1249. package/dist/mocks/mockWiki.js.map +1 -1
  1250. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1251. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1252. package/dist/mocks/mock_file_handle.js.map +1 -1
  1253. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1254. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1255. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1256. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1257. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1258. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1259. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1260. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1261. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1262. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1263. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1264. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1265. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1266. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1267. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1268. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1269. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1270. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1271. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1272. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1273. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1274. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1275. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1276. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1277. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1278. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1279. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1280. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1281. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1282. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1283. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1284. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1285. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1286. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1287. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1288. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1289. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1290. package/dist/mocks/msw/handlers.js.map +1 -1
  1291. package/dist/mocks/msw/server.d.ts +1 -1
  1292. package/dist/mocks/msw/server.d.ts.map +1 -1
  1293. package/dist/mocks/msw/server.js.map +1 -1
  1294. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1295. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1296. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1297. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1298. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1299. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1300. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1301. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1302. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1303. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1304. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1305. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1306. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1307. package/dist/mocks/query/syn16787123.js.map +1 -1
  1308. package/dist/mocks/query/syn17328596.js.map +1 -1
  1309. package/dist/mocks/query/syn51735464.js.map +1 -1
  1310. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1311. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1312. package/dist/mocks/team/mockTeam.js.map +1 -1
  1313. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1314. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1315. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1316. package/dist/ror-client/index.js.map +1 -1
  1317. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1318. package/dist/stories/ToastDemo.js.map +1 -1
  1319. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1320. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1321. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1322. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1323. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1324. package/dist/synapse-client/HttpClient.js.map +1 -1
  1325. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1326. package/dist/synapse-client/SynapseClient.js +61 -69
  1327. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1328. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1329. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1330. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1331. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1332. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1333. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1334. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1335. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1336. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1337. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1338. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1339. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1340. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1341. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1342. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1343. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1344. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1345. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1346. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1347. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1348. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1349. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1350. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1351. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1352. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1353. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1354. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1355. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1356. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1357. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1358. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1359. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1360. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1361. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1362. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1363. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1364. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1365. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1366. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1367. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1368. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1369. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1370. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1371. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1372. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1373. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1374. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1375. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1376. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1377. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1378. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1379. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1380. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1381. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1382. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1383. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1384. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1385. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1386. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1387. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1388. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1389. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1390. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1391. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1392. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1393. package/dist/synapse-queries/ror/index.js.map +1 -1
  1394. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1395. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1396. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1397. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1398. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1399. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1400. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1401. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1402. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1403. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1404. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1405. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1406. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1407. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1408. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1409. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1410. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1411. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1412. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1413. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1414. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1415. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1416. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1417. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1418. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1419. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1420. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1421. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1422. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1423. package/dist/testutils/LocationTracker.js.map +1 -1
  1424. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1425. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1426. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1427. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1428. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1429. package/dist/testutils/vitest.setup.js.map +1 -1
  1430. package/dist/theme/DefaultTheme.js.map +1 -1
  1431. package/dist/theme/ThemeProvider.js.map +1 -1
  1432. package/dist/theme/mergeTheme.js.map +1 -1
  1433. package/dist/theme/palette/Palettes.js.map +1 -1
  1434. package/dist/theme/spreadSx.js.map +1 -1
  1435. package/dist/theme/typography/Link.js.map +1 -1
  1436. package/dist/theme/typography/Typography.js.map +1 -1
  1437. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1438. package/dist/utils/APIConstants.js.map +1 -1
  1439. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1440. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1441. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1442. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1443. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1444. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1445. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1446. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1447. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1448. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1449. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1450. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1451. package/dist/utils/SynapseConstants.js.map +1 -1
  1452. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1453. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1454. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1455. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1456. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1457. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1458. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1459. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1460. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1461. package/dist/utils/context/SynapseContext.js.map +1 -1
  1462. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1463. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1464. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1465. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1466. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1467. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1468. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1469. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1470. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1471. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1472. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1473. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1474. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1475. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1476. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1477. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1478. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1479. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1480. package/dist/utils/functions/StringUtils.js.map +1 -1
  1481. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1482. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1483. package/dist/utils/functions/colorPalette.js.map +1 -1
  1484. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1485. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1486. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1487. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1488. package/dist/utils/functions/getEndpoint.js +3 -3
  1489. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1490. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1491. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1492. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1493. package/dist/utils/functions/getUserData.js.map +1 -1
  1494. package/dist/utils/functions/queryUtils.js.map +1 -1
  1495. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1496. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1497. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1498. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1499. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1500. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1501. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1502. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1503. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1504. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1505. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1506. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1507. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1508. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1509. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1510. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1511. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1512. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1513. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1514. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1515. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1516. package/dist/utils/hooks/useListState.js.map +1 -1
  1517. package/dist/utils/hooks/useLogin.js.map +1 -1
  1518. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1519. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1520. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1521. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1522. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1523. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1524. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1525. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1526. package/dist/utils/hooks/useSet.js.map +1 -1
  1527. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1528. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1529. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1530. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1531. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1532. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1533. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1534. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1535. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1536. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1537. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1538. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1539. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1540. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1541. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1542. package/dist/utils/html/TargetEnum.js.map +1 -1
  1543. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1544. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1545. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1546. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1547. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1548. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1549. package/dist/utils/jsonschema/getType.js.map +1 -1
  1550. package/dist/utils/searchDefaults.js.map +1 -1
  1551. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1552. package/dist/utils/types/IsType.js.map +1 -1
  1553. package/package.json +67 -66
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicFormModal.js","names":[],"sources":["../../../src/components/DynamicForm/DynamicFormModal.tsx"],"sourcesContent":["import React from 'react'\nimport WideButton from '@/components/styled/WideButton'\nimport { Box } from '@mui/material'\nimport { useState } from 'react'\nimport ConfirmationDialog from '../ConfirmationDialog'\nimport DynamicForm, { DynamicFormProps } from './DynamicForm'\n\ntype ModalProps = {\n submitButtonText?: string\n}\n\nexport type DynamicFormModalProps = DynamicFormProps & ModalProps\n\nconst DynamicFormModal = ({\n schemaUrl,\n uiSchemaUrl,\n postUrl,\n submitButtonText,\n}: DynamicFormModalProps): React.ReactNode => {\n const [open, setOpen] = useState(false)\n\n const handleClickOpen = () => {\n setOpen(true)\n }\n\n const handleClose = () => {\n setOpen(false)\n }\n\n const form = (\n <DynamicForm\n schemaUrl={schemaUrl}\n uiSchemaUrl={uiSchemaUrl}\n postUrl={postUrl}\n onSubmit={() => {\n handleClose()\n }}\n />\n )\n\n return (\n <div className=\"browse-tools-page\">\n <Box sx={{ margin: '10px 0px 50px 0px' }}>\n <WideButton\n className=\"highlightSubmitToolButton\"\n variant=\"contained\"\n onClick={handleClickOpen}\n >\n {submitButtonText}\n </WideButton>\n <ConfirmationDialog\n open={open}\n title=\"\"\n content={form}\n onCancel={handleClose}\n onConfirm={() => {}}\n confirmButtonProps={{\n sx: { display: 'none' },\n }}\n cancelButtonProps={{\n children: 'cancel',\n }}\n />\n </Box>\n </div>\n )\n}\n\nexport default DynamicFormModal\n"],"mappings":";;;;;;;AAaA,IAAM,KAAoB,EACxB,cACA,gBACA,YACA,0BAC4C;CAC5C,IAAM,CAAC,GAAM,KAAW,EAAS,GAAM,EAEjC,UAAwB;AAC5B,IAAQ,GAAK;IAGT,UAAoB;AACxB,IAAQ,GAAM;;AAchB,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GAAK,IAAI,EAAE,QAAQ,qBAAqB;aAAxC,CACE,kBAAC,GAAD;IACE,WAAU;IACV,SAAQ;IACR,SAAS;cAER;IACU,CAAA,EACb,kBAAC,GAAD;IACQ;IACN,OAAM;IACN,SAvBN,kBAAC,GAAD;KACa;KACE;KACJ;KACT,gBAAgB;AACd,SAAa;;KAEf,CAgBa;IACT,UAAU;IACV,iBAAiB;IACjB,oBAAoB,EAClB,IAAI,EAAE,SAAS,QAAQ,EACxB;IACD,mBAAmB,EACjB,UAAU,UACX;IACD,CAAA,CACE;;EACF,CAAA"}
1
+ {"version":3,"file":"DynamicFormModal.js","names":[],"sources":["../../../src/components/DynamicForm/DynamicFormModal.tsx"],"sourcesContent":["import React from 'react'\nimport WideButton from '@/components/styled/WideButton'\nimport { Box } from '@mui/material'\nimport { useState } from 'react'\nimport ConfirmationDialog from '../ConfirmationDialog'\nimport DynamicForm, { DynamicFormProps } from './DynamicForm'\n\ntype ModalProps = {\n submitButtonText?: string\n}\n\nexport type DynamicFormModalProps = DynamicFormProps & ModalProps\n\nconst DynamicFormModal = ({\n schemaUrl,\n uiSchemaUrl,\n postUrl,\n submitButtonText,\n}: DynamicFormModalProps): React.ReactNode => {\n const [open, setOpen] = useState(false)\n\n const handleClickOpen = () => {\n setOpen(true)\n }\n\n const handleClose = () => {\n setOpen(false)\n }\n\n const form = (\n <DynamicForm\n schemaUrl={schemaUrl}\n uiSchemaUrl={uiSchemaUrl}\n postUrl={postUrl}\n onSubmit={() => {\n handleClose()\n }}\n />\n )\n\n return (\n <div className=\"browse-tools-page\">\n <Box sx={{ margin: '10px 0px 50px 0px' }}>\n <WideButton\n className=\"highlightSubmitToolButton\"\n variant=\"contained\"\n onClick={handleClickOpen}\n >\n {submitButtonText}\n </WideButton>\n <ConfirmationDialog\n open={open}\n title=\"\"\n content={form}\n onCancel={handleClose}\n onConfirm={() => {}}\n confirmButtonProps={{\n sx: { display: 'none' },\n }}\n cancelButtonProps={{\n children: 'cancel',\n }}\n />\n </Box>\n </div>\n )\n}\n\nexport default DynamicFormModal\n"],"mappings":";;;;;;;AAaA,IAAM,KAAoB,EACxB,cACA,gBACA,YACA,0BAC4C;CAC5C,IAAM,CAAC,GAAM,KAAW,EAAS,EAAK,GAEhC,UAAwB;EAC5B,EAAQ,EAAI;CACd,GAEM,UAAoB;EACxB,EAAQ,EAAK;CACf;CAaA,OACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GAAK,IAAI,EAAE,QAAQ,oBAAoB;aAAvC,CACE,kBAAC,GAAD;IACE,WAAU;IACV,SAAQ;IACR,SAAS;cAER;GACS,CAAA,GACZ,kBAAC,GAAD;IACQ;IACN,OAAM;IACN,SAvBN,kBAAC,GAAD;KACa;KACE;KACJ;KACT,gBAAgB;MACd,EAAY;KACd;IACD,CAgBc;IACT,UAAU;IACV,iBAAiB,CAAC;IAClB,oBAAoB,EAClB,IAAI,EAAE,SAAS,OAAO,EACxB;IACA,mBAAmB,EACjB,UAAU,SACZ;GACD,CAAA,CACE;;CACF,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"EcosystemCard.js","names":[],"sources":["../../../src/components/Ecosystem/EcosystemCard.tsx"],"sourcesContent":["import { Box, Link, Typography, useMediaQuery, useTheme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport type EcosystemCardProps = {\n title: ReactNode\n titleUrl?: string\n description: ReactNode\n image: ReactNode\n}\n\nconst IMAGE_SIZE = '72px'\n\n/**\n * Card layout designed to be used in the EcosystemLayout component.\n */\nfunction EcosystemCard(props: EcosystemCardProps) {\n const { title, titleUrl, description, image } = props\n\n const { breakpoints } = useTheme()\n const isMobile = useMediaQuery(breakpoints.down('sm'))\n\n return (\n <Box\n component={'section'}\n sx={theme => ({\n display: 'grid',\n alignItems: 'top',\n gap: 2,\n py: 2,\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: '1fr',\n '.EcosystemCardImageContainer': {\n textAlign: 'center',\n img: { maxWidth: '100%', height: IMAGE_SIZE },\n },\n },\n [theme.breakpoints.up('sm')]: {\n gridTemplateColumns: `${IMAGE_SIZE} auto`,\n '.EcosystemCardImageContainer': {\n justifySelf: 'center',\n img: { width: IMAGE_SIZE, maxHeight: IMAGE_SIZE },\n },\n },\n })}\n >\n <div className={'EcosystemCardImageContainer'}>{image}</div>\n <div>\n <Typography\n component={'h3'}\n variant={isMobile ? 'headline3' : 'body1'}\n sx={{ mb: '5px' }}\n >\n <Link href={titleUrl} target=\"_blank\" rel={'noopener noreferrer'}>\n {title}\n </Link>\n </Typography>\n <Typography\n component={'div'}\n variant={'body1'}\n sx={{ color: 'grey.700' }}\n >\n {description}\n </Typography>\n </div>\n </Box>\n )\n}\n\nexport default EcosystemCard\n"],"mappings":";;;AAUA,IAAM,IAAa;AAKnB,SAAS,EAAc,GAA2B;CAChD,IAAM,EAAE,UAAO,aAAU,gBAAa,aAAU,GAE1C,EAAE,mBAAgB,GAAU,EAC5B,IAAW,EAAc,EAAY,KAAK,KAAK,CAAC;AAEtD,QACE,kBAAC,GAAD;EACE,WAAW;EACX,KAAI,OAAU;GACZ,SAAS;GACT,YAAY;GACZ,KAAK;GACL,IAAI;IACH,EAAM,YAAY,KAAK,KAAK,GAAG;IAC9B,qBAAqB;IACrB,gCAAgC;KAC9B,WAAW;KACX,KAAK;MAAE,UAAU;MAAQ,QAAQ;MAAY;KAC9C;IACF;IACA,EAAM,YAAY,GAAG,KAAK,GAAG;IAC5B,qBAAqB,GAAG,EAAW;IACnC,gCAAgC;KAC9B,aAAa;KACb,KAAK;MAAE,OAAO;MAAY,WAAW;MAAY;KAClD;IACF;GACF;YArBH,CAuBE,kBAAC,OAAD;GAAK,WAAW;aAAgC;GAAY,CAAA,EAC5D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,WAAW;GACX,SAAS,IAAW,cAAc;GAClC,IAAI,EAAE,IAAI,OAAO;aAEjB,kBAAC,GAAD;IAAM,MAAM;IAAU,QAAO;IAAS,KAAK;cACxC;IACI,CAAA;GACI,CAAA,EACb,kBAAC,GAAD;GACE,WAAW;GACX,SAAS;GACT,IAAI,EAAE,OAAO,YAAY;aAExB;GACU,CAAA,CACT,EAAA,CAAA,CACF"}
1
+ {"version":3,"file":"EcosystemCard.js","names":[],"sources":["../../../src/components/Ecosystem/EcosystemCard.tsx"],"sourcesContent":["import { Box, Link, Typography, useMediaQuery, useTheme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport type EcosystemCardProps = {\n title: ReactNode\n titleUrl?: string\n description: ReactNode\n image: ReactNode\n}\n\nconst IMAGE_SIZE = '72px'\n\n/**\n * Card layout designed to be used in the EcosystemLayout component.\n */\nfunction EcosystemCard(props: EcosystemCardProps) {\n const { title, titleUrl, description, image } = props\n\n const { breakpoints } = useTheme()\n const isMobile = useMediaQuery(breakpoints.down('sm'))\n\n return (\n <Box\n component={'section'}\n sx={theme => ({\n display: 'grid',\n alignItems: 'top',\n gap: 2,\n py: 2,\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: '1fr',\n '.EcosystemCardImageContainer': {\n textAlign: 'center',\n img: { maxWidth: '100%', height: IMAGE_SIZE },\n },\n },\n [theme.breakpoints.up('sm')]: {\n gridTemplateColumns: `${IMAGE_SIZE} auto`,\n '.EcosystemCardImageContainer': {\n justifySelf: 'center',\n img: { width: IMAGE_SIZE, maxHeight: IMAGE_SIZE },\n },\n },\n })}\n >\n <div className={'EcosystemCardImageContainer'}>{image}</div>\n <div>\n <Typography\n component={'h3'}\n variant={isMobile ? 'headline3' : 'body1'}\n sx={{ mb: '5px' }}\n >\n <Link href={titleUrl} target=\"_blank\" rel={'noopener noreferrer'}>\n {title}\n </Link>\n </Typography>\n <Typography\n component={'div'}\n variant={'body1'}\n sx={{ color: 'grey.700' }}\n >\n {description}\n </Typography>\n </div>\n </Box>\n )\n}\n\nexport default EcosystemCard\n"],"mappings":";;;AAUA,IAAM,IAAa;AAKnB,SAAS,EAAc,GAA2B;CAChD,IAAM,EAAE,UAAO,aAAU,gBAAa,aAAU,GAE1C,EAAE,mBAAgB,EAAS,GAC3B,IAAW,EAAc,EAAY,KAAK,IAAI,CAAC;CAErD,OACE,kBAAC,GAAD;EACE,WAAW;EACX,KAAI,OAAU;GACZ,SAAS;GACT,YAAY;GACZ,KAAK;GACL,IAAI;IACH,EAAM,YAAY,KAAK,IAAI,IAAI;IAC9B,qBAAqB;IACrB,gCAAgC;KAC9B,WAAW;KACX,KAAK;MAAE,UAAU;MAAQ,QAAQ;KAAW;IAC9C;GACF;IACC,EAAM,YAAY,GAAG,IAAI,IAAI;IAC5B,qBAAqB,GAAG,EAAW;IACnC,gCAAgC;KAC9B,aAAa;KACb,KAAK;MAAE,OAAO;MAAY,WAAW;KAAW;IAClD;GACF;EACF;YArBF,CAuBE,kBAAC,OAAD;GAAK,WAAW;aAAgC;EAAW,CAAA,GAC3D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,WAAW;GACX,SAAS,IAAW,cAAc;GAClC,IAAI,EAAE,IAAI,MAAM;aAEhB,kBAAC,GAAD;IAAM,MAAM;IAAU,QAAO;IAAS,KAAK;cACxC;GACG,CAAA;EACI,CAAA,GACZ,kBAAC,GAAD;GACE,WAAW;GACX,SAAS;GACT,IAAI,EAAE,OAAO,WAAW;aAEvB;EACS,CAAA,CACT,EAAA,CAAA,CACF;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"EcosystemLayout.js","names":[],"sources":["../../../src/components/Ecosystem/EcosystemLayout.tsx"],"sourcesContent":["import React from 'react'\nimport { Box, Tab, Tabs, useMediaQuery, useTheme } from '@mui/material'\nimport Fade from '@mui/material/Fade'\nimport { ReactNode, useState } from 'react'\n\ntype Config = {\n title: ReactNode\n content: ReactNode\n}\n\nexport type EcosystemProps = {\n config: Config[]\n}\n\n/**\n * Layout for the Ecosystem component, which renders tab buttons on the left side and content on the right side.\n * @param props\n * @constructor\n */\nconst EcosystemLayout = (props: EcosystemProps): React.ReactNode => {\n const [index, setIndex] = useState(0)\n const { config } = props\n\n const { breakpoints } = useTheme()\n const isMobile = useMediaQuery(breakpoints.down('sm'))\n\n const tabOrientation = isMobile ? 'horizontal' : 'vertical'\n\n return (\n <div className=\"Ecosystem\">\n <Box\n className=\"control-container\"\n sx={{\n display: 'flex',\n [breakpoints.up('sm')]: { height: '450px' },\n [breakpoints.down('sm')]: { flexDirection: 'column' },\n }}\n >\n <Tabs\n className=\"button-container\"\n value={index}\n onChange={(_, newIndex) => setIndex(newIndex)}\n orientation={tabOrientation}\n variant=\"scrollable\"\n scrollButtons={'auto'}\n allowScrollButtonsMobile\n sx={theme => ({\n [theme.breakpoints.up('sm')]: {\n borderRight: '2px solid #dcdcdc',\n },\n })}\n >\n {config.map((el, curIndex) => {\n const { title } = el\n return <Tab label={title} key={curIndex} />\n })}\n {!isMobile && <div className=\"flex-spacer\" />}\n </Tabs>\n <div className=\"content-container\">\n {config.map((el, curIndex) => {\n return (\n <Fade key={curIndex} in={index === curIndex}>\n <span className={index === curIndex ? '' : 'SRC-hidden'}>\n {el.content}\n </span>\n </Fade>\n )\n })}\n </div>\n </Box>\n </div>\n )\n}\n\nexport default EcosystemLayout\n"],"mappings":";;;;;AAmBA,IAAM,KAAmB,MAA2C;CAClE,IAAM,CAAC,GAAO,KAAY,EAAS,EAAE,EAC/B,EAAE,cAAW,GAEb,EAAE,mBAAgB,GAAU,EAC5B,IAAW,EAAc,EAAY,KAAK,KAAK,CAAC,EAEhD,IAAiB,IAAW,eAAe;AAEjD,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,WAAU;GACV,IAAI;IACF,SAAS;KACR,EAAY,GAAG,KAAK,GAAG,EAAE,QAAQ,SAAS;KAC1C,EAAY,KAAK,KAAK,GAAG,EAAE,eAAe,UAAU;IACtD;aANH,CAQE,kBAAC,GAAD;IACE,WAAU;IACV,OAAO;IACP,WAAW,GAAG,MAAa,EAAS,EAAS;IAC7C,aAAa;IACb,SAAQ;IACR,eAAe;IACf,0BAAA;IACA,KAAI,OAAU,GACX,EAAM,YAAY,GAAG,KAAK,GAAG,EAC5B,aAAa,qBACd,EACF;cAZH,CAcG,EAAO,KAAK,GAAI,MAAa;KAC5B,IAAM,EAAE,aAAU;AAClB,YAAO,kBAAC,GAAD,EAAK,OAAO,GAAwB,EAAZ,EAAY;MAC3C,EACD,CAAC,KAAY,kBAAC,OAAD,EAAK,WAAU,eAAgB,CAAA,CACxC;OACP,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAO,KAAK,GAAI,MAEb,kBAAC,GAAD;KAAqB,IAAI,MAAU;eACjC,kBAAC,QAAD;MAAM,WAAW,MAAU,IAAW,KAAK;gBACxC,EAAG;MACC,CAAA;KACF,EAJI,EAIJ,CAET;IACE,CAAA,CACF;;EACF,CAAA"}
1
+ {"version":3,"file":"EcosystemLayout.js","names":[],"sources":["../../../src/components/Ecosystem/EcosystemLayout.tsx"],"sourcesContent":["import React from 'react'\nimport { Box, Tab, Tabs, useMediaQuery, useTheme } from '@mui/material'\nimport Fade from '@mui/material/Fade'\nimport { ReactNode, useState } from 'react'\n\ntype Config = {\n title: ReactNode\n content: ReactNode\n}\n\nexport type EcosystemProps = {\n config: Config[]\n}\n\n/**\n * Layout for the Ecosystem component, which renders tab buttons on the left side and content on the right side.\n * @param props\n * @constructor\n */\nconst EcosystemLayout = (props: EcosystemProps): React.ReactNode => {\n const [index, setIndex] = useState(0)\n const { config } = props\n\n const { breakpoints } = useTheme()\n const isMobile = useMediaQuery(breakpoints.down('sm'))\n\n const tabOrientation = isMobile ? 'horizontal' : 'vertical'\n\n return (\n <div className=\"Ecosystem\">\n <Box\n className=\"control-container\"\n sx={{\n display: 'flex',\n [breakpoints.up('sm')]: { height: '450px' },\n [breakpoints.down('sm')]: { flexDirection: 'column' },\n }}\n >\n <Tabs\n className=\"button-container\"\n value={index}\n onChange={(_, newIndex) => setIndex(newIndex)}\n orientation={tabOrientation}\n variant=\"scrollable\"\n scrollButtons={'auto'}\n allowScrollButtonsMobile\n sx={theme => ({\n [theme.breakpoints.up('sm')]: {\n borderRight: '2px solid #dcdcdc',\n },\n })}\n >\n {config.map((el, curIndex) => {\n const { title } = el\n return <Tab label={title} key={curIndex} />\n })}\n {!isMobile && <div className=\"flex-spacer\" />}\n </Tabs>\n <div className=\"content-container\">\n {config.map((el, curIndex) => {\n return (\n <Fade key={curIndex} in={index === curIndex}>\n <span className={index === curIndex ? '' : 'SRC-hidden'}>\n {el.content}\n </span>\n </Fade>\n )\n })}\n </div>\n </Box>\n </div>\n )\n}\n\nexport default EcosystemLayout\n"],"mappings":";;;;;AAmBA,IAAM,KAAmB,MAA2C;CAClE,IAAM,CAAC,GAAO,KAAY,EAAS,CAAC,GAC9B,EAAE,cAAW,GAEb,EAAE,mBAAgB,EAAS,GAC3B,IAAW,EAAc,EAAY,KAAK,IAAI,CAAC,GAE/C,IAAiB,IAAW,eAAe;CAEjD,OACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,WAAU;GACV,IAAI;IACF,SAAS;KACR,EAAY,GAAG,IAAI,IAAI,EAAE,QAAQ,QAAQ;KACzC,EAAY,KAAK,IAAI,IAAI,EAAE,eAAe,SAAS;GACtD;aANF,CAQE,kBAAC,GAAD;IACE,WAAU;IACV,OAAO;IACP,WAAW,GAAG,MAAa,EAAS,CAAQ;IAC5C,aAAa;IACb,SAAQ;IACR,eAAe;IACf,0BAAA;IACA,KAAI,OAAU,GACX,EAAM,YAAY,GAAG,IAAI,IAAI,EAC5B,aAAa,oBACf,EACF;cAZF,CAcG,EAAO,KAAK,GAAI,MAAa;KAC5B,IAAM,EAAE,aAAU;KAClB,OAAO,kBAAC,GAAD,EAAK,OAAO,EAAuB,GAAX,CAAW;IAC5C,CAAC,GACA,CAAC,KAAY,kBAAC,OAAD,EAAK,WAAU,cAAe,CAAA,CACxC;OACN,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAO,KAAK,GAAI,MAEb,kBAAC,GAAD;KAAqB,IAAI,MAAU;eACjC,kBAAC,QAAD;MAAM,WAAW,MAAU,IAAW,KAAK;gBACxC,EAAG;KACA,CAAA;IACF,GAJK,CAIL,CAET;GACE,CAAA,CACF;;CACF,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"EcosystemSkeleton.js","names":[],"sources":["../../../src/components/Ecosystem/EcosystemSkeleton.tsx"],"sourcesContent":["import EcosystemLayout from '@/components/Ecosystem/EcosystemLayout'\nimport { SkeletonParagraph } from '@/components/index'\nimport { Stack } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\n\nfunction EcosystemSkeleton() {\n const skeletonTitle = <Skeleton width={'80%'} />\n const skeletonContent = (\n <Stack gap={2} py={2}>\n <SkeletonParagraph />\n <SkeletonParagraph />\n <SkeletonParagraph />\n </Stack>\n )\n return (\n <EcosystemLayout\n config={[\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n ]}\n />\n )\n}\n\nexport default EcosystemSkeleton\n"],"mappings":";;;;;;;AAKA,SAAS,IAAoB;CAC3B,IAAM,IAAgB,kBAAC,GAAD,EAAU,OAAO,OAAS,CAAA,EAC1C,IACJ,kBAAC,GAAD;EAAO,KAAK;EAAG,IAAI;YAAnB;GACE,kBAAC,GAAD,EAAqB,CAAA;GACrB,kBAAC,GAAD,EAAqB,CAAA;GACrB,kBAAC,GAAD,EAAqB,CAAA;GACf;;AAEV,QACE,kBAAC,GAAD,EACE,QAAQ;EACN;GAAE,OAAO;GAAe,SAAS;GAAiB;EAClD;GAAE,OAAO;GAAe,SAAS;GAAiB;EAClD;GAAE,OAAO;GAAe,SAAS;GAAiB;EACnD,EACD,CAAA"}
1
+ {"version":3,"file":"EcosystemSkeleton.js","names":[],"sources":["../../../src/components/Ecosystem/EcosystemSkeleton.tsx"],"sourcesContent":["import EcosystemLayout from '@/components/Ecosystem/EcosystemLayout'\nimport { SkeletonParagraph } from '@/components/index'\nimport { Stack } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\n\nfunction EcosystemSkeleton() {\n const skeletonTitle = <Skeleton width={'80%'} />\n const skeletonContent = (\n <Stack gap={2} py={2}>\n <SkeletonParagraph />\n <SkeletonParagraph />\n <SkeletonParagraph />\n </Stack>\n )\n return (\n <EcosystemLayout\n config={[\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n { title: skeletonTitle, content: skeletonContent },\n ]}\n />\n )\n}\n\nexport default EcosystemSkeleton\n"],"mappings":";;;;;;;AAKA,SAAS,IAAoB;CAC3B,IAAM,IAAgB,kBAAC,GAAD,EAAU,OAAO,MAAQ,CAAA,GACzC,IACJ,kBAAC,GAAD;EAAO,KAAK;EAAG,IAAI;YAAnB;GACE,kBAAC,GAAD,CAAoB,CAAA;GACpB,kBAAC,GAAD,CAAoB,CAAA;GACpB,kBAAC,GAAD,CAAoB,CAAA;EACf;;CAET,OACE,kBAAC,GAAD,EACE,QAAQ;EACN;GAAE,OAAO;GAAe,SAAS;EAAgB;EACjD;GAAE,OAAO;GAAe,SAAS;EAAgB;EACjD;GAAE,OAAO;GAAe,SAAS;EAAgB;CACnD,EACD,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableQueryEcosystem.js","names":[],"sources":["../../../src/components/Ecosystem/TableQueryEcosystem.tsx"],"sourcesContent":["import EcosystemCard from '@/components/Ecosystem/EcosystemCard'\nimport EcosystemSkeleton from '@/components/Ecosystem/EcosystemSkeleton'\nimport { Markdown } from '@/components/Markdown/MarkdownSynapse'\nimport { ImageFileHandle } from '@/components/widgets/ImageFileHandle'\nimport { useGetFullTableQueryResults } from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport {\n getColumnIndex,\n parseEntityIdFromSqlStatement,\n} from '@/utils/functions/index'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport { Alert, Stack } from '@mui/material'\nimport {\n FileHandleAssociateType,\n Query,\n Row,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport uniq from 'lodash-es/uniq'\nimport { ReactNode } from 'react'\nimport EcosystemLayout from './EcosystemLayout'\n\n/* The column names expected to be found in the table */\nconst COLUMN_NAMES = {\n RESOURCE_CATEGORY: 'resourcecategory',\n RESOURCE_NAME: 'resourcename',\n RESOURCE_DESCRIPTION: 'resourcedescription',\n RESOURCE_URL: 'resourceurl',\n RESOURCE_ICON_IMAGE: 'resourceiconimage',\n}\n\ntype TableQueryEcosystemCardProps = {\n /** The row data to display*/\n row: Row\n /** The headers (select columns) of the table query result */\n headers: SelectColumn[]\n /** The entity ID of the table */\n tableEntityId: string\n}\n\n/**\n * Maps a table query result row to an EcosystemCard.\n */\nfunction TableQueryEcosystemCard(props: TableQueryEcosystemCardProps) {\n const { row, headers, tableEntityId } = props\n const resourceNameColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_NAME,\n headers,\n )!\n const resourceName = row.values[resourceNameColumnIndex]!\n\n const resourceUrlColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_URL,\n headers,\n )!\n const resourceUrl = row.values[resourceUrlColumnIndex]!\n\n const resourceDescriptionColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_DESCRIPTION,\n headers,\n )!\n const resourceDescriptionMarkdown =\n row.values[resourceDescriptionColumnIndex]!\n\n let iconElement: ReactNode = null\n\n const resourceIconImageColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_ICON_IMAGE,\n headers,\n )\n\n if (resourceIconImageColumnIndex) {\n const resourceIconFileHandleId = row.values[resourceIconImageColumnIndex]\n if (resourceIconFileHandleId) {\n iconElement = (\n <ImageFileHandle\n fileHandleAssociation={{\n fileHandleId: resourceIconFileHandleId,\n associateObjectId: tableEntityId,\n associateObjectType: FileHandleAssociateType.TableEntity,\n }}\n />\n )\n }\n }\n\n return (\n <EcosystemCard\n title={resourceName}\n titleUrl={resourceUrl}\n description={<Markdown markdown={resourceDescriptionMarkdown} />}\n image={iconElement}\n />\n )\n}\n\nexport type TableQueryEcosystemProps = {\n /** The Synapse table query to execute to populate the Ecosystem component */\n query: Query\n}\n\n/**\n * The Ecosystem component driven by the results of a Synapse table query.\n * @constructor\n */\nfunction TableQueryEcosystem(props: TableQueryEcosystemProps) {\n const { query } = props\n const tableEntityId = parseEntityIdFromSqlStatement(query.sql)\n const { data, isLoading, error } = useGetFullTableQueryResults({\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId: tableEntityId,\n query,\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n })\n\n if (!data?.queryResult) {\n if (isLoading) {\n return <EcosystemSkeleton />\n }\n if (error) {\n return (\n <Alert color={'error'}>\n Error loading Ecosystem data: {error.message}\n </Alert>\n )\n }\n return null\n }\n\n const RESOURCE_CATEGORY_COLUMN_INDEX = getColumnIndex(\n COLUMN_NAMES.RESOURCE_CATEGORY,\n data.queryResult.queryResults.headers,\n )!\n\n // Get the distinct categories\n const categories: string[] = uniq(\n data.queryResult.queryResults.rows\n .map(row => row.values[RESOURCE_CATEGORY_COLUMN_INDEX])\n .filter((s): s is string => !!s), // Remove null values\n )\n\n // Create the content for each category and return it in the expected format for the Ecosystem component\n const config = categories.map(category => {\n const rowsForCategory = data.queryResult!.queryResults.rows.filter(\n row => row.values[RESOURCE_CATEGORY_COLUMN_INDEX] === category,\n )\n\n return {\n title: category,\n content: (\n <Stack>\n {rowsForCategory.map(row => (\n <TableQueryEcosystemCard\n key={row.values.join('-')}\n row={row}\n headers={data.queryResult!.queryResults.headers}\n tableEntityId={tableEntityId}\n />\n ))}\n </Stack>\n ),\n }\n })\n\n return <EcosystemLayout config={config} />\n}\n\nexport default TableQueryEcosystem\n"],"mappings":";;;;;;;;;;;;;;AAsBA,IAAM,IAAe;CACnB,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,cAAc;CACd,qBAAqB;CACtB;AAcD,SAAS,EAAwB,GAAqC;CACpE,IAAM,EAAE,QAAK,YAAS,qBAAkB,GAClC,IAA0B,EAC9B,EAAa,eACb,EACD,EACK,IAAe,EAAI,OAAO,IAE1B,IAAyB,EAC7B,EAAa,cACb,EACD,EACK,IAAc,EAAI,OAAO,IAEzB,IAAiC,EACrC,EAAa,sBACb,EACD,EACK,IACJ,EAAI,OAAO,IAET,IAAyB,MAEvB,IAA+B,EACnC,EAAa,qBACb,EACD;AAED,KAAI,GAA8B;EAChC,IAAM,IAA2B,EAAI,OAAO;AAC5C,EAAI,MACF,IACE,kBAAC,GAAD,EACE,uBAAuB;GACrB,cAAc;GACd,mBAAmB;GACnB,qBAAqB,EAAwB;GAC9C,EACD,CAAA;;AAKR,QACE,kBAAC,GAAD;EACE,OAAO;EACP,UAAU;EACV,aAAa,kBAAC,GAAD,EAAU,UAAU,GAA+B,CAAA;EAChE,OAAO;EACP,CAAA;;AAaN,SAAS,EAAoB,GAAiC;CAC5D,IAAM,EAAE,aAAU,GACZ,IAAgB,EAA8B,EAAM,IAAI,EACxD,EAAE,SAAM,cAAW,aAAU,EAA4B;EAC7D,cAAc;EACd,UAAU;EACV;EACA,UAAA;EACD,CAAC;AAEF,KAAI,CAAC,GAAM,YAWT,QAVI,IACK,kBAAC,GAAD,EAAqB,CAAA,GAE1B,IAEA,kBAAC,GAAD;EAAO,OAAO;YAAd,CAAuB,kCACU,EAAM,QAC/B;MAGL;CAGT,IAAM,IAAiC,EACrC,EAAa,mBACb,EAAK,YAAY,aAAa,QAC/B;AAgCD,QAAO,kBAAC,GAAD,EAAyB,QA7BH,EAC3B,EAAK,YAAY,aAAa,KAC3B,KAAI,MAAO,EAAI,OAAO,GAAgC,CACtD,QAAQ,MAAmB,CAAC,CAAC,EAAE,CAIrB,CAAW,KAAI,OAKrB;EACL,OAAO;EACP,SACE,kBAAC,GAAD,EAAA,UAPoB,EAAK,YAAa,aAAa,KAAK,QAC1D,MAAO,EAAI,OAAO,OAAoC,EAOjD,CAAgB,KAAI,MACnB,kBAAC,GAAD;GAEO;GACL,SAAS,EAAK,YAAa,aAAa;GACzB;GACf,EAJK,EAAI,OAAO,KAAK,IAAI,CAIzB,CACF,EACI,CAAA;EAEX,EAG6B,EAAU,CAAA"}
1
+ {"version":3,"file":"TableQueryEcosystem.js","names":[],"sources":["../../../src/components/Ecosystem/TableQueryEcosystem.tsx"],"sourcesContent":["import EcosystemCard from '@/components/Ecosystem/EcosystemCard'\nimport EcosystemSkeleton from '@/components/Ecosystem/EcosystemSkeleton'\nimport { Markdown } from '@/components/Markdown/MarkdownSynapse'\nimport { ImageFileHandle } from '@/components/widgets/ImageFileHandle'\nimport { useGetFullTableQueryResults } from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport {\n getColumnIndex,\n parseEntityIdFromSqlStatement,\n} from '@/utils/functions/index'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport { Alert, Stack } from '@mui/material'\nimport {\n FileHandleAssociateType,\n Query,\n Row,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\nimport uniq from 'lodash-es/uniq'\nimport { ReactNode } from 'react'\nimport EcosystemLayout from './EcosystemLayout'\n\n/* The column names expected to be found in the table */\nconst COLUMN_NAMES = {\n RESOURCE_CATEGORY: 'resourcecategory',\n RESOURCE_NAME: 'resourcename',\n RESOURCE_DESCRIPTION: 'resourcedescription',\n RESOURCE_URL: 'resourceurl',\n RESOURCE_ICON_IMAGE: 'resourceiconimage',\n}\n\ntype TableQueryEcosystemCardProps = {\n /** The row data to display*/\n row: Row\n /** The headers (select columns) of the table query result */\n headers: SelectColumn[]\n /** The entity ID of the table */\n tableEntityId: string\n}\n\n/**\n * Maps a table query result row to an EcosystemCard.\n */\nfunction TableQueryEcosystemCard(props: TableQueryEcosystemCardProps) {\n const { row, headers, tableEntityId } = props\n const resourceNameColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_NAME,\n headers,\n )!\n const resourceName = row.values[resourceNameColumnIndex]!\n\n const resourceUrlColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_URL,\n headers,\n )!\n const resourceUrl = row.values[resourceUrlColumnIndex]!\n\n const resourceDescriptionColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_DESCRIPTION,\n headers,\n )!\n const resourceDescriptionMarkdown =\n row.values[resourceDescriptionColumnIndex]!\n\n let iconElement: ReactNode = null\n\n const resourceIconImageColumnIndex = getColumnIndex(\n COLUMN_NAMES.RESOURCE_ICON_IMAGE,\n headers,\n )\n\n if (resourceIconImageColumnIndex) {\n const resourceIconFileHandleId = row.values[resourceIconImageColumnIndex]\n if (resourceIconFileHandleId) {\n iconElement = (\n <ImageFileHandle\n fileHandleAssociation={{\n fileHandleId: resourceIconFileHandleId,\n associateObjectId: tableEntityId,\n associateObjectType: FileHandleAssociateType.TableEntity,\n }}\n />\n )\n }\n }\n\n return (\n <EcosystemCard\n title={resourceName}\n titleUrl={resourceUrl}\n description={<Markdown markdown={resourceDescriptionMarkdown} />}\n image={iconElement}\n />\n )\n}\n\nexport type TableQueryEcosystemProps = {\n /** The Synapse table query to execute to populate the Ecosystem component */\n query: Query\n}\n\n/**\n * The Ecosystem component driven by the results of a Synapse table query.\n * @constructor\n */\nfunction TableQueryEcosystem(props: TableQueryEcosystemProps) {\n const { query } = props\n const tableEntityId = parseEntityIdFromSqlStatement(query.sql)\n const { data, isLoading, error } = useGetFullTableQueryResults({\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId: tableEntityId,\n query,\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n })\n\n if (!data?.queryResult) {\n if (isLoading) {\n return <EcosystemSkeleton />\n }\n if (error) {\n return (\n <Alert color={'error'}>\n Error loading Ecosystem data: {error.message}\n </Alert>\n )\n }\n return null\n }\n\n const RESOURCE_CATEGORY_COLUMN_INDEX = getColumnIndex(\n COLUMN_NAMES.RESOURCE_CATEGORY,\n data.queryResult.queryResults.headers,\n )!\n\n // Get the distinct categories\n const categories: string[] = uniq(\n data.queryResult.queryResults.rows\n .map(row => row.values[RESOURCE_CATEGORY_COLUMN_INDEX])\n .filter((s): s is string => !!s), // Remove null values\n )\n\n // Create the content for each category and return it in the expected format for the Ecosystem component\n const config = categories.map(category => {\n const rowsForCategory = data.queryResult!.queryResults.rows.filter(\n row => row.values[RESOURCE_CATEGORY_COLUMN_INDEX] === category,\n )\n\n return {\n title: category,\n content: (\n <Stack>\n {rowsForCategory.map(row => (\n <TableQueryEcosystemCard\n key={row.values.join('-')}\n row={row}\n headers={data.queryResult!.queryResults.headers}\n tableEntityId={tableEntityId}\n />\n ))}\n </Stack>\n ),\n }\n })\n\n return <EcosystemLayout config={config} />\n}\n\nexport default TableQueryEcosystem\n"],"mappings":";;;;;;;;;;;;;;AAsBA,IAAM,IAAe;CACnB,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,cAAc;CACd,qBAAqB;AACvB;AAcA,SAAS,EAAwB,GAAqC;CACpE,IAAM,EAAE,QAAK,YAAS,qBAAkB,GAClC,IAA0B,EAC9B,EAAa,eACb,CACF,GACM,IAAe,EAAI,OAAO,IAE1B,IAAyB,EAC7B,EAAa,cACb,CACF,GACM,IAAc,EAAI,OAAO,IAEzB,IAAiC,EACrC,EAAa,sBACb,CACF,GACM,IACJ,EAAI,OAAO,IAET,IAAyB,MAEvB,IAA+B,EACnC,EAAa,qBACb,CACF;CAEA,IAAI,GAA8B;EAChC,IAAM,IAA2B,EAAI,OAAO;EAC5C,AAAI,MACF,IACE,kBAAC,GAAD,EACE,uBAAuB;GACrB,cAAc;GACd,mBAAmB;GACnB,qBAAqB,EAAwB;EAC/C,EACD,CAAA;CAGP;CAEA,OACE,kBAAC,GAAD;EACE,OAAO;EACP,UAAU;EACV,aAAa,kBAAC,GAAD,EAAU,UAAU,EAA8B,CAAA;EAC/D,OAAO;CACR,CAAA;AAEL;AAWA,SAAS,EAAoB,GAAiC;CAC5D,IAAM,EAAE,aAAU,GACZ,IAAgB,EAA8B,EAAM,GAAG,GACvD,EAAE,SAAM,cAAW,aAAU,EAA4B;EAC7D,cAAc;EACd,UAAU;EACV;EACA,UAAA;CACF,CAAC;CAED,IAAI,CAAC,GAAM,aAWT,OAVI,IACK,kBAAC,GAAD,CAAoB,CAAA,IAEzB,IAEA,kBAAC,GAAD;EAAO,OAAO;YAAd,CAAuB,kCACU,EAAM,OAChC;MAGJ;CAGT,IAAM,IAAiC,EACrC,EAAa,mBACb,EAAK,YAAY,aAAa,OAChC;CAgCA,OAAO,kBAAC,GAAD,EAAyB,QA7BH,EAC3B,EAAK,YAAY,aAAa,KAC3B,KAAI,MAAO,EAAI,OAAO,EAA+B,EACrD,QAAQ,MAAmB,CAAC,CAAC,CAAC,CAIpB,EAAW,KAAI,OAKrB;EACL,OAAO;EACP,SACE,kBAAC,GAAD,EAAA,UAPoB,EAAK,YAAa,aAAa,KAAK,QAC1D,MAAO,EAAI,OAAO,OAAoC,CAOjD,EAAgB,KAAI,MACnB,kBAAC,GAAD;GAEO;GACL,SAAS,EAAK,YAAa,aAAa;GACzB;EAChB,GAJM,EAAI,OAAO,KAAK,GAAG,CAIzB,CACF,EACI,CAAA;CAEX,EAG8B,EAAS,CAAA;AAC3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateOrDeleteLocalSharingSettingsButton.js","names":[],"sources":["../../../src/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.tsx"],"sourcesContent":["import { Button, Typography } from '@mui/material'\nimport IconSvg from '../IconSvg'\n\nexport const CREATE_LOCAL_SHARING_SETTINGS = 'Create local sharing settings'\nexport const DELETE_LOCAL_SHARING_SETTINGS = 'Delete local sharing settings'\n\ntype CreateOrDeleteLocalSharingSettingsButtonProps = {\n isInherited: boolean\n setIsInherited: (isInherited: boolean) => void\n}\n\nexport function CreateOrDeleteLocalSharingSettingsButton(\n props: CreateOrDeleteLocalSharingSettingsButtonProps,\n) {\n const { isInherited, setIsInherited } = props\n\n if (!isInherited) {\n return (\n <div>\n <Typography\n variant={'body1'}\n sx={{\n mt: 2,\n mb: 1,\n }}\n >\n The sharing settings will be inherited from the parent folder or\n project if local sharing settings are deleted.\n </Typography>\n <Button\n variant={'outlined'}\n size={'small'}\n color={'error'}\n onClick={() => setIsInherited(true)}\n >\n {DELETE_LOCAL_SHARING_SETTINGS}\n </Button>\n </div>\n )\n }\n return (\n <div>\n <Typography\n variant={'body1'}\n sx={{\n mt: 2,\n mb: 1,\n }}\n >\n Sharing settings are initially inherited from the parent folder or\n project by default. To customize settings for a specific file, folder,\n or table, you must create and adjust local sharing settings.\n </Typography>\n <Button\n variant={'contained'}\n size={'small'}\n color={'success'}\n startIcon={<IconSvg icon={'add'} wrap={false} />}\n onClick={() => setIsInherited(false)}\n >\n {CREATE_LOCAL_SHARING_SETTINGS}\n </Button>\n </div>\n )\n}\n"],"mappings":";;;;AAGA,IAAa,IAAgC,iCAChC,IAAgC;AAO7C,SAAgB,EACd,GACA;CACA,IAAM,EAAE,gBAAa,sBAAmB;AA0BxC,QAxBK,IAyBH,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI;GACF,IAAI;GACJ,IAAI;GACL;YACF;EAIY,CAAA,EACb,kBAAC,GAAD;EACE,SAAS;EACT,MAAM;EACN,OAAO;EACP,WAAW,kBAAC,GAAD;GAAS,MAAM;GAAO,MAAM;GAAS,CAAA;EAChD,eAAe,EAAe,GAAM;YAEnC;EACM,CAAA,CACL,EAAA,CAAA,GA5CJ,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI;GACF,IAAI;GACJ,IAAI;GACL;YACF;EAGY,CAAA,EACb,kBAAC,GAAD;EACE,SAAS;EACT,MAAM;EACN,OAAO;EACP,eAAe,EAAe,GAAK;YAElC;EACM,CAAA,CACL,EAAA,CAAA"}
1
+ {"version":3,"file":"CreateOrDeleteLocalSharingSettingsButton.js","names":[],"sources":["../../../src/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.tsx"],"sourcesContent":["import { Button, Typography } from '@mui/material'\nimport IconSvg from '../IconSvg'\n\nexport const CREATE_LOCAL_SHARING_SETTINGS = 'Create local sharing settings'\nexport const DELETE_LOCAL_SHARING_SETTINGS = 'Delete local sharing settings'\n\ntype CreateOrDeleteLocalSharingSettingsButtonProps = {\n isInherited: boolean\n setIsInherited: (isInherited: boolean) => void\n}\n\nexport function CreateOrDeleteLocalSharingSettingsButton(\n props: CreateOrDeleteLocalSharingSettingsButtonProps,\n) {\n const { isInherited, setIsInherited } = props\n\n if (!isInherited) {\n return (\n <div>\n <Typography\n variant={'body1'}\n sx={{\n mt: 2,\n mb: 1,\n }}\n >\n The sharing settings will be inherited from the parent folder or\n project if local sharing settings are deleted.\n </Typography>\n <Button\n variant={'outlined'}\n size={'small'}\n color={'error'}\n onClick={() => setIsInherited(true)}\n >\n {DELETE_LOCAL_SHARING_SETTINGS}\n </Button>\n </div>\n )\n }\n return (\n <div>\n <Typography\n variant={'body1'}\n sx={{\n mt: 2,\n mb: 1,\n }}\n >\n Sharing settings are initially inherited from the parent folder or\n project by default. To customize settings for a specific file, folder,\n or table, you must create and adjust local sharing settings.\n </Typography>\n <Button\n variant={'contained'}\n size={'small'}\n color={'success'}\n startIcon={<IconSvg icon={'add'} wrap={false} />}\n onClick={() => setIsInherited(false)}\n >\n {CREATE_LOCAL_SHARING_SETTINGS}\n </Button>\n </div>\n )\n}\n"],"mappings":";;;;AAGA,IAAa,IAAgC,iCAChC,IAAgC;AAO7C,SAAgB,EACd,GACA;CACA,IAAM,EAAE,gBAAa,sBAAmB;CA0BxC,OAxBK,IAyBH,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI;GACF,IAAI;GACJ,IAAI;EACN;YACD;CAIW,CAAA,GACZ,kBAAC,GAAD;EACE,SAAS;EACT,MAAM;EACN,OAAO;EACP,WAAW,kBAAC,GAAD;GAAS,MAAM;GAAO,MAAM;EAAQ,CAAA;EAC/C,eAAe,EAAe,EAAK;YAElC;CACK,CAAA,CACL,EAAA,CAAA,IA5CH,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI;GACF,IAAI;GACJ,IAAI;EACN;YACD;CAGW,CAAA,GACZ,kBAAC,GAAD;EACE,SAAS;EACT,MAAM;EACN,OAAO;EACP,eAAe,EAAe,EAAI;YAEjC;CACK,CAAA,CACL,EAAA,CAAA;AA2BX"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityAclEditor.js","names":[],"sources":["../../../src/components/EntityAclEditor/EntityAclEditor.tsx"],"sourcesContent":["import {\n useCreateEntityACL,\n useDeleteEntityACL,\n useSuspenseGetCurrentUserProfile,\n useSuspenseGetEntityBenefactorACL,\n useSuspenseGetEntityBundle,\n useUpdateEntityACL,\n} from '@/synapse-queries'\nimport { useGetRealmPrincipals } from '@/synapse-queries/realm/useRealmPrincipals'\nimport { BackendDestinationEnum, getEndpoint } from '@/utils/functions'\nimport {\n consolidateResourceAccessList,\n isEntityPublic,\n resourceAccessListIsEqual,\n} from '@/utils/functions/AccessControlListUtils'\nimport { getPrincipalDisplayName } from '@/utils/functions/getPrincipalDisplayName'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\nimport {\n getAccessTypeFromPermissionLevel,\n PermissionLevel,\n permissionLevelToLabel,\n} from '@/utils/PermissionLevelToAccessType'\nimport { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL } from '@/utils/SynapseConstants'\nimport { Alert, Link, Stack } from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n ALL_ENTITY_BUNDLE_FIELDS,\n ResourceAccess,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ForwardedRef,\n forwardRef,\n Suspense,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { AclEditor, AclEditorProps } from '../AclEditor/AclEditor'\nimport { AclEditorSkeleton } from '../AclEditor/AclEditorSkeleton'\nimport useUpdateAcl from '../AclEditor/useUpdateAcl'\nimport { SynapseErrorBoundary } from '../error'\nimport FullWidthAlert from '../FullWidthAlert'\nimport { CreateOrDeleteLocalSharingSettingsButton } from './CreateOrDeleteLocalSharingSettingsButton'\nimport { InheritanceMessage } from './InheritanceMessage'\nimport OpenData from './OpenData'\nimport useNotifyNewACLUsers from './useNotifyNewACLUsers'\n\nconst availablePermissionLevels: PermissionLevel[] = [\n 'CAN_VIEW',\n 'CAN_DOWNLOAD',\n 'CAN_EDIT',\n 'CAN_EDIT_DELETE',\n 'CAN_ADMINISTER',\n]\n\nexport type EntityAclEditorProps = {\n /** The ID of the entity on which to view/edit the ACL. Note that the ACL may actually belong to an entity ancestor (benefactor). */\n entityId: string\n /** Invoked when the user can/cannot save the pending changes. */\n onCanSaveChange: (canSaveChanges: boolean) => void\n /** Invoked when changes are successfully made. */\n onUpdateSuccess: () => void\n /** Special case to show specific copy and allow changes to an inherited ACL immediately after a file is uploaded.\n * Note that if this is true, the entityId should be the ID of the folder or project that is the benefactor of the newly uploaded file(s)\n * @defaultValue false */\n isAfterUpload?: boolean\n}\n\nexport type EntityAclEditorHandle = {\n save: () => void\n}\n\nfunction getSubject(entityName: string) {\n return `${entityName} (shared on Synapse)`\n}\n\nfunction getBody(profile: UserProfile, entityId: string) {\n return `${getPrincipalDisplayName(\n {\n userName: profile.userName ?? '',\n firstName: profile.firstName,\n lastName: profile.lastName,\n },\n { showFullName: true, showUsername: false },\n )} has shared an item with you on Synapse:\\n${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId}`\n}\n\nfunction getCanEditResourceAccess(\n canEdit: boolean,\n isInherited: boolean,\n ownProfile: UserProfile,\n publicGroupId: string | undefined,\n): AclEditorProps['canEdit'] {\n if (!canEdit || isInherited) {\n return false\n }\n return (resourceAccess: ResourceAccess): boolean => {\n // Users cannot change their own permissions\n const isSelf = ownProfile.ownerId === String(resourceAccess.principalId)\n // Users cannot change permission level for the public group, only add/remove it.\n // To give the public group DOWNLOAD access, ACT must mark it as anonymous access.\n const isPublicGroup =\n publicGroupId !== undefined &&\n String(resourceAccess.principalId) === publicGroupId\n if (isSelf || isPublicGroup) {\n return false\n }\n return true\n }\n}\n\nfunction getCanDeleteResourceAccess(\n canEdit: boolean,\n isInherited: boolean,\n ownProfile: UserProfile,\n): AclEditorProps['canRemoveEntry'] {\n if (!canEdit || isInherited) {\n return false\n }\n return (resourceAccess: ResourceAccess): boolean => {\n // Users cannot delete their own permissions\n const isSelf = ownProfile.ownerId === String(resourceAccess.principalId)\n if (isSelf) {\n return false\n }\n return canEdit\n }\n}\n\nfunction getDisplayedPermissionLevelOverride(\n isOpenData: boolean,\n publicGroupId: string | undefined,\n): AclEditorProps['displayedPermissionLevelOverride'] {\n return (resourceAccess: ResourceAccess) => {\n if (\n publicGroupId !== undefined &&\n String(resourceAccess.principalId) === publicGroupId\n ) {\n return isOpenData\n ? permissionLevelToLabel['CAN_DOWNLOAD']\n : permissionLevelToLabel['CAN_VIEW']\n }\n return undefined\n }\n}\n\nconst EntityAclEditor = forwardRef(function EntityAclEditor(\n props: EntityAclEditorProps,\n ref: ForwardedRef<EntityAclEditorHandle>,\n) {\n const {\n entityId,\n onCanSaveChange,\n onUpdateSuccess,\n isAfterUpload = false,\n } = props\n\n const { data: ownProfile } = useSuspenseGetCurrentUserProfile()\n const { data: realmPrincipals } = useGetRealmPrincipals()\n const { publicGroup: publicGroupId } = realmPrincipals || {}\n const { data: entityBundle } = useSuspenseGetEntityBundle(\n entityId,\n undefined,\n ALL_ENTITY_BUNDLE_FIELDS,\n { staleTime: Infinity },\n )\n const isProject = EntityType.project == entityBundle.entityType\n\n // The parent's benefactor ACL will be shown if the user removes the ACL on the current entity\n const { data: parentAcl } = useSuspenseGetEntityBenefactorACL(\n entityBundle.entity.parentId!,\n {\n staleTime: Infinity,\n },\n )\n\n const consolidatedOriginalResourceAccess = useMemo(\n () =>\n consolidateResourceAccessList(entityBundle.benefactorAcl.resourceAccess),\n [entityBundle.benefactorAcl.resourceAccess],\n )\n\n const parentResourceAccess = useMemo(\n () => parentAcl?.resourceAccess ?? [],\n [parentAcl],\n )\n const canEdit = entityBundle.permissions.canChangePermissions\n const isOpenData = entityBundle.permissions.isEntityOpenData\n const originalIsInherited = !(entityBundle.benefactorAcl.id == entityId)\n const [updatedIsInherited, setUpdatedIsInherited] =\n useState(originalIsInherited)\n const [notifyNewAdditions, setNotifyNewAdditions] = useState(false)\n const [error, setError] = useState<Error>()\n\n const {\n resourceAccessList: updatedResourceAccessList,\n setResourceAccessList,\n addResourceAccessItem,\n updateResourceAccessItem,\n removeResourceAccessItem,\n resetDirtyState,\n } = useUpdateAcl({\n initialResourceAccessList: consolidatedOriginalResourceAccess,\n })\n\n // If `consolidatedOriginalResourceAccess` changes, reset state\n useEffect(() => {\n if (consolidatedOriginalResourceAccess) {\n resetDirtyState()\n setResourceAccessList([...consolidatedOriginalResourceAccess])\n }\n }, [\n consolidatedOriginalResourceAccess,\n resetDirtyState,\n setResourceAccessList,\n ])\n\n // If `originalIsInherited` changes, reset state\n useEffect(() => {\n resetDirtyState()\n setUpdatedIsInherited(originalIsInherited)\n }, [originalIsInherited, resetDirtyState])\n\n // If the editor toggles the inherited state, reset the resource access list\n useEffect(() => {\n if (originalIsInherited == updatedIsInherited) {\n // The user reverted to the original state (regardless of inherited or not)\n setResourceAccessList(consolidatedOriginalResourceAccess)\n } else if (updatedIsInherited) {\n // The user toggled to inherited, update the resource access list to match the parent\n setResourceAccessList(parentResourceAccess)\n } else {\n // The user toggled to local, no need to update the list (the parent's list is already in the editor)\n }\n resetDirtyState()\n }, [\n originalIsInherited,\n consolidatedOriginalResourceAccess,\n parentResourceAccess,\n resetDirtyState,\n setResourceAccessList,\n updatedIsInherited,\n ])\n\n const isPublic = isEntityPublic(\n updatedResourceAccessList,\n realmPrincipals ?? {},\n )\n\n const {\n sendNotification,\n isLoading: isLoadingSendMessageToNewACLUsers,\n isPending: isPendingSendMessageToNewACLUsers,\n } = useNotifyNewACLUsers({\n subject: getSubject(entityBundle.entity.name || ''),\n body: getBody(ownProfile, entityId),\n initialResourceAccessList: consolidatedOriginalResourceAccess,\n newResourceAccessList: updatedResourceAccessList,\n })\n\n const mutationOptions = {\n onSuccess: () => {\n if (notifyNewAdditions) {\n sendNotification()\n }\n onUpdateSuccess()\n },\n onError: (e: Error) => {\n setError(e)\n },\n }\n\n const { mutate: createAcl, isPending: isPendingCreateAcl } =\n useCreateEntityACL(mutationOptions)\n const { mutate: updateAcl, isPending: isPendingUpdateAcl } =\n useUpdateEntityACL(mutationOptions)\n const { mutate: deleteAcl, isPending: isPendingDeleteAcl } =\n useDeleteEntityACL(mutationOptions)\n\n const isPending =\n isPendingCreateAcl ||\n isPendingUpdateAcl ||\n isPendingDeleteAcl ||\n isPendingSendMessageToNewACLUsers\n\n const hasAclChanged = useMemo(() => {\n return (\n originalIsInherited != updatedIsInherited ||\n !resourceAccessListIsEqual(\n consolidatedOriginalResourceAccess,\n updatedResourceAccessList,\n )\n )\n }, [\n consolidatedOriginalResourceAccess,\n originalIsInherited,\n updatedIsInherited,\n updatedResourceAccessList,\n ])\n\n const canSave =\n hasAclChanged || isLoadingSendMessageToNewACLUsers || isPending\n\n const showInheritedAclUpdateWarning = hasAclChanged && isAfterUpload\n\n useEffect(() => {\n onCanSaveChange(canSave)\n }, [onCanSaveChange, canSave])\n\n useImperativeHandle(ref, () => {\n return {\n save() {\n if (canSave) {\n // Check if the inheritance changed; if so, the ACL should be created/deleted\n if (originalIsInherited != updatedIsInherited) {\n if (updatedIsInherited) {\n deleteAcl(entityId)\n } else {\n createAcl({\n id: entityId,\n resourceAccess: updatedResourceAccessList,\n })\n }\n } else {\n // Inheritance did not change; update the ACL\n updateAcl({\n // ensure we get all fields from the original ACL, including the etag\n ...entityBundle.accessControlList!,\n resourceAccess: updatedResourceAccessList,\n })\n }\n } else {\n console.error('EntityAclEditor: save() called but canSave is false')\n }\n },\n }\n }, [\n canSave,\n createAcl,\n deleteAcl,\n entityBundle,\n entityId,\n originalIsInherited,\n updateAcl,\n updatedIsInherited,\n updatedResourceAccessList,\n ])\n\n return (\n <Stack\n sx={{\n gap: 2,\n }}\n >\n <OpenData\n isOpenData={isOpenData}\n isPublic={isPublic}\n currentUserCanUpdateSharingSettings={canEdit}\n />\n <InheritanceMessage\n isProject={isProject}\n isInherited={updatedIsInherited}\n benefactorId={updatedIsInherited ? parentAcl?.id : entityId}\n isAfterUpload={isAfterUpload}\n />\n {showInheritedAclUpdateWarning && (\n <FullWidthAlert\n isGlobal={false}\n variant={'warning'}\n title={`Edits will affect settings of entire ${entityTypeToFriendlyName(\n entityBundle?.entityType,\n ).toLowerCase()}.`}\n description={\n <>\n <p>\n Editing the settings here will impact the sharing settings for\n all files and folders within this{' '}\n {entityTypeToFriendlyName(\n entityBundle?.entityType,\n ).toLowerCase()}\n , not just the ones you&apos;ve recently uploaded.\n </p>\n <p>\n View the instructions above for setting your{' '}\n <Link\n href={\n SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL\n }\n target={'_blank'}\n >\n Local Sharing Settings\n </Link>\n .\n </p>\n </>\n }\n />\n )}\n {/* Create / delete local sharing settings button */}\n {!isAfterUpload &&\n !isProject &&\n entityBundle.permissions.canEnableInheritance && (\n <CreateOrDeleteLocalSharingSettingsButton\n isInherited={updatedIsInherited}\n setIsInherited={setUpdatedIsInherited}\n />\n )}\n {error && <Alert severity=\"error\">{error.message}</Alert>}\n <AclEditor\n isInherited={updatedIsInherited}\n canEdit={getCanEditResourceAccess(\n canEdit,\n updatedIsInherited,\n ownProfile,\n publicGroupId,\n )}\n canRemoveEntry={getCanDeleteResourceAccess(\n canEdit,\n updatedIsInherited,\n ownProfile,\n )}\n resourceAccessList={updatedResourceAccessList}\n availablePermissionLevels={availablePermissionLevels}\n emptyText={/* This should never happen */ ''}\n displayedPermissionLevelOverride={getDisplayedPermissionLevelOverride(\n isOpenData,\n publicGroupId,\n )}\n onAddPrincipalToAcl={id => {\n if (publicGroupId !== undefined && String(id) === publicGroupId) {\n addResourceAccessItem(\n id,\n getAccessTypeFromPermissionLevel('CAN_VIEW'),\n )\n } else {\n addResourceAccessItem(\n id,\n getAccessTypeFromPermissionLevel('CAN_DOWNLOAD'),\n )\n }\n }}\n updateResourceAccessItem={updateResourceAccessItem}\n removeResourceAccessItem={removeResourceAccessItem}\n showNotifyCheckbox={true}\n notifyCheckboxValue={notifyNewAdditions}\n onNotifyCheckboxChange={setNotifyNewAdditions}\n showAddRemovePublicButton={true}\n />\n </Stack>\n )\n})\n\nconst EntityAclEditorWithSuspense = forwardRef(\n function EntityAclEditorWithSuspense(\n props: EntityAclEditorProps,\n ref: ForwardedRef<EntityAclEditorHandle>,\n ) {\n return (\n <SynapseErrorBoundary>\n <Suspense fallback={<AclEditorSkeleton />}>\n <EntityAclEditor {...props} ref={ref} />\n </Suspense>\n </SynapseErrorBoundary>\n )\n },\n)\n\nexport default EntityAclEditorWithSuspense\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,IAAM,KAA+C;CACnD;CACA;CACA;CACA;CACA;CACD;AAmBD,SAAS,EAAW,GAAoB;AACtC,QAAO,GAAG,EAAW;;AAGvB,SAAS,EAAQ,GAAsB,GAAkB;AACvD,QAAO,GAAG,EACR;EACE,UAAU,EAAQ,YAAY;EAC9B,WAAW,EAAQ;EACnB,UAAU,EAAQ;EACnB,EACD;EAAE,cAAc;EAAM,cAAc;EAAO,CAC5C,CAAC,4CAA4C,EAC5C,EAAuB,gBACxB,CAAC,UAAU;;AAGd,SAAS,EACP,GACA,GACA,GACA,GAC2B;AAI3B,QAHI,CAAC,KAAW,IACP,MAED,MAA4C;EAElD,IAAM,IAAS,EAAW,YAAY,OAAO,EAAe,YAAY,EAGlE,IACJ,MAAkB,KAAA,KAClB,OAAO,EAAe,YAAY,KAAK;AAIzC,SAHA,EAAI,KAAU;;;AAOlB,SAAS,EACP,GACA,GACA,GACkC;AAIlC,QAHI,CAAC,KAAW,IACP,MAED,MAES,EAAW,YAAY,OAAO,EAAe,YAAY,GAE/D,KAEF;;AAIX,SAAS,EACP,GACA,GACoD;AACpD,SAAQ,MAAmC;AACzC,MACE,MAAkB,KAAA,KAClB,OAAO,EAAe,YAAY,KAAK,EAEvC,QAAO,IACH,EAAuB,eACvB,EAAuB;;;AAMjC,IAAM,IAAkB,EAAW,SACjC,GACA,GACA;CACA,IAAM,EACJ,aACA,oBACA,oBACA,mBAAgB,OACd,GAEE,EAAE,MAAM,MAAe,IAAkC,EACzD,EAAE,MAAM,MAAoB,GAAuB,EACnD,EAAE,aAAa,MAAkB,KAAmB,EAAE,EACtD,EAAE,MAAM,MAAiB,GAC7B,GACA,KAAA,GACA,IACA,EAAE,WAAW,UAAU,CACxB,EACK,IAAY,GAAW,WAAW,EAAa,YAG/C,EAAE,MAAM,MAAc,GAC1B,EAAa,OAAO,UACpB,EACE,WAAW,UACZ,CACF,EAEK,IAAqC,QAEvC,GAA8B,EAAa,cAAc,eAAe,EAC1E,CAAC,EAAa,cAAc,eAAe,CAC5C,EAEK,IAAuB,QACrB,GAAW,kBAAkB,EAAE,EACrC,CAAC,EAAU,CACZ,EACK,IAAU,EAAa,YAAY,sBACnC,IAAa,EAAa,YAAY,kBACtC,IAAwB,EAAa,cAAc,MAAM,GACzD,CAAC,GAAoB,KACzB,EAAS,EAAoB,EACzB,CAAC,GAAoB,MAAyB,EAAS,GAAM,EAC7D,CAAC,GAAO,MAAY,GAAiB,EAErC,EACJ,oBAAoB,GACpB,0BACA,0BACA,8BACA,8BACA,uBACE,EAAa,EACf,2BAA2B,GAC5B,CAAC;AAqBF,CAlBA,QAAgB;AACd,EAAI,MACF,GAAiB,EACjB,EAAsB,CAAC,GAAG,EAAmC,CAAC;IAE/D;EACD;EACA;EACA;EACD,CAAC,EAGF,QAAgB;AAEd,EADA,GAAiB,EACjB,EAAsB,EAAoB;IACzC,CAAC,GAAqB,EAAgB,CAAC,EAG1C,QAAgB;AAUd,EATI,KAAuB,IAEzB,EAAsB,EAAmC,GAChD,KAET,EAAsB,EAAqB,EAI7C,GAAiB;IAChB;EACD;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,IAAM,KAAW,EACf,GACA,KAAmB,EAAE,CACtB,EAEK,EACJ,sBACA,WAAW,IACX,WAAW,OACT,EAAqB;EACvB,SAAS,EAAW,EAAa,OAAO,QAAQ,GAAG;EACnD,MAAM,EAAQ,GAAY,EAAS;EACnC,2BAA2B;EAC3B,uBAAuB;EACxB,CAAC,EAEI,IAAkB;EACtB,iBAAiB;AAIf,GAHI,KACF,IAAkB,EAEpB,GAAiB;;EAEnB,UAAU,MAAa;AACrB,MAAS,EAAE;;EAEd,EAEK,EAAE,QAAQ,GAAW,WAAW,OACpC,GAAmB,EAAgB,EAC/B,EAAE,QAAQ,GAAW,WAAW,OACpC,GAAmB,EAAgB,EAC/B,EAAE,QAAQ,GAAW,WAAW,OACpC,GAAmB,EAAgB,EAE/B,IACJ,MACA,MACA,MACA,IAEI,IAAgB,QAElB,KAAuB,KACvB,CAAC,EACC,GACA,EACD,EAEF;EACD;EACA;EACA;EACA;EACD,CAAC,EAEI,IACJ,KAAiB,MAAqC,GAElD,KAAgC,KAAiB;AA6CvD,QA3CA,QAAgB;AACd,IAAgB,EAAQ;IACvB,CAAC,GAAiB,EAAQ,CAAC,EAE9B,GAAoB,UACX,EACL,OAAO;AACL,EAAI,IAEE,KAAuB,IAWzB,EAAU;GAER,GAAG,EAAa;GAChB,gBAAgB;GACjB,CAAC,GAdE,IACF,EAAU,EAAS,GAEnB,EAAU;GACR,IAAI;GACJ,gBAAgB;GACjB,CAAC,GAWN,QAAQ,MAAM,sDAAsD;IAGzE,GACA;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EAGA,kBAAC,IAAD;EACE,IAAI,EACF,KAAK,GACN;YAHH;GAKE,kBAAC,GAAD;IACc;IACF;IACV,qCAAqC;IACrC,CAAA;GACF,kBAAC,GAAD;IACa;IACX,aAAa;IACb,cAAc,IAAqB,GAAW,KAAK;IACpC;IACf,CAAA;GACD,MACC,kBAAC,GAAD;IACE,UAAU;IACV,SAAS;IACT,OAAO,wCAAwC,EAC7C,GAAc,WACf,CAAC,aAAa,CAAC;IAChB,aACE,kBAAA,IAAA,EAAA,UAAA,CACE,kBAAC,KAAD,EAAA,UAAA;KAAG;KAEiC;KACjC,EACC,GAAc,WACf,CAAC,aAAa;KAAC;KAEd,EAAA,CAAA,EACJ,kBAAC,KAAD,EAAA,UAAA;KAAG;KAC4C;KAC7C,kBAAC,IAAD;MACE,MAAA;MAGA,QAAQ;gBACT;MAEM,CAAA;;KAEL,EAAA,CAAA,CACH,EAAA,CAAA;IAEL,CAAA;GAGH,CAAC,KACA,CAAC,KACD,EAAa,YAAY,wBACvB,kBAAC,GAAD;IACE,aAAa;IACb,gBAAgB;IAChB,CAAA;GAEL,KAAS,kBAAC,IAAD;IAAO,UAAS;cAAS,EAAM;IAAgB,CAAA;GACzD,kBAAC,GAAD;IACE,aAAa;IACb,SAAS,EACP,GACA,GACA,GACA,EACD;IACD,gBAAgB,EACd,GACA,GACA,EACD;IACD,oBAAoB;IACO;IAC3B,WAA0C;IAC1C,kCAAkC,EAChC,GACA,EACD;IACD,sBAAqB,MAAM;AACzB,KAAI,MAAkB,KAAA,KAAa,OAAO,EAAG,KAAK,IAChD,EACE,GACA,EAAiC,WAAW,CAC7C,GAED,EACE,GACA,EAAiC,eAAe,CACjD;;IAGqB;IACA;IAC1B,oBAAoB;IACpB,qBAAqB;IACrB,wBAAwB;IACxB,2BAA2B;IAC3B,CAAA;GACI;;EAEV,EAEI,IAA8B,EAClC,SACE,GACA,GACA;AACA,QACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,EAAqB,CAAA;YACvC,kBAAC,GAAD;GAAiB,GAAI;GAAY;GAAO,CAAA;EAC/B,CAAA,EACU,CAAA;EAG5B"}
1
+ {"version":3,"file":"EntityAclEditor.js","names":[],"sources":["../../../src/components/EntityAclEditor/EntityAclEditor.tsx"],"sourcesContent":["import {\n useCreateEntityACL,\n useDeleteEntityACL,\n useSuspenseGetCurrentUserProfile,\n useSuspenseGetEntityBenefactorACL,\n useSuspenseGetEntityBundle,\n useUpdateEntityACL,\n} from '@/synapse-queries'\nimport { useGetRealmPrincipals } from '@/synapse-queries/realm/useRealmPrincipals'\nimport { BackendDestinationEnum, getEndpoint } from '@/utils/functions'\nimport {\n consolidateResourceAccessList,\n isEntityPublic,\n resourceAccessListIsEqual,\n} from '@/utils/functions/AccessControlListUtils'\nimport { getPrincipalDisplayName } from '@/utils/functions/getPrincipalDisplayName'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\nimport {\n getAccessTypeFromPermissionLevel,\n PermissionLevel,\n permissionLevelToLabel,\n} from '@/utils/PermissionLevelToAccessType'\nimport { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL } from '@/utils/SynapseConstants'\nimport { Alert, Link, Stack } from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n ALL_ENTITY_BUNDLE_FIELDS,\n ResourceAccess,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ForwardedRef,\n forwardRef,\n Suspense,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { AclEditor, AclEditorProps } from '../AclEditor/AclEditor'\nimport { AclEditorSkeleton } from '../AclEditor/AclEditorSkeleton'\nimport useUpdateAcl from '../AclEditor/useUpdateAcl'\nimport { SynapseErrorBoundary } from '../error'\nimport FullWidthAlert from '../FullWidthAlert'\nimport { CreateOrDeleteLocalSharingSettingsButton } from './CreateOrDeleteLocalSharingSettingsButton'\nimport { InheritanceMessage } from './InheritanceMessage'\nimport OpenData from './OpenData'\nimport useNotifyNewACLUsers from './useNotifyNewACLUsers'\n\nconst availablePermissionLevels: PermissionLevel[] = [\n 'CAN_VIEW',\n 'CAN_DOWNLOAD',\n 'CAN_EDIT',\n 'CAN_EDIT_DELETE',\n 'CAN_ADMINISTER',\n]\n\nexport type EntityAclEditorProps = {\n /** The ID of the entity on which to view/edit the ACL. Note that the ACL may actually belong to an entity ancestor (benefactor). */\n entityId: string\n /** Invoked when the user can/cannot save the pending changes. */\n onCanSaveChange: (canSaveChanges: boolean) => void\n /** Invoked when changes are successfully made. */\n onUpdateSuccess: () => void\n /** Special case to show specific copy and allow changes to an inherited ACL immediately after a file is uploaded.\n * Note that if this is true, the entityId should be the ID of the folder or project that is the benefactor of the newly uploaded file(s)\n * @defaultValue false */\n isAfterUpload?: boolean\n}\n\nexport type EntityAclEditorHandle = {\n save: () => void\n}\n\nfunction getSubject(entityName: string) {\n return `${entityName} (shared on Synapse)`\n}\n\nfunction getBody(profile: UserProfile, entityId: string) {\n return `${getPrincipalDisplayName(\n {\n userName: profile.userName ?? '',\n firstName: profile.firstName,\n lastName: profile.lastName,\n },\n { showFullName: true, showUsername: false },\n )} has shared an item with you on Synapse:\\n${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${entityId}`\n}\n\nfunction getCanEditResourceAccess(\n canEdit: boolean,\n isInherited: boolean,\n ownProfile: UserProfile,\n publicGroupId: string | undefined,\n): AclEditorProps['canEdit'] {\n if (!canEdit || isInherited) {\n return false\n }\n return (resourceAccess: ResourceAccess): boolean => {\n // Users cannot change their own permissions\n const isSelf = ownProfile.ownerId === String(resourceAccess.principalId)\n // Users cannot change permission level for the public group, only add/remove it.\n // To give the public group DOWNLOAD access, ACT must mark it as anonymous access.\n const isPublicGroup =\n publicGroupId !== undefined &&\n String(resourceAccess.principalId) === publicGroupId\n if (isSelf || isPublicGroup) {\n return false\n }\n return true\n }\n}\n\nfunction getCanDeleteResourceAccess(\n canEdit: boolean,\n isInherited: boolean,\n ownProfile: UserProfile,\n): AclEditorProps['canRemoveEntry'] {\n if (!canEdit || isInherited) {\n return false\n }\n return (resourceAccess: ResourceAccess): boolean => {\n // Users cannot delete their own permissions\n const isSelf = ownProfile.ownerId === String(resourceAccess.principalId)\n if (isSelf) {\n return false\n }\n return canEdit\n }\n}\n\nfunction getDisplayedPermissionLevelOverride(\n isOpenData: boolean,\n publicGroupId: string | undefined,\n): AclEditorProps['displayedPermissionLevelOverride'] {\n return (resourceAccess: ResourceAccess) => {\n if (\n publicGroupId !== undefined &&\n String(resourceAccess.principalId) === publicGroupId\n ) {\n return isOpenData\n ? permissionLevelToLabel['CAN_DOWNLOAD']\n : permissionLevelToLabel['CAN_VIEW']\n }\n return undefined\n }\n}\n\nconst EntityAclEditor = forwardRef(function EntityAclEditor(\n props: EntityAclEditorProps,\n ref: ForwardedRef<EntityAclEditorHandle>,\n) {\n const {\n entityId,\n onCanSaveChange,\n onUpdateSuccess,\n isAfterUpload = false,\n } = props\n\n const { data: ownProfile } = useSuspenseGetCurrentUserProfile()\n const { data: realmPrincipals } = useGetRealmPrincipals()\n const { publicGroup: publicGroupId } = realmPrincipals || {}\n const { data: entityBundle } = useSuspenseGetEntityBundle(\n entityId,\n undefined,\n ALL_ENTITY_BUNDLE_FIELDS,\n { staleTime: Infinity },\n )\n const isProject = EntityType.project == entityBundle.entityType\n\n // The parent's benefactor ACL will be shown if the user removes the ACL on the current entity\n const { data: parentAcl } = useSuspenseGetEntityBenefactorACL(\n entityBundle.entity.parentId!,\n {\n staleTime: Infinity,\n },\n )\n\n const consolidatedOriginalResourceAccess = useMemo(\n () =>\n consolidateResourceAccessList(entityBundle.benefactorAcl.resourceAccess),\n [entityBundle.benefactorAcl.resourceAccess],\n )\n\n const parentResourceAccess = useMemo(\n () => parentAcl?.resourceAccess ?? [],\n [parentAcl],\n )\n const canEdit = entityBundle.permissions.canChangePermissions\n const isOpenData = entityBundle.permissions.isEntityOpenData\n const originalIsInherited = !(entityBundle.benefactorAcl.id == entityId)\n const [updatedIsInherited, setUpdatedIsInherited] =\n useState(originalIsInherited)\n const [notifyNewAdditions, setNotifyNewAdditions] = useState(false)\n const [error, setError] = useState<Error>()\n\n const {\n resourceAccessList: updatedResourceAccessList,\n setResourceAccessList,\n addResourceAccessItem,\n updateResourceAccessItem,\n removeResourceAccessItem,\n resetDirtyState,\n } = useUpdateAcl({\n initialResourceAccessList: consolidatedOriginalResourceAccess,\n })\n\n // If `consolidatedOriginalResourceAccess` changes, reset state\n useEffect(() => {\n if (consolidatedOriginalResourceAccess) {\n resetDirtyState()\n setResourceAccessList([...consolidatedOriginalResourceAccess])\n }\n }, [\n consolidatedOriginalResourceAccess,\n resetDirtyState,\n setResourceAccessList,\n ])\n\n // If `originalIsInherited` changes, reset state\n useEffect(() => {\n resetDirtyState()\n setUpdatedIsInherited(originalIsInherited)\n }, [originalIsInherited, resetDirtyState])\n\n // If the editor toggles the inherited state, reset the resource access list\n useEffect(() => {\n if (originalIsInherited == updatedIsInherited) {\n // The user reverted to the original state (regardless of inherited or not)\n setResourceAccessList(consolidatedOriginalResourceAccess)\n } else if (updatedIsInherited) {\n // The user toggled to inherited, update the resource access list to match the parent\n setResourceAccessList(parentResourceAccess)\n } else {\n // The user toggled to local, no need to update the list (the parent's list is already in the editor)\n }\n resetDirtyState()\n }, [\n originalIsInherited,\n consolidatedOriginalResourceAccess,\n parentResourceAccess,\n resetDirtyState,\n setResourceAccessList,\n updatedIsInherited,\n ])\n\n const isPublic = isEntityPublic(\n updatedResourceAccessList,\n realmPrincipals ?? {},\n )\n\n const {\n sendNotification,\n isLoading: isLoadingSendMessageToNewACLUsers,\n isPending: isPendingSendMessageToNewACLUsers,\n } = useNotifyNewACLUsers({\n subject: getSubject(entityBundle.entity.name || ''),\n body: getBody(ownProfile, entityId),\n initialResourceAccessList: consolidatedOriginalResourceAccess,\n newResourceAccessList: updatedResourceAccessList,\n })\n\n const mutationOptions = {\n onSuccess: () => {\n if (notifyNewAdditions) {\n sendNotification()\n }\n onUpdateSuccess()\n },\n onError: (e: Error) => {\n setError(e)\n },\n }\n\n const { mutate: createAcl, isPending: isPendingCreateAcl } =\n useCreateEntityACL(mutationOptions)\n const { mutate: updateAcl, isPending: isPendingUpdateAcl } =\n useUpdateEntityACL(mutationOptions)\n const { mutate: deleteAcl, isPending: isPendingDeleteAcl } =\n useDeleteEntityACL(mutationOptions)\n\n const isPending =\n isPendingCreateAcl ||\n isPendingUpdateAcl ||\n isPendingDeleteAcl ||\n isPendingSendMessageToNewACLUsers\n\n const hasAclChanged = useMemo(() => {\n return (\n originalIsInherited != updatedIsInherited ||\n !resourceAccessListIsEqual(\n consolidatedOriginalResourceAccess,\n updatedResourceAccessList,\n )\n )\n }, [\n consolidatedOriginalResourceAccess,\n originalIsInherited,\n updatedIsInherited,\n updatedResourceAccessList,\n ])\n\n const canSave =\n hasAclChanged || isLoadingSendMessageToNewACLUsers || isPending\n\n const showInheritedAclUpdateWarning = hasAclChanged && isAfterUpload\n\n useEffect(() => {\n onCanSaveChange(canSave)\n }, [onCanSaveChange, canSave])\n\n useImperativeHandle(ref, () => {\n return {\n save() {\n if (canSave) {\n // Check if the inheritance changed; if so, the ACL should be created/deleted\n if (originalIsInherited != updatedIsInherited) {\n if (updatedIsInherited) {\n deleteAcl(entityId)\n } else {\n createAcl({\n id: entityId,\n resourceAccess: updatedResourceAccessList,\n })\n }\n } else {\n // Inheritance did not change; update the ACL\n updateAcl({\n // ensure we get all fields from the original ACL, including the etag\n ...entityBundle.accessControlList!,\n resourceAccess: updatedResourceAccessList,\n })\n }\n } else {\n console.error('EntityAclEditor: save() called but canSave is false')\n }\n },\n }\n }, [\n canSave,\n createAcl,\n deleteAcl,\n entityBundle,\n entityId,\n originalIsInherited,\n updateAcl,\n updatedIsInherited,\n updatedResourceAccessList,\n ])\n\n return (\n <Stack\n sx={{\n gap: 2,\n }}\n >\n <OpenData\n isOpenData={isOpenData}\n isPublic={isPublic}\n currentUserCanUpdateSharingSettings={canEdit}\n />\n <InheritanceMessage\n isProject={isProject}\n isInherited={updatedIsInherited}\n benefactorId={updatedIsInherited ? parentAcl?.id : entityId}\n isAfterUpload={isAfterUpload}\n />\n {showInheritedAclUpdateWarning && (\n <FullWidthAlert\n isGlobal={false}\n variant={'warning'}\n title={`Edits will affect settings of entire ${entityTypeToFriendlyName(\n entityBundle?.entityType,\n ).toLowerCase()}.`}\n description={\n <>\n <p>\n Editing the settings here will impact the sharing settings for\n all files and folders within this{' '}\n {entityTypeToFriendlyName(\n entityBundle?.entityType,\n ).toLowerCase()}\n , not just the ones you&apos;ve recently uploaded.\n </p>\n <p>\n View the instructions above for setting your{' '}\n <Link\n href={\n SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL\n }\n target={'_blank'}\n >\n Local Sharing Settings\n </Link>\n .\n </p>\n </>\n }\n />\n )}\n {/* Create / delete local sharing settings button */}\n {!isAfterUpload &&\n !isProject &&\n entityBundle.permissions.canEnableInheritance && (\n <CreateOrDeleteLocalSharingSettingsButton\n isInherited={updatedIsInherited}\n setIsInherited={setUpdatedIsInherited}\n />\n )}\n {error && <Alert severity=\"error\">{error.message}</Alert>}\n <AclEditor\n isInherited={updatedIsInherited}\n canEdit={getCanEditResourceAccess(\n canEdit,\n updatedIsInherited,\n ownProfile,\n publicGroupId,\n )}\n canRemoveEntry={getCanDeleteResourceAccess(\n canEdit,\n updatedIsInherited,\n ownProfile,\n )}\n resourceAccessList={updatedResourceAccessList}\n availablePermissionLevels={availablePermissionLevels}\n emptyText={/* This should never happen */ ''}\n displayedPermissionLevelOverride={getDisplayedPermissionLevelOverride(\n isOpenData,\n publicGroupId,\n )}\n onAddPrincipalToAcl={id => {\n if (publicGroupId !== undefined && String(id) === publicGroupId) {\n addResourceAccessItem(\n id,\n getAccessTypeFromPermissionLevel('CAN_VIEW'),\n )\n } else {\n addResourceAccessItem(\n id,\n getAccessTypeFromPermissionLevel('CAN_DOWNLOAD'),\n )\n }\n }}\n updateResourceAccessItem={updateResourceAccessItem}\n removeResourceAccessItem={removeResourceAccessItem}\n showNotifyCheckbox={true}\n notifyCheckboxValue={notifyNewAdditions}\n onNotifyCheckboxChange={setNotifyNewAdditions}\n showAddRemovePublicButton={true}\n />\n </Stack>\n )\n})\n\nconst EntityAclEditorWithSuspense = forwardRef(\n function EntityAclEditorWithSuspense(\n props: EntityAclEditorProps,\n ref: ForwardedRef<EntityAclEditorHandle>,\n ) {\n return (\n <SynapseErrorBoundary>\n <Suspense fallback={<AclEditorSkeleton />}>\n <EntityAclEditor {...props} ref={ref} />\n </Suspense>\n </SynapseErrorBoundary>\n )\n },\n)\n\nexport default EntityAclEditorWithSuspense\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,IAAM,KAA+C;CACnD;CACA;CACA;CACA;CACA;AACF;AAmBA,SAAS,EAAW,GAAoB;CACtC,OAAO,GAAG,EAAW;AACvB;AAEA,SAAS,EAAQ,GAAsB,GAAkB;CACvD,OAAO,GAAG,EACR;EACE,UAAU,EAAQ,YAAY;EAC9B,WAAW,EAAQ;EACnB,UAAU,EAAQ;CACpB,GACA;EAAE,cAAc;EAAM,cAAc;CAAM,CAC5C,EAAE,4CAA4C,EAC5C,EAAuB,eACzB,EAAE,UAAU;AACd;AAEA,SAAS,EACP,GACA,GACA,GACA,GAC2B;CAI3B,OAHI,CAAC,KAAW,IACP,MAED,MAA4C;EAElD,IAAM,IAAS,EAAW,YAAY,OAAO,EAAe,WAAW,GAGjE,IACJ,MAAkB,KAAA,KAClB,OAAO,EAAe,WAAW,MAAM;EAIzC,OAHA,EAAI,KAAU;CAIhB;AACF;AAEA,SAAS,EACP,GACA,GACA,GACkC;CAIlC,OAHI,CAAC,KAAW,IACP,MAED,MAES,EAAW,YAAY,OAAO,EAAe,WAAW,IAE9D,KAEF;AAEX;AAEA,SAAS,EACP,GACA,GACoD;CACpD,QAAQ,MAAmC;EACzC,IACE,MAAkB,KAAA,KAClB,OAAO,EAAe,WAAW,MAAM,GAEvC,OAAO,IACH,EAAuB,eACvB,EAAuB;CAG/B;AACF;AAEA,IAAM,IAAkB,EAAW,SACjC,GACA,GACA;CACA,IAAM,EACJ,aACA,oBACA,oBACA,mBAAgB,OACd,GAEE,EAAE,MAAM,MAAe,GAAiC,GACxD,EAAE,MAAM,MAAoB,EAAsB,GAClD,EAAE,aAAa,MAAkB,KAAmB,CAAC,GACrD,EAAE,MAAM,MAAiB,GAC7B,GACA,KAAA,GACA,IACA,EAAE,WAAW,SAAS,CACxB,GACM,IAAY,GAAW,WAAW,EAAa,YAG/C,EAAE,MAAM,MAAc,GAC1B,EAAa,OAAO,UACpB,EACE,WAAW,SACb,CACF,GAEM,IAAqC,QAEvC,GAA8B,EAAa,cAAc,cAAc,GACzE,CAAC,EAAa,cAAc,cAAc,CAC5C,GAEM,IAAuB,QACrB,GAAW,kBAAkB,CAAC,GACpC,CAAC,CAAS,CACZ,GACM,IAAU,EAAa,YAAY,sBACnC,IAAa,EAAa,YAAY,kBACtC,IAAwB,EAAa,cAAc,MAAM,GACzD,CAAC,GAAoB,KACzB,EAAS,CAAmB,GACxB,CAAC,GAAoB,MAAyB,EAAS,EAAK,GAC5D,CAAC,GAAO,MAAY,EAAgB,GAEpC,EACJ,oBAAoB,GACpB,0BACA,0BACA,8BACA,8BACA,uBACE,EAAa,EACf,2BAA2B,EAC7B,CAAC;CAqBD,AAlBA,QAAgB;EACd,AAAI,MACF,EAAgB,GAChB,EAAsB,CAAC,GAAG,CAAkC,CAAC;CAEjE,GAAG;EACD;EACA;EACA;CACF,CAAC,GAGD,QAAgB;EAEd,AADA,EAAgB,GAChB,EAAsB,CAAmB;CAC3C,GAAG,CAAC,GAAqB,CAAe,CAAC,GAGzC,QAAgB;EAUd,AATI,KAAuB,IAEzB,EAAsB,CAAkC,IAC/C,KAET,EAAsB,CAAoB,GAI5C,EAAgB;CAClB,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,IAAM,KAAW,EACf,GACA,KAAmB,CAAC,CACtB,GAEM,EACJ,sBACA,WAAW,IACX,WAAW,OACT,EAAqB;EACvB,SAAS,EAAW,EAAa,OAAO,QAAQ,EAAE;EAClD,MAAM,EAAQ,GAAY,CAAQ;EAClC,2BAA2B;EAC3B,uBAAuB;CACzB,CAAC,GAEK,IAAkB;EACtB,iBAAiB;GAIf,AAHI,KACF,GAAiB,GAEnB,EAAgB;EAClB;EACA,UAAU,MAAa;GACrB,GAAS,CAAC;EACZ;CACF,GAEM,EAAE,QAAQ,GAAW,WAAW,OACpC,GAAmB,CAAe,GAC9B,EAAE,QAAQ,GAAW,WAAW,OACpC,GAAmB,CAAe,GAC9B,EAAE,QAAQ,GAAW,WAAW,OACpC,GAAmB,CAAe,GAE9B,IACJ,MACA,MACA,MACA,IAEI,IAAgB,QAElB,KAAuB,KACvB,CAAC,EACC,GACA,CACF,GAED;EACD;EACA;EACA;EACA;CACF,CAAC,GAEK,IACJ,KAAiB,MAAqC,GAElD,KAAgC,KAAiB;CA6CvD,OA3CA,QAAgB;EACd,EAAgB,CAAO;CACzB,GAAG,CAAC,GAAiB,CAAO,CAAC,GAE7B,GAAoB,UACX,EACL,OAAO;EACL,AAAI,IAEE,KAAuB,IAWzB,EAAU;GAER,GAAG,EAAa;GAChB,gBAAgB;EAClB,CAAC,IAdG,IACF,EAAU,CAAQ,IAElB,EAAU;GACR,IAAI;GACJ,gBAAgB;EAClB,CAAC,IAWL,QAAQ,MAAM,qDAAqD;CAEvE,EACF,IACC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAGC,kBAAC,IAAD;EACE,IAAI,EACF,KAAK,EACP;YAHF;GAKE,kBAAC,GAAD;IACc;IACF;IACV,qCAAqC;GACtC,CAAA;GACD,kBAAC,GAAD;IACa;IACX,aAAa;IACb,cAAc,IAAqB,GAAW,KAAK;IACpC;GAChB,CAAA;GACA,MACC,kBAAC,GAAD;IACE,UAAU;IACV,SAAS;IACT,OAAO,wCAAwC,EAC7C,GAAc,UAChB,EAAE,YAAY,EAAE;IAChB,aACE,kBAAA,IAAA,EAAA,UAAA,CACE,kBAAC,KAAD,EAAA,UAAA;KAAG;KAEiC;KACjC,EACC,GAAc,UAChB,EAAE,YAAY;KAAE;IAEf,EAAA,CAAA,GACH,kBAAC,KAAD,EAAA,UAAA;KAAG;KAC4C;KAC7C,kBAAC,IAAD;MACE,MAAA;MAGA,QAAQ;gBACT;KAEK,CAAA;KAAC;IAEN,EAAA,CAAA,CACH,EAAA,CAAA;GAEL,CAAA;GAGF,CAAC,KACA,CAAC,KACD,EAAa,YAAY,wBACvB,kBAAC,GAAD;IACE,aAAa;IACb,gBAAgB;GACjB,CAAA;GAEJ,KAAS,kBAAC,IAAD;IAAO,UAAS;cAAS,EAAM;GAAe,CAAA;GACxD,kBAAC,GAAD;IACE,aAAa;IACb,SAAS,EACP,GACA,GACA,GACA,CACF;IACA,gBAAgB,EACd,GACA,GACA,CACF;IACA,oBAAoB;IACO;IAC3B,WAA0C;IAC1C,kCAAkC,EAChC,GACA,CACF;IACA,sBAAqB,MAAM;KACzB,AAAI,MAAkB,KAAA,KAAa,OAAO,CAAE,MAAM,IAChD,EACE,GACA,EAAiC,UAAU,CAC7C,IAEA,EACE,GACA,EAAiC,cAAc,CACjD;IAEJ;IAC0B;IACA;IAC1B,oBAAoB;IACpB,qBAAqB;IACrB,wBAAwB;IACxB,2BAA2B;GAC5B,CAAA;EACI;;AAEX,CAAC,GAEK,IAA8B,EAClC,SACE,GACA,GACA;CACA,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,CAAoB,CAAA;YACtC,kBAAC,GAAD;GAAiB,GAAI;GAAY;EAAM,CAAA;CAC/B,CAAA,EACU,CAAA;AAE1B,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityAclEditorModal.js","names":[],"sources":["../../../src/components/EntityAclEditor/EntityAclEditorModal.tsx"],"sourcesContent":["import ConfirmCloseWithoutSavingDialog from '@/components/Dialog/ConfirmCloseWithoutSavingDialog'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\nimport { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL } from '@/utils/SynapseConstants'\nimport { noop } from 'lodash-es'\nimport { useRef, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { displayToast } from '../ToastMessage'\nimport EntityAclEditor, { EntityAclEditorHandle } from './EntityAclEditor'\n\nconst ENTITY_SHARING_SETTINGS_HELP_MARKDOWN = `Sharing settings determine who can access your content, and what kind of access they have. Choose people/teams and define their level of access below.\\n\\n_Only Administrators can add, delete, or change access levels for other people._`\n\nexport type EntityAclEditorModalProps = {\n entityId: string\n open: boolean\n onUpdateSuccess?: () => void\n onClose: () => void\n isAfterUpload?: boolean\n}\n\nexport default function EntityAclEditorModal(props: EntityAclEditorModalProps) {\n const {\n entityId,\n open,\n onUpdateSuccess = noop,\n onClose,\n isAfterUpload = false,\n } = props\n const [showConfirmCloseDialog, setShowConfirmCloseDialog] = useState(false)\n const [isDirty, setIsDirty] = useState(false)\n const entityAclEditorRef = useRef<EntityAclEditorHandle>(null)\n\n // We just need the entity type, but the editor will also fetch the bundle, so we can use that and rely on/preload the cache\n const { data: entityBundle } = useGetEntityBundle(entityId)\n const entityTypeDisplay = entityBundle?.entityType\n ? entityTypeToFriendlyName(entityBundle?.entityType)\n : ''\n const canEdit = entityBundle?.permissions?.canChangePermissions\n\n function handleClose() {\n if (isDirty) {\n setShowConfirmCloseDialog(true)\n } else {\n onClose()\n }\n }\n\n return (\n <>\n <ConfirmCloseWithoutSavingDialog\n open={showConfirmCloseDialog}\n onCancel={() => {\n setShowConfirmCloseDialog(false)\n }}\n onConfirm={() => {\n setShowConfirmCloseDialog(false)\n onClose()\n }}\n />\n <ConfirmationDialog\n title={`${entityTypeDisplay} Sharing Settings`.trim()}\n onCancel={handleClose}\n open={open}\n maxWidth={'md'}\n titleHelpPopoverProps={{\n markdownText: ENTITY_SHARING_SETTINGS_HELP_MARKDOWN,\n helpUrl:\n SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL,\n }}\n content={\n <EntityAclEditor\n ref={entityAclEditorRef}\n entityId={entityId}\n onCanSaveChange={isDirty => setIsDirty(isDirty)}\n onUpdateSuccess={() => {\n displayToast(\n 'Permissions were successfully saved to Synapse',\n 'info',\n )\n onUpdateSuccess()\n onClose()\n }}\n isAfterUpload={isAfterUpload}\n />\n }\n onConfirm={e => {\n // SWC-7055 - The default action may trigger `beforeunload` and erroneously warn the user about leaving the page.\n e.preventDefault()\n entityAclEditorRef.current!.save()\n }}\n confirmButtonProps={{\n children: canEdit ? 'Save' : 'OK',\n disabled: !isDirty,\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAUA,IAAM,IAAwC;AAU9C,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EACJ,aACA,SACA,qBAAkB,GAClB,YACA,mBAAgB,OACd,GACE,CAAC,GAAwB,KAA6B,EAAS,GAAM,EACrE,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,IAAqB,EAA8B,KAAK,EAGxD,EAAE,MAAM,MAAiB,EAAmB,EAAS,EACrD,IAAoB,GAAc,aACpC,EAAyB,GAAc,WAAW,GAClD,IACE,IAAU,GAAc,aAAa;CAE3C,SAAS,IAAc;AACrB,EAAI,IACF,EAA0B,GAAK,GAE/B,GAAS;;AAIb,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,gBAAgB;AACd,KAA0B,GAAM;;EAElC,iBAAiB;AAEf,GADA,EAA0B,GAAM,EAChC,GAAS;;EAEX,CAAA,EACF,kBAAC,GAAD;EACE,OAAO,GAAG,EAAkB,mBAAmB,MAAM;EACrD,UAAU;EACJ;EACN,UAAU;EACV,uBAAuB;GACrB,cAAc;GACd,SACE;GACH;EACD,SACE,kBAAC,GAAD;GACE,KAAK;GACK;GACV,kBAAiB,MAAW,EAAW,EAAQ;GAC/C,uBAAuB;AAMrB,IALA,EACE,kDACA,OACD,EACD,GAAiB,EACjB,GAAS;;GAEI;GACf,CAAA;EAEJ,YAAW,MAAK;AAGd,GADA,EAAE,gBAAgB,EAClB,EAAmB,QAAS,MAAM;;EAEpC,oBAAoB;GAClB,UAAU,IAAU,SAAS;GAC7B,UAAU,CAAC;GACZ;EACD,CAAA,CACD,EAAA,CAAA"}
1
+ {"version":3,"file":"EntityAclEditorModal.js","names":[],"sources":["../../../src/components/EntityAclEditor/EntityAclEditorModal.tsx"],"sourcesContent":["import ConfirmCloseWithoutSavingDialog from '@/components/Dialog/ConfirmCloseWithoutSavingDialog'\nimport { useGetEntityBundle } from '@/synapse-queries'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\nimport { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL } from '@/utils/SynapseConstants'\nimport { noop } from 'lodash-es'\nimport { useRef, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { displayToast } from '../ToastMessage'\nimport EntityAclEditor, { EntityAclEditorHandle } from './EntityAclEditor'\n\nconst ENTITY_SHARING_SETTINGS_HELP_MARKDOWN = `Sharing settings determine who can access your content, and what kind of access they have. Choose people/teams and define their level of access below.\\n\\n_Only Administrators can add, delete, or change access levels for other people._`\n\nexport type EntityAclEditorModalProps = {\n entityId: string\n open: boolean\n onUpdateSuccess?: () => void\n onClose: () => void\n isAfterUpload?: boolean\n}\n\nexport default function EntityAclEditorModal(props: EntityAclEditorModalProps) {\n const {\n entityId,\n open,\n onUpdateSuccess = noop,\n onClose,\n isAfterUpload = false,\n } = props\n const [showConfirmCloseDialog, setShowConfirmCloseDialog] = useState(false)\n const [isDirty, setIsDirty] = useState(false)\n const entityAclEditorRef = useRef<EntityAclEditorHandle>(null)\n\n // We just need the entity type, but the editor will also fetch the bundle, so we can use that and rely on/preload the cache\n const { data: entityBundle } = useGetEntityBundle(entityId)\n const entityTypeDisplay = entityBundle?.entityType\n ? entityTypeToFriendlyName(entityBundle?.entityType)\n : ''\n const canEdit = entityBundle?.permissions?.canChangePermissions\n\n function handleClose() {\n if (isDirty) {\n setShowConfirmCloseDialog(true)\n } else {\n onClose()\n }\n }\n\n return (\n <>\n <ConfirmCloseWithoutSavingDialog\n open={showConfirmCloseDialog}\n onCancel={() => {\n setShowConfirmCloseDialog(false)\n }}\n onConfirm={() => {\n setShowConfirmCloseDialog(false)\n onClose()\n }}\n />\n <ConfirmationDialog\n title={`${entityTypeDisplay} Sharing Settings`.trim()}\n onCancel={handleClose}\n open={open}\n maxWidth={'md'}\n titleHelpPopoverProps={{\n markdownText: ENTITY_SHARING_SETTINGS_HELP_MARKDOWN,\n helpUrl:\n SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL,\n }}\n content={\n <EntityAclEditor\n ref={entityAclEditorRef}\n entityId={entityId}\n onCanSaveChange={isDirty => setIsDirty(isDirty)}\n onUpdateSuccess={() => {\n displayToast(\n 'Permissions were successfully saved to Synapse',\n 'info',\n )\n onUpdateSuccess()\n onClose()\n }}\n isAfterUpload={isAfterUpload}\n />\n }\n onConfirm={e => {\n // SWC-7055 - The default action may trigger `beforeunload` and erroneously warn the user about leaving the page.\n e.preventDefault()\n entityAclEditorRef.current!.save()\n }}\n confirmButtonProps={{\n children: canEdit ? 'Save' : 'OK',\n disabled: !isDirty,\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAUA,IAAM,IAAwC;AAU9C,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EACJ,aACA,SACA,qBAAkB,GAClB,YACA,mBAAgB,OACd,GACE,CAAC,GAAwB,KAA6B,EAAS,EAAK,GACpE,CAAC,GAAS,KAAc,EAAS,EAAK,GACtC,IAAqB,EAA8B,IAAI,GAGvD,EAAE,MAAM,MAAiB,EAAmB,CAAQ,GACpD,IAAoB,GAAc,aACpC,EAAyB,GAAc,UAAU,IACjD,IACE,IAAU,GAAc,aAAa;CAE3C,SAAS,IAAc;EACrB,AAAI,IACF,EAA0B,EAAI,IAE9B,EAAQ;CAEZ;CAEA,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,gBAAgB;GACd,EAA0B,EAAK;EACjC;EACA,iBAAiB;GAEf,AADA,EAA0B,EAAK,GAC/B,EAAQ;EACV;CACD,CAAA,GACD,kBAAC,GAAD;EACE,OAAO,GAAG,EAAkB,mBAAmB,KAAK;EACpD,UAAU;EACJ;EACN,UAAU;EACV,uBAAuB;GACrB,cAAc;GACd,SACE;EACJ;EACA,SACE,kBAAC,GAAD;GACE,KAAK;GACK;GACV,kBAAiB,MAAW,EAAW,CAAO;GAC9C,uBAAuB;IAMrB,AALA,EACE,kDACA,MACF,GACA,EAAgB,GAChB,EAAQ;GACV;GACe;EAChB,CAAA;EAEH,YAAW,MAAK;GAGd,AADA,EAAE,eAAe,GACjB,EAAmB,QAAS,KAAK;EACnC;EACA,oBAAoB;GAClB,UAAU,IAAU,SAAS;GAC7B,UAAU,CAAC;EACb;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"InheritanceMessage.js","names":[],"sources":["../../../src/components/EntityAclEditor/InheritanceMessage.tsx"],"sourcesContent":["import { useGetEntityHeader } from '@/synapse-queries/entity/useGetEntityHeaders'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n} from '@/utils/functions/EntityTypeUtils'\nimport { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL } from '@/utils/SynapseConstants'\nimport { Link, Typography } from '@mui/material'\nimport { EntityLink } from '../EntityLink'\n\ntype InheritanceMessageProps = {\n isProject: boolean\n isInherited: boolean\n isAfterUpload?: boolean\n benefactorId?: string\n}\n\nexport function InheritanceMessage(props: InheritanceMessageProps) {\n const { isProject, isInherited, isAfterUpload = false, benefactorId } = props\n const { data: benefactorHeader } = useGetEntityHeader(\n benefactorId,\n undefined,\n {\n enabled: Boolean(benefactorId),\n },\n )\n\n if (isAfterUpload) {\n return (\n <>\n <Typography variant={'body1'}>\n Currently, the sharing settings are inherited from the{' '}\n {benefactorHeader\n ? entityTypeToFriendlyName(\n convertToEntityType(benefactorHeader.type),\n ).toLowerCase()\n : 'container'}{' '}\n named\n {benefactorId ? (\n <>\n {' '}\n <EntityLink entity={benefactorId} />{' '}\n </>\n ) : (\n ''\n )}\n . If you wish to customize settings for a particular file, folder, or\n table, you must establish <strong>Local Sharing Settings</strong> to\n make modifications.\n </Typography>\n <Typography variant={'body1'}>\n After uploading, choose the file you want to customize sharing\n settings for, then navigate to File Tools &gt;{' '}\n <Link\n href={\n SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL\n }\n >\n File Sharing Settings\n </Link>\n .\n </Typography>\n </>\n )\n } else if (isProject) {\n return (\n <Typography variant={'body1'}>\n The sharing settings shown below apply to this project and are inherited\n by all project contents unless local sharing settings have been set.\n </Typography>\n )\n } else if (isInherited) {\n return (\n <Typography variant={'body1'}>\n The sharing settings shown below are currently being inherited{' '}\n {benefactorId ? (\n <>\n from <EntityLink entity={benefactorId} />{' '}\n </>\n ) : (\n ''\n )}\n </Typography>\n )\n } else {\n return (\n <Typography variant={'body1'}>\n The local sharing settings shown below are <strong>not</strong> being\n inherited from a parent resource.\n </Typography>\n )\n }\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,EAAmB,GAAgC;CACjE,IAAM,EAAE,cAAW,gBAAa,mBAAgB,IAAO,oBAAiB,GAClE,EAAE,MAAM,MAAqB,EACjC,GACA,KAAA,GACA,EACE,SAAS,EAAQ,GAClB,CACF;AA4DC,QA1DE,IAEA,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GAC2B;GACtD,IACG,EACE,EAAoB,EAAiB,KAAK,CAC3C,CAAC,aAAa,GACf;GAAa;GAAI;GAEpB,IACC,kBAAA,GAAA,EAAA,UAAA;IACG;IACD,kBAAC,GAAD,EAAY,QAAQ,GAAgB,CAAA;IAAC;IACpC,EAAA,CAAA,GAEH;GACA;GAEwB,kBAAC,UAAD,EAAA,UAAQ,0BAA+B,CAAA;;GAEtD;KACb,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GAEmB;GAC/C,kBAAC,GAAD;IACE,MACE;cAEH;IAEM,CAAA;;GAEI;IACZ,EAAA,CAAA,GAEI,IAEP,kBAAC,GAAD;EAAY,SAAS;YAAS;EAGjB,CAAA,GAEN,IAEP,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GACmC;GAC9D,IACC,kBAAA,GAAA,EAAA,UAAA;IAAE;IACK,kBAAC,GAAD,EAAY,QAAQ,GAAgB,CAAA;IAAC;IACzC,EAAA,CAAA,GAEH;GAES;MAIb,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GACe,kBAAC,UAAD,EAAA,UAAQ,OAAY,CAAA;;GAEpD"}
1
+ {"version":3,"file":"InheritanceMessage.js","names":[],"sources":["../../../src/components/EntityAclEditor/InheritanceMessage.tsx"],"sourcesContent":["import { useGetEntityHeader } from '@/synapse-queries/entity/useGetEntityHeaders'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n} from '@/utils/functions/EntityTypeUtils'\nimport { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL } from '@/utils/SynapseConstants'\nimport { Link, Typography } from '@mui/material'\nimport { EntityLink } from '../EntityLink'\n\ntype InheritanceMessageProps = {\n isProject: boolean\n isInherited: boolean\n isAfterUpload?: boolean\n benefactorId?: string\n}\n\nexport function InheritanceMessage(props: InheritanceMessageProps) {\n const { isProject, isInherited, isAfterUpload = false, benefactorId } = props\n const { data: benefactorHeader } = useGetEntityHeader(\n benefactorId,\n undefined,\n {\n enabled: Boolean(benefactorId),\n },\n )\n\n if (isAfterUpload) {\n return (\n <>\n <Typography variant={'body1'}>\n Currently, the sharing settings are inherited from the{' '}\n {benefactorHeader\n ? entityTypeToFriendlyName(\n convertToEntityType(benefactorHeader.type),\n ).toLowerCase()\n : 'container'}{' '}\n named\n {benefactorId ? (\n <>\n {' '}\n <EntityLink entity={benefactorId} />{' '}\n </>\n ) : (\n ''\n )}\n . If you wish to customize settings for a particular file, folder, or\n table, you must establish <strong>Local Sharing Settings</strong> to\n make modifications.\n </Typography>\n <Typography variant={'body1'}>\n After uploading, choose the file you want to customize sharing\n settings for, then navigate to File Tools &gt;{' '}\n <Link\n href={\n SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL\n }\n >\n File Sharing Settings\n </Link>\n .\n </Typography>\n </>\n )\n } else if (isProject) {\n return (\n <Typography variant={'body1'}>\n The sharing settings shown below apply to this project and are inherited\n by all project contents unless local sharing settings have been set.\n </Typography>\n )\n } else if (isInherited) {\n return (\n <Typography variant={'body1'}>\n The sharing settings shown below are currently being inherited{' '}\n {benefactorId ? (\n <>\n from <EntityLink entity={benefactorId} />{' '}\n </>\n ) : (\n ''\n )}\n </Typography>\n )\n } else {\n return (\n <Typography variant={'body1'}>\n The local sharing settings shown below are <strong>not</strong> being\n inherited from a parent resource.\n </Typography>\n )\n }\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,EAAmB,GAAgC;CACjE,IAAM,EAAE,cAAW,gBAAa,mBAAgB,IAAO,oBAAiB,GAClE,EAAE,MAAM,MAAqB,EACjC,GACA,KAAA,GACA,EACE,SAAS,EAAQ,EACnB,CACF;CA4DE,OA1DE,IAEA,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GAC2B;GACtD,IACG,EACE,EAAoB,EAAiB,IAAI,CAC3C,EAAE,YAAY,IACd;GAAa;GAAI;GAEpB,IACC,kBAAA,GAAA,EAAA,UAAA;IACG;IACD,kBAAC,GAAD,EAAY,QAAQ,EAAe,CAAA;IAAE;GACrC,EAAA,CAAA,IAEF;GACA;GAEwB,kBAAC,UAAD,EAAA,UAAQ,yBAA8B,CAAA;GAAC;EAEvD;KACZ,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GAEmB;GAC/C,kBAAC,GAAD;IACE,MACE;cAEH;GAEK,CAAA;GAAC;EAEG;GACZ,EAAA,CAAA,IAEK,IAEP,kBAAC,GAAD;EAAY,SAAS;YAAS;CAGlB,CAAA,IAEL,IAEP,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GACmC;GAC9D,IACC,kBAAA,GAAA,EAAA,UAAA;IAAE;IACK,kBAAC,GAAD,EAAY,QAAQ,EAAe,CAAA;IAAE;GAC1C,EAAA,CAAA,IAEF;EAEQ;MAIZ,kBAAC,GAAD;EAAY,SAAS;YAArB;GAA8B;GACe,kBAAC,UAAD,EAAA,UAAQ,MAAW,CAAA;GAAC;EAErD;;AAGlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenData.js","names":[],"sources":["../../../src/components/EntityAclEditor/OpenData.tsx"],"sourcesContent":["import IconSvg from '../IconSvg'\nimport { Box, BoxProps, styled, Typography } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nconst OpenDataContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'OpenDataContainer',\n})(({ theme }) => ({\n background: theme.palette.grey[100],\n padding: `${theme.spacing(2.5)} ${theme.spacing(4)}`,\n border: `1px solid ${theme.palette.grey[300]}`,\n borderRadius: '3px',\n marginBottom: theme.spacing(2),\n}))\n\nexport type OpenDataProps = {\n isOpenData: boolean\n isPublic: boolean\n currentUserCanUpdateSharingSettings: boolean\n}\n\nexport default function OpenData(props: OpenDataProps) {\n const { isOpenData, isPublic, currentUserCanUpdateSharingSettings } = props\n\n if (isOpenData && isPublic) {\n return (\n <OpenDataContainer display={'flex'} gap={1}>\n <IconSvg icon=\"checkCircle\" color={'success'} wrap={false} />\n <div>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n <strong>This is anonymous access data.</strong>\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n Anyone can download it, even if they aren’t logged in to Synapse.\n </Typography>\n </div>\n </OpenDataContainer>\n )\n } else if (isOpenData && !isPublic && currentUserCanUpdateSharingSettings) {\n return (\n <OpenDataContainer>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n <strong>This is not anonymous access data.</strong>\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n You must grant public access for all users to be able to anonymously\n download it.\n </Typography>\n </OpenDataContainer>\n )\n } else if (!isOpenData && isPublic && currentUserCanUpdateSharingSettings) {\n return (\n <OpenDataContainer>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n <strong>\n Users must be logged in to download public access data.\n </strong>\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n This data is publicly viewable, but only registered and logged-in\n users can download it.\n </Typography>\n </OpenDataContainer>\n )\n }\n\n return null\n}\n"],"mappings":";;;;AAIA,IAAM,IAA+C,EAAO,GAAK,EAC/D,OAAO,qBACR,CAAC,EAAE,EAAE,gBAAa;CACjB,YAAY,EAAM,QAAQ,KAAK;CAC/B,SAAS,GAAG,EAAM,QAAQ,IAAI,CAAC,GAAG,EAAM,QAAQ,EAAE;CAClD,QAAQ,aAAa,EAAM,QAAQ,KAAK;CACxC,cAAc;CACd,cAAc,EAAM,QAAQ,EAAE;CAC/B,EAAE;AAQH,SAAwB,EAAS,GAAsB;CACrD,IAAM,EAAE,eAAY,aAAU,2CAAwC;AA0EtE,QAxEI,KAAc,IAEd,kBAAC,GAAD;EAAmB,SAAS;EAAQ,KAAK;YAAzC,CACE,kBAAC,GAAD;GAAS,MAAK;GAAc,OAAO;GAAW,MAAM;GAAS,CAAA,EAC7D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAS;GACT,IAAI,EACF,OAAO,kBACR;aAED,kBAAC,UAAD,EAAA,UAAQ,kCAAuC,CAAA;GACpC,CAAA,EACb,kBAAC,GAAD;GACE,SAAS;GACT,IAAI,EACF,OAAO,kBACR;aACF;GAEY,CAAA,CACT,EAAA,CAAA,CACY;MAEb,KAAc,CAAC,KAAY,IAElC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,kBACR;YAED,kBAAC,UAAD,EAAA,UAAQ,sCAA2C,CAAA;EACxC,CAAA,EACb,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,kBACR;YACF;EAGY,CAAA,CACK,EAAA,CAAA,GAEb,CAAC,KAAc,KAAY,IAElC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,kBACR;YAED,kBAAC,UAAD,EAAA,UAAQ,2DAEC,CAAA;EACE,CAAA,EACb,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,kBACR;YACF;EAGY,CAAA,CACK,EAAA,CAAA,GAIjB"}
1
+ {"version":3,"file":"OpenData.js","names":[],"sources":["../../../src/components/EntityAclEditor/OpenData.tsx"],"sourcesContent":["import IconSvg from '../IconSvg'\nimport { Box, BoxProps, styled, Typography } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nconst OpenDataContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'OpenDataContainer',\n})(({ theme }) => ({\n background: theme.palette.grey[100],\n padding: `${theme.spacing(2.5)} ${theme.spacing(4)}`,\n border: `1px solid ${theme.palette.grey[300]}`,\n borderRadius: '3px',\n marginBottom: theme.spacing(2),\n}))\n\nexport type OpenDataProps = {\n isOpenData: boolean\n isPublic: boolean\n currentUserCanUpdateSharingSettings: boolean\n}\n\nexport default function OpenData(props: OpenDataProps) {\n const { isOpenData, isPublic, currentUserCanUpdateSharingSettings } = props\n\n if (isOpenData && isPublic) {\n return (\n <OpenDataContainer display={'flex'} gap={1}>\n <IconSvg icon=\"checkCircle\" color={'success'} wrap={false} />\n <div>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n <strong>This is anonymous access data.</strong>\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n Anyone can download it, even if they aren’t logged in to Synapse.\n </Typography>\n </div>\n </OpenDataContainer>\n )\n } else if (isOpenData && !isPublic && currentUserCanUpdateSharingSettings) {\n return (\n <OpenDataContainer>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n <strong>This is not anonymous access data.</strong>\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n You must grant public access for all users to be able to anonymously\n download it.\n </Typography>\n </OpenDataContainer>\n )\n } else if (!isOpenData && isPublic && currentUserCanUpdateSharingSettings) {\n return (\n <OpenDataContainer>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n <strong>\n Users must be logged in to download public access data.\n </strong>\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n color: 'text.secondary',\n }}\n >\n This data is publicly viewable, but only registered and logged-in\n users can download it.\n </Typography>\n </OpenDataContainer>\n )\n }\n\n return null\n}\n"],"mappings":";;;;AAIA,IAAM,IAA+C,EAAO,GAAK,EAC/D,OAAO,oBACT,CAAC,GAAG,EAAE,gBAAa;CACjB,YAAY,EAAM,QAAQ,KAAK;CAC/B,SAAS,GAAG,EAAM,QAAQ,GAAG,EAAE,GAAG,EAAM,QAAQ,CAAC;CACjD,QAAQ,aAAa,EAAM,QAAQ,KAAK;CACxC,cAAc;CACd,cAAc,EAAM,QAAQ,CAAC;AAC/B,EAAE;AAQF,SAAwB,EAAS,GAAsB;CACrD,IAAM,EAAE,eAAY,aAAU,2CAAwC;CA0EtE,OAxEI,KAAc,IAEd,kBAAC,GAAD;EAAmB,SAAS;EAAQ,KAAK;YAAzC,CACE,kBAAC,GAAD;GAAS,MAAK;GAAc,OAAO;GAAW,MAAM;EAAQ,CAAA,GAC5D,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAS;GACT,IAAI,EACF,OAAO,iBACT;aAEA,kBAAC,UAAD,EAAA,UAAQ,iCAAsC,CAAA;EACpC,CAAA,GACZ,kBAAC,GAAD;GACE,SAAS;GACT,IAAI,EACF,OAAO,iBACT;aACD;EAEW,CAAA,CACT,EAAA,CAAA,CACY;MAEZ,KAAc,CAAC,KAAY,IAElC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,iBACT;YAEA,kBAAC,UAAD,EAAA,UAAQ,qCAA0C,CAAA;CACxC,CAAA,GACZ,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,iBACT;YACD;CAGW,CAAA,CACK,EAAA,CAAA,IAEZ,CAAC,KAAc,KAAY,IAElC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,iBACT;YAEA,kBAAC,UAAD,EAAA,UAAQ,0DAEA,CAAA;CACE,CAAA,GACZ,kBAAC,GAAD;EACE,SAAS;EACT,IAAI,EACF,OAAO,iBACT;YACD;CAGW,CAAA,CACK,EAAA,CAAA,IAIhB;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNotifyNewACLUsers.js","names":[],"sources":["../../../src/components/EntityAclEditor/useNotifyNewACLUsers.ts"],"sourcesContent":["import {\n useGetCurrentUserProfile,\n useGetUserGroupHeaders,\n useSendMessage,\n} from '@/synapse-queries'\nimport { useGetRealmPrincipals } from '@/synapse-queries/realm/useRealmPrincipals'\nimport {\n ResourceAccess,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback } from 'react'\nimport { displayToast } from '../ToastMessage'\n\ntype UseNotifyNewACLUsersOptions = {\n subject: string\n body: string\n initialResourceAccessList: ResourceAccess[]\n newResourceAccessList: ResourceAccess[]\n}\n\nexport function shouldNotifyUserInNewResourceAccess(\n principalId: number,\n initialResourceAccessList: ResourceAccess[],\n userGroupHeader: UserGroupHeader,\n currentUserId: string,\n publicPrincipalIds: string[],\n): boolean {\n const isInInitialResourceAccess = initialResourceAccessList.some(\n initialResourceAccess => principalId === initialResourceAccess.principalId,\n )\n const isIndividual = userGroupHeader.isIndividual\n const isCurrentUser = String(principalId) === currentUserId\n const isPublic = publicPrincipalIds.includes(String(principalId))\n\n return (\n !isInInitialResourceAccess && // Is not in the initial list\n isIndividual && // Is an individual, not a team (SWC-1195)\n !isCurrentUser && // do not notify the current user (SWC-5576)\n !isPublic // never try to notify all/public users\n )\n}\n\nexport default function useNotifyNewACLUsers(\n options: UseNotifyNewACLUsersOptions,\n) {\n const { subject, body, initialResourceAccessList, newResourceAccessList } =\n options\n\n const { data } = useGetRealmPrincipals()\n const realmPrincipals = data || {}\n const {\n authenticatedUsers: authenticatedUsersId,\n publicGroup: publicGroupId,\n anonymousUser: anonymousUserId,\n } = realmPrincipals\n const publicPrincipalIds = [\n authenticatedUsersId,\n publicGroupId,\n anonymousUserId,\n ].filter((id): id is string => id !== undefined)\n\n const { data: currentUserProfile, isLoading: isLoadingCurrentUserProfile } =\n useGetCurrentUserProfile()\n const { data: userGroupHeaders, isLoading: isLoadingUserGroupHeaders } =\n useGetUserGroupHeaders(\n newResourceAccessList.map(ra => String(ra.principalId)),\n )\n const isLoading = isLoadingCurrentUserProfile || isLoadingUserGroupHeaders\n\n const { mutate: sendMessage, isPending } = useSendMessage({\n onError: error => {\n displayToast(`New users couldn't be notified: ${error.reason}`)\n },\n })\n\n const sendNotification = useCallback(() => {\n if (isLoading) {\n console.error(\n 'Attempted to send notification before user profile or user group headers were loaded. This should never happen.',\n )\n return\n }\n const usersToNotify = newResourceAccessList\n .filter(newResourceAccess => {\n const userGroupHeader = userGroupHeaders!.find(\n ugh => ugh.ownerId === String(newResourceAccess.principalId),\n )!\n return shouldNotifyUserInNewResourceAccess(\n newResourceAccess.principalId,\n initialResourceAccessList,\n userGroupHeader,\n currentUserProfile!.ownerId,\n publicPrincipalIds,\n )\n })\n .map(ra => String(ra.principalId))\n\n if (usersToNotify.length > 0) {\n sendMessage({\n subject,\n body,\n recipients: usersToNotify,\n })\n }\n }, [\n body,\n currentUserProfile,\n initialResourceAccessList,\n isLoading,\n newResourceAccessList,\n publicPrincipalIds,\n sendMessage,\n subject,\n userGroupHeaders,\n ])\n\n return {\n sendNotification,\n isPending,\n isLoading,\n }\n}\n"],"mappings":";;;;;;;;;AAoBA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACS;CACT,IAAM,IAA4B,EAA0B,MAC1D,MAAyB,MAAgB,EAAsB,YAChE,EACK,IAAe,EAAgB,cAC/B,IAAgB,OAAO,EAAY,KAAK,GACxC,IAAW,EAAmB,SAAS,OAAO,EAAY,CAAC;AAEjE,QACE,CAAC,KACD,KACA,CAAC,KACD,CAAC;;AAIL,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,YAAS,SAAM,8BAA2B,6BAChD,GAEI,EAAE,YAAS,GAAuB,EAElC,EACJ,oBAAoB,GACpB,aAAa,GACb,eAAe,MAJO,KAAQ,EAAE,EAM5B,IAAqB;EACzB;EACA;EACA;EACD,CAAC,QAAQ,MAAqB,MAAO,KAAA,EAAU,EAE1C,EAAE,MAAM,GAAoB,WAAW,MAC3C,GAA0B,EACtB,EAAE,MAAM,GAAkB,WAAW,MACzC,EACE,EAAsB,KAAI,MAAM,OAAO,EAAG,YAAY,CAAC,CACxD,EACG,IAAY,KAA+B,GAE3C,EAAE,QAAQ,GAAa,iBAAc,EAAe,EACxD,UAAS,MAAS;AAChB,IAAa,mCAAmC,EAAM,SAAS;IAElE,CAAC;AA2CF,QAAO;EACL,kBA1CuB,QAAkB;AACzC,OAAI,GAAW;AACb,YAAQ,MACN,kHACD;AACD;;GAEF,IAAM,IAAgB,EACnB,QAAO,MAAqB;IAC3B,IAAM,IAAkB,EAAkB,MACxC,MAAO,EAAI,YAAY,OAAO,EAAkB,YAAY,CAC7D;AACD,WAAO,EACL,EAAkB,aAClB,GACA,GACA,EAAoB,SACpB,EACD;KACD,CACD,KAAI,MAAM,OAAO,EAAG,YAAY,CAAC;AAEpC,GAAI,EAAc,SAAS,KACzB,EAAY;IACV;IACA;IACA,YAAY;IACb,CAAC;KAEH;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGC;EACA;EACA;EACD"}
1
+ {"version":3,"file":"useNotifyNewACLUsers.js","names":[],"sources":["../../../src/components/EntityAclEditor/useNotifyNewACLUsers.ts"],"sourcesContent":["import {\n useGetCurrentUserProfile,\n useGetUserGroupHeaders,\n useSendMessage,\n} from '@/synapse-queries'\nimport { useGetRealmPrincipals } from '@/synapse-queries/realm/useRealmPrincipals'\nimport {\n ResourceAccess,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback } from 'react'\nimport { displayToast } from '../ToastMessage'\n\ntype UseNotifyNewACLUsersOptions = {\n subject: string\n body: string\n initialResourceAccessList: ResourceAccess[]\n newResourceAccessList: ResourceAccess[]\n}\n\nexport function shouldNotifyUserInNewResourceAccess(\n principalId: number,\n initialResourceAccessList: ResourceAccess[],\n userGroupHeader: UserGroupHeader,\n currentUserId: string,\n publicPrincipalIds: string[],\n): boolean {\n const isInInitialResourceAccess = initialResourceAccessList.some(\n initialResourceAccess => principalId === initialResourceAccess.principalId,\n )\n const isIndividual = userGroupHeader.isIndividual\n const isCurrentUser = String(principalId) === currentUserId\n const isPublic = publicPrincipalIds.includes(String(principalId))\n\n return (\n !isInInitialResourceAccess && // Is not in the initial list\n isIndividual && // Is an individual, not a team (SWC-1195)\n !isCurrentUser && // do not notify the current user (SWC-5576)\n !isPublic // never try to notify all/public users\n )\n}\n\nexport default function useNotifyNewACLUsers(\n options: UseNotifyNewACLUsersOptions,\n) {\n const { subject, body, initialResourceAccessList, newResourceAccessList } =\n options\n\n const { data } = useGetRealmPrincipals()\n const realmPrincipals = data || {}\n const {\n authenticatedUsers: authenticatedUsersId,\n publicGroup: publicGroupId,\n anonymousUser: anonymousUserId,\n } = realmPrincipals\n const publicPrincipalIds = [\n authenticatedUsersId,\n publicGroupId,\n anonymousUserId,\n ].filter((id): id is string => id !== undefined)\n\n const { data: currentUserProfile, isLoading: isLoadingCurrentUserProfile } =\n useGetCurrentUserProfile()\n const { data: userGroupHeaders, isLoading: isLoadingUserGroupHeaders } =\n useGetUserGroupHeaders(\n newResourceAccessList.map(ra => String(ra.principalId)),\n )\n const isLoading = isLoadingCurrentUserProfile || isLoadingUserGroupHeaders\n\n const { mutate: sendMessage, isPending } = useSendMessage({\n onError: error => {\n displayToast(`New users couldn't be notified: ${error.reason}`)\n },\n })\n\n const sendNotification = useCallback(() => {\n if (isLoading) {\n console.error(\n 'Attempted to send notification before user profile or user group headers were loaded. This should never happen.',\n )\n return\n }\n const usersToNotify = newResourceAccessList\n .filter(newResourceAccess => {\n const userGroupHeader = userGroupHeaders!.find(\n ugh => ugh.ownerId === String(newResourceAccess.principalId),\n )!\n return shouldNotifyUserInNewResourceAccess(\n newResourceAccess.principalId,\n initialResourceAccessList,\n userGroupHeader,\n currentUserProfile!.ownerId,\n publicPrincipalIds,\n )\n })\n .map(ra => String(ra.principalId))\n\n if (usersToNotify.length > 0) {\n sendMessage({\n subject,\n body,\n recipients: usersToNotify,\n })\n }\n }, [\n body,\n currentUserProfile,\n initialResourceAccessList,\n isLoading,\n newResourceAccessList,\n publicPrincipalIds,\n sendMessage,\n subject,\n userGroupHeaders,\n ])\n\n return {\n sendNotification,\n isPending,\n isLoading,\n }\n}\n"],"mappings":";;;;;;;;;AAoBA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACS;CACT,IAAM,IAA4B,EAA0B,MAC1D,MAAyB,MAAgB,EAAsB,WACjE,GACM,IAAe,EAAgB,cAC/B,IAAgB,OAAO,CAAW,MAAM,GACxC,IAAW,EAAmB,SAAS,OAAO,CAAW,CAAC;CAEhE,OACE,CAAC,KACD,KACA,CAAC,KACD,CAAC;AAEL;AAEA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,YAAS,SAAM,8BAA2B,6BAChD,GAEI,EAAE,YAAS,EAAsB,GAEjC,EACJ,oBAAoB,GACpB,aAAa,GACb,eAAe,MAJO,KAAQ,CAAC,GAM3B,IAAqB;EACzB;EACA;EACA;CACF,EAAE,QAAQ,MAAqB,MAAO,KAAA,CAAS,GAEzC,EAAE,MAAM,GAAoB,WAAW,MAC3C,EAAyB,GACrB,EAAE,MAAM,GAAkB,WAAW,MACzC,EACE,EAAsB,KAAI,MAAM,OAAO,EAAG,WAAW,CAAC,CACxD,GACI,IAAY,KAA+B,GAE3C,EAAE,QAAQ,GAAa,iBAAc,EAAe,EACxD,UAAS,MAAS;EAChB,EAAa,mCAAmC,EAAM,QAAQ;CAChE,EACF,CAAC;CA2CD,OAAO;EACL,kBA1CuB,QAAkB;GACzC,IAAI,GAAW;IACb,QAAQ,MACN,iHACF;IACA;GACF;GACA,IAAM,IAAgB,EACnB,QAAO,MAAqB;IAC3B,IAAM,IAAkB,EAAkB,MACxC,MAAO,EAAI,YAAY,OAAO,EAAkB,WAAW,CAC7D;IACA,OAAO,EACL,EAAkB,aAClB,GACA,GACA,EAAoB,SACpB,CACF;GACF,CAAC,EACA,KAAI,MAAM,OAAO,EAAG,WAAW,CAAC;GAEnC,AAAI,EAAc,SAAS,KACzB,EAAY;IACV;IACA;IACA,YAAY;GACd,CAAC;EAEL,GAAG;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAGE;EACA;EACA;CACF;AACF"}
@@ -1,162 +1,160 @@
1
1
  import { useGetRealmPrincipals as e } from "../../synapse-queries/realm/useRealmPrincipals.js";
2
2
  import t from "../../synapse-queries/entity/useEntityBundle.js";
3
3
  import { useDeleteEntity as n, useGetJson as r } from "../../synapse-queries/entity/useEntity.js";
4
- import { useGetSchemaBinding as i, useGetValidationResults as ee } from "../../synapse-queries/entity/useEntityBoundSchema.js";
4
+ import { useGetSchemaBinding as ee, useGetValidationResults as te } from "../../synapse-queries/entity/useEntityBoundSchema.js";
5
5
  import "../../synapse-queries/index.js";
6
- import { WarningDialog as a } from "../SynapseForm/WarningDialog.js";
7
- import { isEntityPublic as o } from "../../utils/functions/AccessControlListUtils.js";
8
- import { getDisplayedAnnotation as s } from "../entity/metadata/AnnotationsTable.js";
9
- import { EntityModal as c } from "../entity/metadata/EntityModal.js";
10
- import { HoverPopover as l } from "../styled/HoverPopover.js";
11
- import { useEffect as u, useState as d } from "react";
12
- import { isEmpty as f } from "lodash-es";
13
- import { Tooltip as p } from "@mui/material";
14
- import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
15
- import { ALL_ENTITY_BUNDLE_FIELDS as _ } from "@sage-bionetworks/synapse-types";
16
- import { EntityType as v } from "@sage-bionetworks/synapse-client";
17
- import { ChatBubbleTwoTone as y, CheckTwoTone as b, DescriptionTwoTone as te, LinkOffTwoTone as ne, LocalOfferTwoTone as re, LockTwoTone as ie, PublicTwoTone as ae } from "@mui/icons-material";
18
- import { useInView as x } from "react-intersection-observer";
6
+ import { WarningDialog as i } from "../SynapseForm/WarningDialog.js";
7
+ import { isEntityPublic as a } from "../../utils/functions/AccessControlListUtils.js";
8
+ import { getDisplayedAnnotation as o } from "../entity/metadata/AnnotationsTable.js";
9
+ import { EntityModal as s } from "../entity/metadata/EntityModal.js";
10
+ import { HoverPopover as c } from "../styled/HoverPopover.js";
11
+ import { useEffect as ne, useState as l } from "react";
12
+ import { isEmpty as u } from "lodash-es";
13
+ import { Tooltip as d } from "@mui/material";
14
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
15
+ import { ALL_ENTITY_BUNDLE_FIELDS as h } from "@sage-bionetworks/synapse-types";
16
+ import { EntityType as g } from "@sage-bionetworks/synapse-client";
17
+ import { ChatBubbleTwoTone as _, CheckTwoTone as v, DescriptionTwoTone as y, LinkOffTwoTone as b, LocalOfferTwoTone as x, LockTwoTone as S, PublicTwoTone as C } from "@mui/icons-material";
18
+ import { useInView as w } from "react-intersection-observer";
19
19
  //#region src/components/EntityBadgeIcons/EntityBadgeIcons.tsx
20
- var S = (S) => {
21
- let { entityId: C, versionNumber: w, flexWrap: T = "nowrap", justifyContent: E = "flex-start", showIsPublicPrivate: D = !0, showHasLocalSharingSettings: O = !0, showHasAnnotations: k = !0, showHasWiki: A = !0, showHasDiscussionThread: j = !0, showUnlink: M = !0, onUnlink: N = () => {}, onUnlinkError: P = () => {}, canOpenModal: F } = S, { data: I } = e(), L = I || {}, R = /* @__PURE__ */ function(e) {
22
- return e.NO_SCHEMA = "", e.VALID = "Valid", e.INVALID = "Invalid", e.ANNOTATIONS_MISSING = "Missing", e;
23
- }({}), { ref: z, inView: B } = x(), { data: V } = r(C, w, !0, { enabled: B }), H = V?.annotations, { data: U } = t(C, w, _, { enabled: B }), [W, G] = d(!1), [K, q] = d(!1), [J, Y] = d(R.NO_SCHEMA), { data: X } = i(C, {
24
- enabled: B,
20
+ var T = (T) => {
21
+ let { entityId: E, versionNumber: D, flexWrap: O = "nowrap", justifyContent: k = "flex-start", showIsPublicPrivate: A = !0, showHasLocalSharingSettings: j = !0, showHasAnnotations: M = !0, showHasWiki: N = !0, showHasDiscussionThread: P = !0, showUnlink: F = !0, onUnlink: I = () => {}, onUnlinkError: L = () => {}, canOpenModal: R } = T, { data: re } = e(), z = re || {}, { ref: B, inView: V } = w(), { data: H } = r(E, D, !0, { enabled: V }), U = H?.annotations, { data: W } = t(E, D, h, { enabled: V }), [G, K] = l(!1), [q, J] = l(!1), [Y, X] = l(""), { data: Z } = ee(E, {
22
+ enabled: V,
25
23
  staleTime: 60 * 1e3
26
- }), { data: Z } = ee(C, {
27
- enabled: B && !!X,
24
+ }), { data: Q } = te(E, {
25
+ enabled: V && !!Z,
28
26
  staleTime: 60 * 1e3
29
- }), Q = H && !f(H) ? Object.keys(H).length : 0;
30
- u(() => {
31
- Z && (Z.isValid ? Y(R.VALID) : Y(Q ? R.INVALID : R.ANNOTATIONS_MISSING));
27
+ }), $ = U && !u(U) ? Object.keys(U).length : 0;
28
+ ne(() => {
29
+ Q && (Q.isValid ? X("Valid") : X($ ? "Invalid" : "Missing"));
32
30
  }, [
33
- Z,
34
31
  Q,
35
- H,
36
- R.VALID,
37
- R.INVALID,
38
- R.ANNOTATIONS_MISSING
32
+ $,
33
+ U,
34
+ "Valid",
35
+ "Invalid",
36
+ "Missing"
39
37
  ]);
40
- let { mutate: oe } = n({
38
+ let { mutate: ie } = n({
41
39
  onSuccess: (e, t) => {
42
- N(t);
40
+ I(t);
43
41
  },
44
- onError: P
45
- }), se = /* @__PURE__ */ h(m, { children: H ? Object.entries(H ?? []).map(([e, t]) => /* @__PURE__ */ g("tr", { children: [/* @__PURE__ */ h("td", { children: /* @__PURE__ */ h("b", { children: e }) }), /* @__PURE__ */ h("td", { children: Array.isArray(t) ? t.map(s).join(", ") : s(t) })] }, e)) : "" }), ce = /* @__PURE__ */ h(m, { children: X ? /* @__PURE__ */ g("tr", { children: [/* @__PURE__ */ h("td", { children: /* @__PURE__ */ h("b", { children: "Validation Schema" }) }), /* @__PURE__ */ h("td", { children: X.jsonSchemaVersionInfo.schemaName })] }) : "" }), le = Z ? `${J} Annotations` : "", $ = /* @__PURE__ */ h("div", {
42
+ onError: L
43
+ }), ae = /* @__PURE__ */ p(f, { children: U ? Object.entries(U ?? []).map(([e, t]) => /* @__PURE__ */ m("tr", { children: [/* @__PURE__ */ p("td", { children: /* @__PURE__ */ p("b", { children: e }) }), /* @__PURE__ */ p("td", { children: Array.isArray(t) ? t.map(o).join(", ") : o(t) })] }, e)) : "" }), oe = /* @__PURE__ */ p(f, { children: Z ? /* @__PURE__ */ m("tr", { children: [/* @__PURE__ */ p("td", { children: /* @__PURE__ */ p("b", { children: "Validation Schema" }) }), /* @__PURE__ */ p("td", { children: Z.jsonSchemaVersionInfo.schemaName })] }) : "" }), se = Q ? `${Y} Annotations` : "", ce = /* @__PURE__ */ p("div", {
46
44
  className: "EntityBadgeTooltip",
47
- children: /* @__PURE__ */ h("table", { children: /* @__PURE__ */ g("tbody", { children: [se || "", ce] }) })
45
+ children: /* @__PURE__ */ p("table", { children: /* @__PURE__ */ m("tbody", { children: [ae || "", oe] }) })
48
46
  });
49
- return /* @__PURE__ */ h("div", {
47
+ return /* @__PURE__ */ p("div", {
50
48
  className: "EntityBadge",
51
- ref: z,
49
+ ref: B,
52
50
  style: {
53
- flexWrap: T,
54
- justifyContent: E
51
+ flexWrap: O,
52
+ justifyContent: k
55
53
  },
56
- children: U && /* @__PURE__ */ g(m, { children: [
57
- /* @__PURE__ */ h("div", {
54
+ children: W && /* @__PURE__ */ m(f, { children: [
55
+ /* @__PURE__ */ p("div", {
58
56
  onClick: (e) => e.stopPropagation(),
59
- children: /* @__PURE__ */ h(c, {
60
- entityId: C,
61
- show: W,
57
+ children: /* @__PURE__ */ p(s, {
58
+ entityId: E,
59
+ show: G,
62
60
  showTabs: !1,
63
- onClose: () => G(!1),
61
+ onClose: () => K(!1),
64
62
  initialTab: "ANNOTATIONS"
65
63
  })
66
64
  }),
67
- D && U.benefactorAcl && o(U.benefactorAcl.resourceAccess, L) ? /* @__PURE__ */ h(p, {
65
+ A && W.benefactorAcl && a(W.benefactorAcl.resourceAccess, z) ? /* @__PURE__ */ p(d, {
68
66
  title: "Public",
69
67
  enterNextDelay: 100,
70
68
  placement: "right",
71
- children: /* @__PURE__ */ h(ae, {
69
+ children: /* @__PURE__ */ p(C, {
72
70
  "aria-hidden": !1,
73
71
  role: "img",
74
72
  className: "EntityBadge__Badge",
75
73
  "data-testid": "is-public-icon"
76
74
  })
77
75
  }) : null,
78
- D && U.benefactorAcl && !o(U.benefactorAcl.resourceAccess, L) ? /* @__PURE__ */ h(p, {
76
+ A && W.benefactorAcl && !a(W.benefactorAcl.resourceAccess, z) ? /* @__PURE__ */ p(d, {
79
77
  title: "Private",
80
78
  enterNextDelay: 100,
81
79
  placement: "right",
82
- children: /* @__PURE__ */ h(ie, {
80
+ children: /* @__PURE__ */ p(S, {
83
81
  "aria-hidden": !1,
84
82
  role: "img",
85
83
  className: "EntityBadge__Badge",
86
84
  "data-testid": "is-private-icon"
87
85
  })
88
86
  }) : null,
89
- O && U.benefactorAcl && C === U.benefactorAcl.id ? /* @__PURE__ */ h(p, {
87
+ j && W.benefactorAcl && E === W.benefactorAcl.id ? /* @__PURE__ */ p(d, {
90
88
  title: "Sharing Settings have been set",
91
89
  enterNextDelay: 100,
92
90
  placement: "right",
93
- children: /* @__PURE__ */ h(b, {
91
+ children: /* @__PURE__ */ p(v, {
94
92
  "aria-hidden": !1,
95
93
  role: "img",
96
94
  className: "EntityBadge__Badge",
97
95
  "data-testid": "sharing-settings-icon"
98
96
  })
99
97
  }) : null,
100
- k && !!(Q || Z) && /* @__PURE__ */ h(l, {
101
- title: le,
102
- popoverContent: $,
98
+ M && !!($ || Q) && /* @__PURE__ */ p(c, {
99
+ title: se,
100
+ popoverContent: ce,
103
101
  placement: "right",
104
102
  maxWidth: 500,
105
- actionButton: F ? {
103
+ actionButton: R ? {
106
104
  content: "Edit Annotations",
107
- onClick: () => G(!0),
105
+ onClick: () => K(!0),
108
106
  closeOnClick: !0
109
107
  } : void 0,
110
- children: /* @__PURE__ */ h(re, {
108
+ children: /* @__PURE__ */ p(x, {
111
109
  "aria-hidden": !1,
112
- role: F ? "button" : "img",
113
- className: `EntityBadge__Badge ${J}`,
110
+ role: R ? "button" : "img",
111
+ className: `EntityBadge__Badge ${Y}`,
114
112
  "data-html": !0,
115
113
  "data-testid": "annotations-icon"
116
114
  })
117
115
  }),
118
- A && U.rootWikiId && /* @__PURE__ */ h(p, {
116
+ N && W.rootWikiId && /* @__PURE__ */ p(d, {
119
117
  title: "Has a wiki",
120
118
  enterNextDelay: 100,
121
119
  placement: "right",
122
- children: /* @__PURE__ */ h(te, {
120
+ children: /* @__PURE__ */ p(y, {
123
121
  "aria-hidden": !1,
124
122
  role: "img",
125
123
  className: "EntityBadge__Badge",
126
124
  "data-testid": "wiki-icon"
127
125
  })
128
126
  }),
129
- j && !!U.threadCount && U.threadCount > 0 && /* @__PURE__ */ h(p, {
127
+ P && !!W.threadCount && W.threadCount > 0 && /* @__PURE__ */ p(d, {
130
128
  title: "Has been mentioned in discussion",
131
129
  enterNextDelay: 100,
132
130
  placement: "right",
133
- children: /* @__PURE__ */ h(y, {
131
+ children: /* @__PURE__ */ p(_, {
134
132
  "aria-hidden": !1,
135
133
  role: "img",
136
134
  className: "EntityBadge__Badge",
137
135
  "data-testid": "discussion-icon"
138
136
  })
139
137
  }),
140
- M && U.entityType === v.link && U.permissions?.canDelete && /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(a, {
141
- open: K,
138
+ F && W.entityType === g.link && W.permissions?.canDelete && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(i, {
139
+ open: q,
142
140
  title: "Confirm Unlink",
143
141
  content: "Are you sure you want to remove this link? The original object will not be changed.",
144
142
  confirmButtonText: "Unlink",
145
143
  confirmButtonColor: "error",
146
144
  onConfirm: () => {
147
- oe(C), q(!1);
145
+ ie(E), J(!1);
148
146
  },
149
147
  onCancel: () => {
150
- q(!1);
148
+ J(!1);
151
149
  }
152
- }), /* @__PURE__ */ h(p, {
150
+ }), /* @__PURE__ */ p(d, {
153
151
  title: "Remove this link",
154
152
  enterNextDelay: 100,
155
153
  placement: "right",
156
- children: /* @__PURE__ */ h(ne, {
154
+ children: /* @__PURE__ */ p(b, {
157
155
  "aria-hidden": !1,
158
156
  role: "button",
159
- onClick: () => q(!0),
157
+ onClick: () => J(!0),
160
158
  className: "EntityBadge__Badge Unlink",
161
159
  "data-testid": "unlink-icon"
162
160
  })
@@ -165,6 +163,6 @@ var S = (S) => {
165
163
  });
166
164
  };
167
165
  //#endregion
168
- export { S as EntityBadgeIcons, S as default };
166
+ export { T as EntityBadgeIcons, T as default };
169
167
 
170
168
  //# sourceMappingURL=EntityBadgeIcons.js.map