synapse-react-client 4.0.19 → 4.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1619) hide show
  1. package/dist/SWC.index.d.ts +1 -1
  2. package/dist/SWC.index.js +1 -1
  3. package/dist/SWC.index.js.map +1 -1
  4. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  5. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  6. package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
  7. package/dist/assets/GoogleIcon.js.map +1 -1
  8. package/dist/assets/GoogleIcon24.js.map +1 -1
  9. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  10. package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
  11. package/dist/assets/homepage/aacr.js.map +1 -1
  12. package/dist/assets/homepage/cri.js.map +1 -1
  13. package/dist/assets/homepage/ctf.js.map +1 -1
  14. package/dist/assets/homepage/egress.js.map +1 -1
  15. package/dist/assets/homepage/facebook.js.map +1 -1
  16. package/dist/assets/homepage/fisma.js.map +1 -1
  17. package/dist/assets/homepage/gff.js.map +1 -1
  18. package/dist/assets/homepage/github.js.map +1 -1
  19. package/dist/assets/homepage/gray.js.map +1 -1
  20. package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
  21. package/dist/assets/homepage/instagram.js.map +1 -1
  22. package/dist/assets/homepage/linkedin.js.map +1 -1
  23. package/dist/assets/homepage/ml-commons.js.map +1 -1
  24. package/dist/assets/homepage/nih-aging.js.map +1 -1
  25. package/dist/assets/homepage/nih-heart.js.map +1 -1
  26. package/dist/assets/homepage/nih-nci.js.map +1 -1
  27. package/dist/assets/homepage/nih-nimh.js.map +1 -1
  28. package/dist/assets/homepage/ntap.js.map +1 -1
  29. package/dist/assets/homepage/plan-item.js.map +1 -1
  30. package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
  31. package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
  32. package/dist/assets/homepage/python.js.map +1 -1
  33. package/dist/assets/homepage/r.js.map +1 -1
  34. package/dist/assets/homepage/research-credit-feature.js.map +1 -1
  35. package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
  36. package/dist/assets/homepage/sloan.js.map +1 -1
  37. package/dist/assets/homepage/twitter.js.map +1 -1
  38. package/dist/assets/homepage/users.js.map +1 -1
  39. package/dist/assets/homepage/youtube.js.map +1 -1
  40. package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
  41. package/dist/assets/icons/AccessPending.js.map +1 -1
  42. package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
  43. package/dist/assets/icons/AddAd.js.map +1 -1
  44. package/dist/assets/icons/AddToList.js.map +1 -1
  45. package/dist/assets/icons/Alert.js.map +1 -1
  46. package/dist/assets/icons/Arrow.js.map +1 -1
  47. package/dist/assets/icons/AwardScroll.js.map +1 -1
  48. package/dist/assets/icons/Baseline.js.map +1 -1
  49. package/dist/assets/icons/Cavatica.js.map +1 -1
  50. package/dist/assets/icons/CertifiedUser.js.map +1 -1
  51. package/dist/assets/icons/Challenge.js.map +1 -1
  52. package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
  53. package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
  54. package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
  55. package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
  56. package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
  57. package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
  58. package/dist/assets/icons/ClappingHands.js.map +1 -1
  59. package/dist/assets/icons/CloudWarning.js.map +1 -1
  60. package/dist/assets/icons/CommunicateFindings.js.map +1 -1
  61. package/dist/assets/icons/CreateVersion.js.map +1 -1
  62. package/dist/assets/icons/DNA_Two.js.map +1 -1
  63. package/dist/assets/icons/Data2.js.map +1 -1
  64. package/dist/assets/icons/DoubleQuotes.js.map +1 -1
  65. package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
  66. package/dist/assets/icons/FileWithShield.js.map +1 -1
  67. package/dist/assets/icons/FileWithShield2.js.map +1 -1
  68. package/dist/assets/icons/FrontHand.js.map +1 -1
  69. package/dist/assets/icons/HandWithMoney.js.map +1 -1
  70. package/dist/assets/icons/IconCopy.js.map +1 -1
  71. package/dist/assets/icons/IconMinus.js.map +1 -1
  72. package/dist/assets/icons/IconPlus.js.map +1 -1
  73. package/dist/assets/icons/Java.js.map +1 -1
  74. package/dist/assets/icons/MintDoi.js.map +1 -1
  75. package/dist/assets/icons/MultiFile.js.map +1 -1
  76. package/dist/assets/icons/MultiFile2.js.map +1 -1
  77. package/dist/assets/icons/NoData.js.map +1 -1
  78. package/dist/assets/icons/NoSearchResults.js.map +1 -1
  79. package/dist/assets/icons/ORCIDIcon.js.map +1 -1
  80. package/dist/assets/icons/OpenBook.js.map +1 -1
  81. package/dist/assets/icons/Podium.js.map +1 -1
  82. package/dist/assets/icons/Python.js.map +1 -1
  83. package/dist/assets/icons/QueryStructuredData.js.map +1 -1
  84. package/dist/assets/icons/RLogo.js.map +1 -1
  85. package/dist/assets/icons/RecordProvenance.js.map +1 -1
  86. package/dist/assets/icons/RosetteRibbon.js.map +1 -1
  87. package/dist/assets/icons/SageFullLogo.js.map +1 -1
  88. package/dist/assets/icons/SearchImage.js.map +1 -1
  89. package/dist/assets/icons/ShareYourResearch.js.map +1 -1
  90. package/dist/assets/icons/Sort.js.map +1 -1
  91. package/dist/assets/icons/StarTrophy.js.map +1 -1
  92. package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
  93. package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
  94. package/dist/assets/icons/SynapseLogoName.js.map +1 -1
  95. package/dist/assets/icons/TasksIcon.js.map +1 -1
  96. package/dist/assets/icons/Terminal.js.map +1 -1
  97. package/dist/assets/icons/ThreeStars.js.map +1 -1
  98. package/dist/assets/icons/UnpackagableFile.js.map +1 -1
  99. package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
  100. package/dist/assets/icons/ValidatedProfile.js.map +1 -1
  101. package/dist/assets/icons/account-certified.js.map +1 -1
  102. package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
  103. package/dist/assets/icons/account-validated.js.map +1 -1
  104. package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
  105. package/dist/assets/icons/chart2.js.map +1 -1
  106. package/dist/assets/icons/columns.js.map +1 -1
  107. package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
  108. package/dist/assets/icons/computationalTool.js.map +1 -1
  109. package/dist/assets/icons/dataReuse.js.map +1 -1
  110. package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
  111. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  112. package/dist/assets/icons/error_page/maintenance.js.map +1 -1
  113. package/dist/assets/icons/error_page/no-access.js.map +1 -1
  114. package/dist/assets/icons/error_page/unavailable.js.map +1 -1
  115. package/dist/assets/icons/file.js.map +1 -1
  116. package/dist/assets/icons/inSilicoModel.js.map +1 -1
  117. package/dist/assets/icons/institution.js.map +1 -1
  118. package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
  119. package/dist/assets/icons/modelSystem.js.map +1 -1
  120. package/dist/assets/icons/mouse.js.map +1 -1
  121. package/dist/assets/icons/organizations.js.map +1 -1
  122. package/dist/assets/icons/person.js.map +1 -1
  123. package/dist/assets/icons/spatialProfiling.js.map +1 -1
  124. package/dist/assets/icons/standardDataModel.js.map +1 -1
  125. package/dist/assets/icons/study-active.js.map +1 -1
  126. package/dist/assets/icons/study-complete.js.map +1 -1
  127. package/dist/assets/icons/subscribe_plus.js.map +1 -1
  128. package/dist/assets/icons/synapse-logo.js.map +1 -1
  129. package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
  130. package/dist/assets/icons/translational.js.map +1 -1
  131. package/dist/assets/icons/tree_horizontal.js.map +1 -1
  132. package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
  133. package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
  134. package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
  135. package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
  136. package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
  137. package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
  138. package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
  139. package/dist/assets/illustrations/docker_illustration.js.map +1 -1
  140. package/dist/assets/illustrations/donation_illustration.js.map +1 -1
  141. package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
  142. package/dist/assets/illustrations/files_illustration.js.map +1 -1
  143. package/dist/assets/illustrations/following_illustration.js.map +1 -1
  144. package/dist/assets/illustrations/index.js.map +1 -1
  145. package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
  146. package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
  147. package/dist/assets/illustrations/projects_illustration.js.map +1 -1
  148. package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
  149. package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
  150. package/dist/assets/illustrations/tables_illustration.js.map +1 -1
  151. package/dist/assets/illustrations/teams_illustration.js.map +1 -1
  152. package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
  153. package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
  154. package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
  155. package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
  156. package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
  157. package/dist/assets/logos/other/pluto-logo.js.map +1 -1
  158. package/dist/assets/logos/other/terra-logo.js.map +1 -1
  159. package/dist/assets/mui_components/AccessManagement.js.map +1 -1
  160. package/dist/assets/mui_components/AccountCertified.js.map +1 -1
  161. package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
  162. package/dist/assets/mui_components/AccountValidated.js.map +1 -1
  163. package/dist/assets/mui_components/ActionKey.js.map +1 -1
  164. package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
  165. package/dist/assets/mui_components/Chromatin.js.map +1 -1
  166. package/dist/assets/mui_components/Clinical.js.map +1 -1
  167. package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
  168. package/dist/assets/mui_components/Data.js.map +1 -1
  169. package/dist/assets/mui_components/DataLocked.js.map +1 -1
  170. package/dist/assets/mui_components/DataReuse.js.map +1 -1
  171. package/dist/assets/mui_components/Dataset.js.map +1 -1
  172. package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
  173. package/dist/assets/mui_components/Docker.js.map +1 -1
  174. package/dist/assets/mui_components/GeneExpression.js.map +1 -1
  175. package/dist/assets/mui_components/GeneVariants.js.map +1 -1
  176. package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
  177. package/dist/assets/mui_components/Imaging.js.map +1 -1
  178. package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
  179. package/dist/assets/mui_components/Kinomics.js.map +1 -1
  180. package/dist/assets/mui_components/LineGraph.js.map +1 -1
  181. package/dist/assets/mui_components/ModelSystem.js.map +1 -1
  182. package/dist/assets/mui_components/Other.js.map +1 -1
  183. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  184. package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
  185. package/dist/assets/mui_components/Proteomics.js.map +1 -1
  186. package/dist/assets/mui_components/Rat.js.map +1 -1
  187. package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
  188. package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
  189. package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
  190. package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
  191. package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
  192. package/dist/assets/sustainability/dialPosition1.js.map +1 -1
  193. package/dist/assets/sustainability/dialPosition2.js.map +1 -1
  194. package/dist/assets/sustainability/dialPosition3.js.map +1 -1
  195. package/dist/assets/sustainability/dialPosition4.js.map +1 -1
  196. package/dist/assets/themed_icons/Active.js.map +1 -1
  197. package/dist/assets/themed_icons/Chart.js.map +1 -1
  198. package/dist/assets/themed_icons/Close.js.map +1 -1
  199. package/dist/assets/themed_icons/Collapse.js.map +1 -1
  200. package/dist/assets/themed_icons/Columns.js.map +1 -1
  201. package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
  202. package/dist/assets/themed_icons/Database.js.map +1 -1
  203. package/dist/assets/themed_icons/Download.js.map +1 -1
  204. package/dist/assets/themed_icons/Expand.js.map +1 -1
  205. package/dist/assets/themed_icons/Explore.js.map +1 -1
  206. package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
  207. package/dist/assets/themed_icons/Filter.js.map +1 -1
  208. package/dist/assets/themed_icons/Program.js.map +1 -1
  209. package/dist/assets/themed_icons/Project.js.map +1 -1
  210. package/dist/assets/themed_icons/Publication.js.map +1 -1
  211. package/dist/assets/themed_icons/Search.js.map +1 -1
  212. package/dist/assets/themed_icons/Settings.js.map +1 -1
  213. package/dist/assets/themed_icons/SortDown.js.map +1 -1
  214. package/dist/assets/themed_icons/SortUp.js.map +1 -1
  215. package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
  216. package/dist/assets/themed_icons/Study.js.map +1 -1
  217. package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
  218. package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
  219. package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
  220. package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
  221. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
  222. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  223. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  224. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  225. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
  226. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  227. package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
  228. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  229. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  230. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  231. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  232. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  233. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  234. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  235. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  236. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
  237. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  238. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  239. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  240. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
  241. package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
  242. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  243. package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
  244. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
  245. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  246. package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
  247. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  248. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  249. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  250. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  251. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  252. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  253. package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
  254. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  255. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
  256. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
  257. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  258. package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
  259. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  260. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  261. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  262. package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
  263. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  264. package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
  265. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
  266. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  267. package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
  268. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  269. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  270. package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
  271. package/dist/components/AddToDownloadListV2.js.map +1 -1
  272. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  273. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  274. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  275. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  276. package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
  277. package/dist/components/Authentication/LoginForm.js.map +1 -1
  278. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  279. package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
  280. package/dist/components/Authentication/Logout.js.map +1 -1
  281. package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
  282. package/dist/components/Authentication/PasswordField.js.map +1 -1
  283. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  284. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  285. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  286. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  287. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  288. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  289. package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
  290. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  291. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  292. package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
  293. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  294. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  295. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  296. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  297. package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
  298. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  299. package/dist/components/CardContainer/CardConfiguration.d.ts +2 -0
  300. package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
  301. package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
  302. package/dist/components/CardContainer/CardContainer.js +3 -3
  303. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  304. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +1 -0
  305. package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
  306. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  307. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  308. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  309. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  310. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  311. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  312. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  313. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  314. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  315. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  316. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  317. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  321. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  322. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  323. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  324. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  325. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  326. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  330. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  331. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  332. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  333. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  334. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  335. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  336. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  337. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  338. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  339. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  340. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  341. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  342. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  343. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  344. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  345. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  346. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  347. package/dist/components/ComponentCollapse.js.map +1 -1
  348. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  349. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  350. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  351. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  352. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  353. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  354. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  355. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  356. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  357. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  358. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  359. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  360. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  361. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  362. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  363. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  364. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  365. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  366. package/dist/components/DataExplorer/DataExplorer.css +1 -1
  367. package/dist/components/DataExplorer/DataExplorer.js +28 -31
  368. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  369. package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
  370. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
  371. package/dist/components/DataExplorer/DataExplorer.module.scss +26 -6
  372. package/dist/components/DataGrid/DataGrid.js +72 -72
  373. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  374. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  375. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  376. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  377. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  378. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  379. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  380. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  381. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  382. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  383. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  384. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  385. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  386. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  387. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  388. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  389. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  390. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts +5 -3
  391. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  392. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +46 -47
  393. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  394. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  395. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  396. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  397. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  398. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  399. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  400. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  401. package/dist/components/DataGrid/hooks/useColumnResizeHandles.d.ts.map +1 -1
  402. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +3 -1
  403. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  404. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  405. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  406. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  407. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  408. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  409. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  410. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  411. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  412. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  413. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  414. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  415. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  416. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  417. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  418. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  419. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  420. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  421. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  422. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  423. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  424. package/dist/components/DataGrid/utils/columnFactory.js +1 -0
  425. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  426. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  427. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  428. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  429. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  430. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  431. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  432. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  433. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  434. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  435. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  436. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  437. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  438. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  439. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  440. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  441. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  442. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  443. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  444. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  445. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  446. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  447. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  448. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  449. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  450. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  451. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  452. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  453. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  454. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  455. package/dist/components/DialogBase.js.map +1 -1
  456. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  457. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  458. package/dist/components/DirectDownloadButton.js.map +1 -1
  459. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  460. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  461. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  462. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  463. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  464. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  465. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  466. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  467. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  468. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  469. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  470. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  471. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  472. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  473. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  474. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  475. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  476. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  477. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  478. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  479. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  480. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  481. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  482. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  483. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  484. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  485. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  486. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  487. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  488. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  489. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  490. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  491. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  492. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  493. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  494. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  495. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  496. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  497. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  498. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  499. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  500. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  501. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  502. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  503. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  504. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  505. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  506. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  507. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  508. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  509. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  510. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  511. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  513. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  514. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  515. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  516. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  517. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  518. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  519. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  520. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  521. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  522. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  523. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  524. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  525. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  526. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  527. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  528. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  529. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  530. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  531. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  532. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  533. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  534. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  535. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  536. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  537. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  538. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  539. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  540. package/dist/components/EntityIcon.js.map +1 -1
  541. package/dist/components/EntityLink.js.map +1 -1
  542. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  543. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  544. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  545. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  546. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  547. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  548. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  549. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  550. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  551. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  552. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  553. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  554. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  555. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  556. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  557. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  558. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  559. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  560. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  561. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  562. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  563. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  564. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  565. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  566. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  567. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  568. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  569. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  570. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  571. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  572. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  573. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  574. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  575. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  576. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  577. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  578. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  579. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  580. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  581. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  582. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  583. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  584. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  585. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  586. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  587. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  588. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  589. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  590. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  591. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  592. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  593. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  594. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  595. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  596. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  597. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  598. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  599. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  600. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  601. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  602. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  603. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  604. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  605. package/dist/components/Forum/ForumPage.js.map +1 -1
  606. package/dist/components/Forum/ForumTable.js.map +1 -1
  607. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  608. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  609. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  610. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  611. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  612. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  613. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  614. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  615. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  616. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  617. package/dist/components/GenericCard/GenericCard.d.ts +2 -0
  618. package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
  619. package/dist/components/GenericCard/GenericCard.js +76 -64
  620. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  621. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  622. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  623. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  624. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  625. package/dist/components/GenericCard/Linkify.js.map +1 -1
  626. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  627. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  628. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  629. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  630. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  631. package/dist/components/GenericCard/TableRowGenericCard.js +33 -25
  632. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  633. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  634. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  635. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  636. package/dist/components/Goals/Goals.js +25 -27
  637. package/dist/components/Goals/Goals.js.map +1 -1
  638. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  639. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  640. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  641. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  642. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  643. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  644. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  645. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  646. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  647. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  648. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  649. package/dist/components/HasAccess/AccessIcon.js +10 -10
  650. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  651. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  652. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  653. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  654. package/dist/components/HeaderCard.js.map +1 -1
  655. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  656. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  657. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  658. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  659. package/dist/components/Icon/Icon.js.map +1 -1
  660. package/dist/components/IconList.js.map +1 -1
  661. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  662. package/dist/components/IconSvgButton.js.map +1 -1
  663. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  664. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  665. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  666. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  667. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  668. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  669. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  670. package/dist/components/JsonLdScript.js.map +1 -1
  671. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  672. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  673. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  674. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  675. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  676. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  677. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  678. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  679. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  680. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  681. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  682. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  683. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  684. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  685. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  686. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  687. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  688. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  689. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  690. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  691. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  692. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  693. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  694. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  695. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  696. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  697. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  698. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  699. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  700. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  701. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  702. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  703. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  704. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  705. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  706. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  707. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  708. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  709. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  710. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  711. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  712. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  713. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  714. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  715. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  716. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  717. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  718. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  719. package/dist/components/MuiContainer.js.map +1 -1
  720. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  721. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  722. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  723. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  724. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  725. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  726. package/dist/components/Plot/BarPlot.js.map +1 -1
  727. package/dist/components/Plot/DotPlot.js.map +1 -1
  728. package/dist/components/Plot/Plot.d.ts +12 -1
  729. package/dist/components/Plot/Plot.d.ts.map +1 -1
  730. package/dist/components/Plot/Plot.js +5 -1
  731. package/dist/components/Plot/Plot.js.map +1 -1
  732. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  733. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  734. package/dist/components/Plot/SynapseSankeyPlot.css +1 -0
  735. package/dist/components/Plot/SynapseSankeyPlot.d.ts +54 -0
  736. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  737. package/dist/components/Plot/SynapseSankeyPlot.js +359 -0
  738. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  739. package/dist/components/Plot/SynapseSankeyPlot.module.js +15 -0
  740. package/dist/components/Plot/SynapseSankeyPlot.module.js.map +1 -0
  741. package/dist/components/Plot/SynapseSankeyPlot.module.scss +63 -0
  742. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  743. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  744. package/dist/components/Plot/index.d.ts +3 -1
  745. package/dist/components/Plot/index.d.ts.map +1 -1
  746. package/dist/components/Plot/index.js +2 -1
  747. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  748. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  749. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  750. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  751. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  752. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  753. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  754. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  755. package/dist/components/PortalList/PortalCard.js.map +1 -1
  756. package/dist/components/PortalList/PortalList.js.map +1 -1
  757. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  758. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  759. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  760. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  761. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  762. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  763. package/dist/components/Programs/Programs.js.map +1 -1
  764. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  765. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  766. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  767. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  768. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  769. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  770. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  771. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  772. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  773. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  774. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  775. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  776. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  777. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  778. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  779. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  780. package/dist/components/QuerySortSelector.js.map +1 -1
  781. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  782. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  783. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  784. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  785. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  786. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  787. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  788. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  789. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  790. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  791. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  792. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  793. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  794. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  795. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  796. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  797. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  798. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  799. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  800. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  801. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  802. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  803. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  804. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  805. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  806. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  807. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  808. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  809. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  810. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  811. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  812. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  813. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  814. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  815. package/dist/components/Resources/Resources.js +8 -11
  816. package/dist/components/Resources/Resources.js.map +1 -1
  817. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  818. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  819. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  820. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  821. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  822. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  823. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  824. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  825. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  826. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  827. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  828. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  829. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +13 -12
  830. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  831. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +88 -77
  832. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  833. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  834. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  835. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  836. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  837. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  838. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  839. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  840. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  841. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  842. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  843. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  844. package/dist/components/SignInButton.js.map +1 -1
  845. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  846. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  847. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  848. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  849. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  850. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  851. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  852. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  853. package/dist/components/SourceAppImage.js.map +1 -1
  854. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  855. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  856. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  857. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  858. package/dist/components/StatisticsPlot.js.map +1 -1
  859. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  860. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  861. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  862. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  863. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  864. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  865. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  866. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  867. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  868. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  869. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  870. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  871. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  872. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  873. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  874. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  875. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  876. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  877. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  878. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  879. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  880. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  881. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  882. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  883. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  884. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  885. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  886. package/dist/components/SynapseForm/Header.js.map +1 -1
  887. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  888. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  889. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  890. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  891. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  892. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  893. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  894. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  895. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  896. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  897. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  898. package/dist/components/SynapseForm/types.js.map +1 -1
  899. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  900. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  901. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  902. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  903. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  904. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  905. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  906. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  907. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  908. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  909. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  910. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  911. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  912. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  913. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  914. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  915. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  916. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  917. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  918. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  919. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  920. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  921. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  922. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  923. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  924. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  925. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  926. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  927. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  928. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  929. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  930. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  931. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  932. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  933. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  934. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  935. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  936. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  937. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  938. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  939. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  940. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  941. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  942. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  943. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  944. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  945. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  946. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  947. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  948. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  949. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  950. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  951. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  952. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  953. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  954. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  955. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  956. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  957. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  958. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  959. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  960. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  961. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  962. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  963. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  964. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  965. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  966. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  967. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  968. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  969. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  970. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  971. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  972. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +63 -74
  973. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  974. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  975. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  976. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  977. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  978. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  979. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  980. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  981. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  982. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  983. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  984. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  985. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  986. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  987. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  988. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  989. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  990. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  991. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  992. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  993. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  994. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.d.ts.map +1 -1
  995. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +72 -68
  996. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  997. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  998. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  999. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  1000. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  1001. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  1002. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  1003. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +27 -1
  1004. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  1005. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +47 -36
  1006. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  1007. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +10 -10
  1008. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  1009. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  1010. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.d.ts +12 -12
  1011. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  1012. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts +4 -1
  1013. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts.map +1 -1
  1014. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  1015. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts +167 -517
  1016. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts.map +1 -1
  1017. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js +65 -65
  1018. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  1019. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts +1 -1
  1020. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts.map +1 -1
  1021. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  1022. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  1023. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts +1 -1
  1024. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts.map +1 -1
  1025. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js +6 -13
  1026. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  1027. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts +1 -1
  1028. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts.map +1 -1
  1029. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  1030. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  1031. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts +1 -1
  1032. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts.map +1 -1
  1033. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js +2 -2
  1034. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  1035. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts +1 -1
  1036. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts.map +1 -1
  1037. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  1038. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts +2 -2
  1039. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts.map +1 -1
  1040. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js +15 -16
  1041. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  1042. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  1043. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  1044. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  1045. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  1046. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  1047. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  1048. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  1049. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  1050. package/dist/components/TeamBadge.js.map +1 -1
  1051. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  1052. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  1053. package/dist/components/TemplateComponent.js.map +1 -1
  1054. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1055. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1056. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1057. package/dist/components/TextField/TextField.js.map +1 -1
  1058. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1059. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1060. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1061. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1062. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1063. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1064. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1065. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1066. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1067. package/dist/components/TotalQueryResults.js.map +1 -1
  1068. package/dist/components/UserCard/Avatar.js.map +1 -1
  1069. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1070. package/dist/components/UserCard/UserCard.js.map +1 -1
  1071. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1072. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1073. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1074. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1075. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1076. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1077. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1078. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1079. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1080. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1081. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1082. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1083. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1084. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1085. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1086. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1087. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1088. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1089. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1090. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1091. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1092. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1093. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1094. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1095. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1096. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1097. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1098. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1099. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1100. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1101. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1102. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1103. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1104. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1105. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1106. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1107. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1108. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1109. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1110. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1111. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1112. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1113. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1114. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1115. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1116. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1117. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1118. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1119. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1120. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1121. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1122. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1123. package/dist/components/download_list/index.js.map +1 -1
  1124. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1125. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1126. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1127. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1128. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1129. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1130. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1131. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1132. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1133. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1134. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1135. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1136. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1137. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1138. package/dist/components/error/ErrorBanner.js.map +1 -1
  1139. package/dist/components/error/ErrorChip.js.map +1 -1
  1140. package/dist/components/error/ErrorPage.js +24 -24
  1141. package/dist/components/error/ErrorPage.js.map +1 -1
  1142. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1143. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1144. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1145. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1146. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1147. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1148. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1149. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1150. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1151. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1152. package/dist/components/index.js +48 -47
  1153. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1154. package/dist/components/layout/SWCHeader.js.map +1 -1
  1155. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1156. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1157. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1158. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1159. package/dist/components/row_renderers/Funder.js.map +1 -1
  1160. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1161. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1162. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1163. package/dist/components/styled/HoverPopover.js.map +1 -1
  1164. package/dist/components/styled/InlineBadge.js.map +1 -1
  1165. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1166. package/dist/components/styled/LargeButton.js.map +1 -1
  1167. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1168. package/dist/components/styled/LightTooltip.js.map +1 -1
  1169. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1170. package/dist/components/styled/StyledPopover.js.map +1 -1
  1171. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1172. package/dist/components/styled/WideButton.js.map +1 -1
  1173. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
  1174. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
  1175. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1176. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1177. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  1178. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
  1179. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
  1180. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
  1181. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
  1182. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
  1183. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
  1184. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1185. package/dist/components/trash/TrashCanList.js.map +1 -1
  1186. package/dist/components/utils/Blocker.js.map +1 -1
  1187. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1188. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1189. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1190. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1191. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1192. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1193. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1194. package/dist/components/widgets/Range.js.map +1 -1
  1195. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1196. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1197. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1198. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1199. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1200. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1201. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1202. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1203. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1204. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1205. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1206. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1207. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1208. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1209. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1210. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1211. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1212. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1213. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1214. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1215. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1216. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1217. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1218. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1219. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1220. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1221. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1222. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1223. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1224. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1225. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1226. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1227. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1228. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1229. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1230. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1231. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1232. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1233. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1234. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1235. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1236. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1237. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1238. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1239. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1240. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1241. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1242. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1243. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1244. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1245. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1246. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1247. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1248. package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
  1249. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1250. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1251. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1252. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1253. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1254. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1255. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1256. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1257. package/dist/index.js +54 -53
  1258. package/dist/index.js.map +1 -1
  1259. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1260. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1261. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1262. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1263. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1264. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1265. package/dist/mocks/chat/mockChat.js.map +1 -1
  1266. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1267. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1268. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1269. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1270. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1271. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1272. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1273. package/dist/mocks/entity/index.js.map +1 -1
  1274. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1275. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1276. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1277. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1278. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1279. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1280. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1281. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1282. package/dist/mocks/entity/mockProject.js.map +1 -1
  1283. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1284. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1285. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1286. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1287. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1288. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1289. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1290. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1291. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1292. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1293. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1294. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1295. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1296. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1297. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1298. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1299. package/dist/mocks/mockSchema.js.map +1 -1
  1300. package/dist/mocks/mockSearchQueryData.js +2 -2
  1301. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1302. package/dist/mocks/mockShortIo.js.map +1 -1
  1303. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1304. package/dist/mocks/mockSubscription.js.map +1 -1
  1305. package/dist/mocks/mockWiki.js.map +1 -1
  1306. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1307. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1308. package/dist/mocks/mock_file_handle.js.map +1 -1
  1309. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1310. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1311. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1312. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1313. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1314. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1315. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1316. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1317. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1318. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1319. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1320. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1321. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1322. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1323. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1324. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1325. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1326. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1327. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1328. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1329. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1330. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1331. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1332. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1333. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1334. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1335. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1336. package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts +1 -1
  1337. package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
  1338. package/dist/mocks/msw/handlers/searchQueryHandlers.js +6 -3
  1339. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1340. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1341. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1342. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1343. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1344. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1345. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1346. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1347. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1348. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1349. package/dist/mocks/msw/handlers.js.map +1 -1
  1350. package/dist/mocks/msw/server.d.ts +1 -1
  1351. package/dist/mocks/msw/server.d.ts.map +1 -1
  1352. package/dist/mocks/msw/server.js.map +1 -1
  1353. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1354. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1355. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1356. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1357. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1358. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1359. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1360. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1361. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1362. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1363. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1364. package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts +13 -0
  1365. package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts.map +1 -1
  1366. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js +27 -0
  1367. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1368. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1369. package/dist/mocks/query/syn16787123.js.map +1 -1
  1370. package/dist/mocks/query/syn17328596.js.map +1 -1
  1371. package/dist/mocks/query/syn51735464.js.map +1 -1
  1372. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1373. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1374. package/dist/mocks/team/mockTeam.js.map +1 -1
  1375. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1376. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1377. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1378. package/dist/ror-client/index.js.map +1 -1
  1379. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1380. package/dist/stories/ToastDemo.js.map +1 -1
  1381. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1382. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1383. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1384. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1385. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1386. package/dist/style/components/_cards.scss +10 -0
  1387. package/dist/style/components/_data-grid-extra.css +1 -1
  1388. package/dist/style/components/_data-grid-extra.scss +7 -1
  1389. package/dist/style/main.css +1 -1
  1390. package/dist/synapse-client/HttpClient.js.map +1 -1
  1391. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1392. package/dist/synapse-client/SynapseClient.js +499 -505
  1393. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1394. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1395. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1396. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1397. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1398. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1399. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1400. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1401. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1402. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1403. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1404. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1405. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1406. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1407. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1408. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1409. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1410. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1411. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1412. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1413. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1414. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1415. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1416. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1417. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1418. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1419. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1420. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1421. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1422. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1423. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1424. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1425. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1426. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1427. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1428. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1429. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1430. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1431. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1432. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1433. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1434. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1435. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1436. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1437. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1438. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1439. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1440. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1441. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1442. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1443. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1444. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1445. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1446. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1447. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1448. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1449. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1450. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1451. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1452. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1453. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1454. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1455. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1456. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1457. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1458. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1459. package/dist/synapse-queries/ror/index.js.map +1 -1
  1460. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1461. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1462. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1463. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1464. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1465. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1466. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1467. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1468. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1469. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1470. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1471. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1472. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1473. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1474. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1475. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1476. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1477. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1478. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1479. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1480. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1481. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1482. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1483. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1484. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1485. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1486. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1487. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1488. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1489. package/dist/testutils/LocationTracker.js.map +1 -1
  1490. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1491. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1492. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1493. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1494. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1495. package/dist/testutils/vitest.setup.js.map +1 -1
  1496. package/dist/theme/DefaultTheme.js.map +1 -1
  1497. package/dist/theme/ThemeProvider.js.map +1 -1
  1498. package/dist/theme/mergeTheme.js.map +1 -1
  1499. package/dist/theme/palette/Palettes.js.map +1 -1
  1500. package/dist/theme/spreadSx.js.map +1 -1
  1501. package/dist/theme/typography/Link.js.map +1 -1
  1502. package/dist/theme/typography/Typography.js.map +1 -1
  1503. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1504. package/dist/utils/APIConstants.js.map +1 -1
  1505. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1506. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1507. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1508. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1509. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1510. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1511. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1512. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1513. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1514. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1515. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1516. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1517. package/dist/utils/SynapseConstants.js.map +1 -1
  1518. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1519. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1520. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1521. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1522. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1523. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1524. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1525. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1526. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1527. package/dist/utils/context/SynapseContext.js.map +1 -1
  1528. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1529. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1530. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1531. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1532. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1533. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1534. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1535. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1536. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1537. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1538. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1539. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1540. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1541. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1542. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1543. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1544. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1545. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1546. package/dist/utils/functions/StringUtils.js.map +1 -1
  1547. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1548. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1549. package/dist/utils/functions/colorPalette.js.map +1 -1
  1550. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1551. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1552. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1553. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1554. package/dist/utils/functions/getEndpoint.js +3 -3
  1555. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1556. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1557. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1558. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1559. package/dist/utils/functions/getUserData.js.map +1 -1
  1560. package/dist/utils/functions/queryUtils.js.map +1 -1
  1561. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1562. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1563. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1564. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1565. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1566. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1567. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1568. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1569. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1570. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1571. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1572. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1573. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1574. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1575. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1576. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1577. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1578. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1579. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1580. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1581. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1582. package/dist/utils/hooks/useListState.js.map +1 -1
  1583. package/dist/utils/hooks/useLogin.js.map +1 -1
  1584. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1585. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1586. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1587. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1588. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1589. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1590. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1591. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1592. package/dist/utils/hooks/useSet.js.map +1 -1
  1593. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1594. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1595. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1596. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1597. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1598. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1599. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1600. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1601. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1602. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1603. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1604. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1605. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1606. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1607. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1608. package/dist/utils/html/TargetEnum.js.map +1 -1
  1609. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1610. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1611. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1612. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1613. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1614. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1615. package/dist/utils/jsonschema/getType.js.map +1 -1
  1616. package/dist/utils/searchDefaults.js.map +1 -1
  1617. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1618. package/dist/utils/types/IsType.js.map +1 -1
  1619. package/package.json +68 -65
@@ -1 +1 @@
1
- {"version":3,"file":"RequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/RequirementItem.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react'\nimport AccessApprovalCheckMark, {\n RequirementItemStatus,\n} from '../AccessApprovalCheckMark'\nimport { Box, BoxProps, Button, ButtonProps, styled } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nexport type RequirementItemProps = PropsWithChildren<{\n status: RequirementItemStatus\n actions?: ButtonProps[]\n}>\n\nconst RequirementContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'RequirementContainer',\n})({\n display: 'grid',\n gridTemplateRows: '50px auto auto',\n gridTemplateColumns: '30px auto',\n columnGap: '20px',\n alignItems: 'center',\n margin: '1rem 0 2rem',\n})\n\nconst InlineButtonContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'InlineButtonContainer',\n})(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n margin: `${theme.spacing(1)} 0`,\n}))\n\n/**\n * Renders a single requirement item, which includes a checkmark, the requirement text, and any required actions. This\n * component represents one condition (of potentially many) that a user must meet to gain access to data.\n *\n * This component does not make requests to external stores and is side-effect free. Variations in the displayed\n * component are controlled entirely by props\n */\nexport default function RequirementItem(props: RequirementItemProps) {\n const { actions, status, children } = props\n return (\n <RequirementContainer data-testid={'RequirementItem'}>\n <AccessApprovalCheckMark\n status={status}\n sx={{\n gridRow: '1 / span 1',\n gridColumn: '1 / span 1',\n margin: 'auto',\n }}\n />\n <Box\n sx={{\n gridColumn: '2 / span 1',\n gridRow: '1 / span 2',\n alignSelf: 'start',\n mt: '12px',\n }}\n >\n {children}\n </Box>\n {actions && !!actions.length && (\n <>\n {/* This Box renders a vertical line beneath the icon that spans the 2nd row */}\n <Box\n sx={{\n gridColumnStart: 1,\n gridRow: '2 / span 1',\n width: '1px',\n height: '100%',\n backgroundColor: 'grey.400',\n margin: 'auto',\n }}\n />\n {/*\n This Box renders the 'L' shaped line, which is visually connected to the vertical line in the 3rd row\n Placing this in the 3rd row vertically aligns this with the InlineButtonContainer actions\n */}\n <Box\n sx={theme => ({\n gridColumnStart: 1,\n gridRow: '3 / span 1',\n width: '50%',\n height: '60%',\n borderLeft: `1px solid ${theme.palette.grey[400]}`,\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n marginLeft: 'auto',\n marginBottom: 'auto',\n marginRight: '0',\n })}\n />\n </>\n )}\n {actions && !!actions.length && (\n <InlineButtonContainer\n sx={{ gridColumnStart: 2, gridRow: '3 / span 1', mt: 2 }}\n >\n {actions.map((buttonProps, i) => (\n <Button\n key={i}\n disabled={status === RequirementItemStatus.LOADING}\n {...buttonProps}\n />\n ))}\n </InlineButtonContainer>\n )}\n </RequirementContainer>\n )\n}\n"],"mappings":";;;;AAYA,IAAM,IAAkD,EAAO,GAAK,EAClE,OAAO,wBACR,CAAC,CAAC;CACD,SAAS;CACT,kBAAkB;CAClB,qBAAqB;CACrB,WAAW;CACX,YAAY;CACZ,QAAQ;CACT,CAAC,EAEI,IAAmD,EAAO,GAAK,EACnE,OAAO,yBACR,CAAC,EAAE,EAAE,gBAAa;CACjB,SAAS;CACT,KAAK,EAAM,QAAQ,EAAE;CACrB,QAAQ,GAAG,EAAM,QAAQ,EAAE,CAAC;CAC7B,EAAE;AASH,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,YAAS,WAAQ,gBAAa;AACtC,QACE,kBAAC,GAAD;EAAsB,eAAa;YAAnC;GACE,kBAAC,GAAD;IACU;IACR,IAAI;KACF,SAAS;KACT,YAAY;KACZ,QAAQ;KACT;IACD,CAAA;GACF,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,WAAW;KACX,IAAI;KACL;IAEA;IACG,CAAA;GACL,KAAW,CAAC,CAAC,EAAQ,UACpB,kBAAA,GAAA,EAAA,UAAA,CAEE,kBAAC,GAAD,EACE,IAAI;IACF,iBAAiB;IACjB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,iBAAiB;IACjB,QAAQ;IACT,EACD,CAAA,EAKF,kBAAC,GAAD,EACE,KAAI,OAAU;IACZ,iBAAiB;IACjB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,YAAY,aAAa,EAAM,QAAQ,KAAK;IAC5C,cAAc,aAAa,EAAM,QAAQ,KAAK;IAC9C,YAAY;IACZ,cAAc;IACd,aAAa;IACd,GACD,CAAA,CACD,EAAA,CAAA;GAEJ,KAAW,CAAC,CAAC,EAAQ,UACpB,kBAAC,GAAD;IACE,IAAI;KAAE,iBAAiB;KAAG,SAAS;KAAc,IAAI;KAAG;cAEvD,EAAQ,KAAK,GAAa,MACzB,kBAAC,GAAD;KAEE,UAAU,MAAW,EAAsB;KAC3C,GAAI;KACJ,EAHK,EAGL,CACF;IACoB,CAAA;GAEL"}
1
+ {"version":3,"file":"RequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/RequirementItem.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react'\nimport AccessApprovalCheckMark, {\n RequirementItemStatus,\n} from '../AccessApprovalCheckMark'\nimport { Box, BoxProps, Button, ButtonProps, styled } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nexport type RequirementItemProps = PropsWithChildren<{\n status: RequirementItemStatus\n actions?: ButtonProps[]\n}>\n\nconst RequirementContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'RequirementContainer',\n})({\n display: 'grid',\n gridTemplateRows: '50px auto auto',\n gridTemplateColumns: '30px auto',\n columnGap: '20px',\n alignItems: 'center',\n margin: '1rem 0 2rem',\n})\n\nconst InlineButtonContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'InlineButtonContainer',\n})(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n margin: `${theme.spacing(1)} 0`,\n}))\n\n/**\n * Renders a single requirement item, which includes a checkmark, the requirement text, and any required actions. This\n * component represents one condition (of potentially many) that a user must meet to gain access to data.\n *\n * This component does not make requests to external stores and is side-effect free. Variations in the displayed\n * component are controlled entirely by props\n */\nexport default function RequirementItem(props: RequirementItemProps) {\n const { actions, status, children } = props\n return (\n <RequirementContainer data-testid={'RequirementItem'}>\n <AccessApprovalCheckMark\n status={status}\n sx={{\n gridRow: '1 / span 1',\n gridColumn: '1 / span 1',\n margin: 'auto',\n }}\n />\n <Box\n sx={{\n gridColumn: '2 / span 1',\n gridRow: '1 / span 2',\n alignSelf: 'start',\n mt: '12px',\n }}\n >\n {children}\n </Box>\n {actions && !!actions.length && (\n <>\n {/* This Box renders a vertical line beneath the icon that spans the 2nd row */}\n <Box\n sx={{\n gridColumnStart: 1,\n gridRow: '2 / span 1',\n width: '1px',\n height: '100%',\n backgroundColor: 'grey.400',\n margin: 'auto',\n }}\n />\n {/*\n This Box renders the 'L' shaped line, which is visually connected to the vertical line in the 3rd row\n Placing this in the 3rd row vertically aligns this with the InlineButtonContainer actions\n */}\n <Box\n sx={theme => ({\n gridColumnStart: 1,\n gridRow: '3 / span 1',\n width: '50%',\n height: '60%',\n borderLeft: `1px solid ${theme.palette.grey[400]}`,\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n marginLeft: 'auto',\n marginBottom: 'auto',\n marginRight: '0',\n })}\n />\n </>\n )}\n {actions && !!actions.length && (\n <InlineButtonContainer\n sx={{ gridColumnStart: 2, gridRow: '3 / span 1', mt: 2 }}\n >\n {actions.map((buttonProps, i) => (\n <Button\n key={i}\n disabled={status === RequirementItemStatus.LOADING}\n {...buttonProps}\n />\n ))}\n </InlineButtonContainer>\n )}\n </RequirementContainer>\n )\n}\n"],"mappings":";;;;AAYA,IAAM,IAAkD,EAAO,GAAK,EAClE,OAAO,uBACT,CAAC,EAAE;CACD,SAAS;CACT,kBAAkB;CAClB,qBAAqB;CACrB,WAAW;CACX,YAAY;CACZ,QAAQ;AACV,CAAC,GAEK,IAAmD,EAAO,GAAK,EACnE,OAAO,wBACT,CAAC,GAAG,EAAE,gBAAa;CACjB,SAAS;CACT,KAAK,EAAM,QAAQ,CAAC;CACpB,QAAQ,GAAG,EAAM,QAAQ,CAAC,EAAE;AAC9B,EAAE;AASF,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,YAAS,WAAQ,gBAAa;CACtC,OACE,kBAAC,GAAD;EAAsB,eAAa;YAAnC;GACE,kBAAC,GAAD;IACU;IACR,IAAI;KACF,SAAS;KACT,YAAY;KACZ,QAAQ;IACV;GACD,CAAA;GACD,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,WAAW;KACX,IAAI;IACN;IAEC;GACE,CAAA;GACJ,KAAW,CAAC,CAAC,EAAQ,UACpB,kBAAA,GAAA,EAAA,UAAA,CAEE,kBAAC,GAAD,EACE,IAAI;IACF,iBAAiB;IACjB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,iBAAiB;IACjB,QAAQ;GACV,EACD,CAAA,GAKD,kBAAC,GAAD,EACE,KAAI,OAAU;IACZ,iBAAiB;IACjB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,YAAY,aAAa,EAAM,QAAQ,KAAK;IAC5C,cAAc,aAAa,EAAM,QAAQ,KAAK;IAC9C,YAAY;IACZ,cAAc;IACd,aAAa;GACf,GACD,CAAA,CACD,EAAA,CAAA;GAEH,KAAW,CAAC,CAAC,EAAQ,UACpB,kBAAC,GAAD;IACE,IAAI;KAAE,iBAAiB;KAAG,SAAS;KAAc,IAAI;IAAE;cAEtD,EAAQ,KAAK,GAAa,MACzB,kBAAC,GAAD;KAEE,UAAU,MAAW,EAAsB;KAC3C,GAAI;IACL,GAHM,CAGN,CACF;GACoB,CAAA;EAEL;;AAE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelfSignAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.tsx"],"sourcesContent":["import {\n useCreateAccessApproval,\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n useGetCurrentUserBundle,\n useGetCurrentUserProfile,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { isTermsOfUseAccessRequirement } from '@/utils/types/IsType'\nimport { Alert, Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ApprovalState,\n CreateAccessApprovalRequest,\n SelfSignAccessRequirement,\n TermsOfUseAccessRequirement,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../../Markdown/MarkdownSynapse'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\nexport type SelfSignAccessRequirementItemProps = {\n accessRequirement: SelfSignAccessRequirement | TermsOfUseAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for an self-sign Access Requirement, including {@link SelfSignAccessRequirement} or\n * {@link TermsOfUseAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s, see {@link RequestDataAccess}\n */\nexport default function SelfSignAccessRequirementItem(\n props: SelfSignAccessRequirementItemProps,\n) {\n const { accessRequirement, onHide } = props\n const { isAuthenticated } = useSynapseContext()\n const isTermsOfUse = isTermsOfUseAccessRequirement(accessRequirement)\n\n const { data: user } = useGetCurrentUserProfile()\n const { data: userBundle } = useGetCurrentUserBundle()\n\n const certificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isCertifiedUserRequired &&\n !userBundle.isCertified\n const verificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isValidatedProfileRequired &&\n !userBundle.isVerified\n\n const { data: accessRequirementStatus, isLoading: isLoadingStatus } =\n useGetAccessRequirementStatus(String(accessRequirement.id))\n\n const isApproved = accessRequirementStatus?.isApproved\n\n const { data: wikiPage } = useGetAccessRequirementWikiPageKey(\n accessRequirement.id.toString(),\n // TermsOfUse ARs may have the terms embedded in the AR or an associated Wiki.\n )\n\n const [showTerms, setShowTerms] = useState<boolean>(false)\n\n const {\n mutate: createAccessApproval,\n isPending: createAccessApprovalIsPending,\n error,\n } = useCreateAccessApproval({\n onError: err => {\n console.error('Error creating access approval: ', err)\n },\n })\n\n const onAcceptClicked = () => {\n const accessApprovalRequest: CreateAccessApprovalRequest = {\n requirementId: accessRequirement?.id,\n submitterId: user?.ownerId!,\n accessorId: user?.ownerId!,\n state: ApprovalState.APPROVED,\n }\n\n createAccessApproval(accessApprovalRequest)\n }\n\n let renderedTerms = <></>\n if (isTermsOfUse && accessRequirement.termsOfUse) {\n renderedTerms = <MarkdownSynapse markdown={accessRequirement.termsOfUse} />\n } else if (wikiPage) {\n renderedTerms = (\n <MarkdownSynapse\n wikiId={wikiPage?.wikiPageId}\n ownerId={wikiPage?.ownerObjectId}\n objectType={wikiPage?.ownerObjectType}\n />\n )\n }\n let actions: ButtonProps[] | undefined = undefined\n\n if (isAuthenticated && !isApproved) {\n let acceptButtonText = 'I Accept Terms of Use'\n let acceptButtonDisabled = false\n if (certificationRequirementNotMet || verificationRequirementNotMet) {\n acceptButtonDisabled = true\n acceptButtonText = `You must ${\n certificationRequirementNotMet ? 'be certified' : ''\n }${\n certificationRequirementNotMet && verificationRequirementNotMet\n ? ' and '\n : ''\n }${\n verificationRequirementNotMet ? 'have a validated user profile' : ''\n } to accept`\n }\n\n actions = [\n {\n variant: 'outlined',\n onClick: onAcceptClicked,\n children: acceptButtonText,\n disabled: createAccessApprovalIsPending || acceptButtonDisabled,\n },\n {\n variant: 'text',\n onClick: onHide,\n children: 'I do not accept',\n },\n ]\n }\n\n return (\n <RequirementItem\n data-testid=\"SelfSignAccessRequirementItem\"\n status={\n isLoadingStatus\n ? RequirementItemStatus.LOADING\n : isApproved\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n actions={actions}\n >\n {isApproved ? (\n <>\n <Typography variant={'body1'}>\n You have accepted the terms of use.{' '}\n <Link role=\"button\" onClick={() => setShowTerms(!showTerms)}>\n {showTerms ? 'Hide Terms' : 'View Terms'}\n </Link>\n </Typography>\n {showTerms && <Box sx={{ my: 1 }}>{renderedTerms}</Box>}\n </>\n ) : (\n renderedTerms\n )}\n {error && <Alert severity=\"error\">{error.reason}</Alert>}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAgCA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,cAAW,GAChC,EAAE,uBAAoB,GAAmB,EACzC,IAAe,EAA8B,EAAkB,EAE/D,EAAE,MAAM,MAAS,GAA0B,EAC3C,EAAE,MAAM,MAAe,GAAyB,EAEhD,IACJ,KACA,KACA,CAAC,KACD,EAAkB,2BAClB,CAAC,EAAW,aACR,IACJ,KACA,KACA,CAAC,KACD,EAAkB,8BAClB,CAAC,EAAW,YAER,EAAE,MAAM,GAAyB,WAAW,MAChD,EAA8B,OAAO,EAAkB,GAAG,CAAC,EAEvD,IAAa,GAAyB,YAEtC,EAAE,MAAM,MAAa,EACzB,EAAkB,GAAG,UAAU,CAEhC,EAEK,CAAC,GAAW,KAAgB,EAAkB,GAAM,EAEpD,EACJ,QAAQ,GACR,WAAW,GACX,aACE,EAAwB,EAC1B,UAAS,MAAO;AACd,UAAQ,MAAM,oCAAoC,EAAI;IAEzD,CAAC,EAEI,UAAwB;AAQ5B,IAAqB;GANnB,eAAe,GAAmB;GAClC,aAAa,GAAM;GACnB,YAAY,GAAM;GAClB,OAAO,EAAc;GAGF,CAAsB;IAGzC,IAAgB,kBAAA,GAAA,EAAK,CAAA;AACzB,CAAI,KAAgB,EAAkB,aACpC,IAAgB,kBAAC,GAAD,EAAiB,UAAU,EAAkB,YAAc,CAAA,GAClE,MACT,IACE,kBAAC,GAAD;EACE,QAAQ,GAAU;EAClB,SAAS,GAAU;EACnB,YAAY,GAAU;EACtB,CAAA;CAGN,IAAI;AAEJ,KAAI,KAAmB,CAAC,GAAY;EAClC,IAAI,IAAmB,yBACnB,IAAuB;AAc3B,GAbI,KAAkC,OACpC,IAAuB,IACvB,IAAmB,YACjB,IAAiC,iBAAiB,KAElD,KAAkC,IAC9B,UACA,KAEJ,IAAgC,kCAAkC,GACnE,cAGH,IAAU,CACR;GACE,SAAS;GACT,SAAS;GACT,UAAU;GACV,UAAU,KAAiC;GAC5C,EACD;GACE,SAAS;GACT,SAAS;GACT,UAAU;GACX,CACF;;AAGH,QACE,kBAAC,GAAD;EACE,eAAY;EACZ,QACE,IACI,EAAsB,UACtB,IACE,EAAsB,WACtB,EAAsB;EAErB;YATX,CAWG,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;aAArB;IAA8B;IACQ;IACpC,kBAAC,GAAD;KAAM,MAAK;KAAS,eAAe,EAAa,CAAC,EAAU;eACxD,IAAY,eAAe;KACvB,CAAA;IACI;MACZ,KAAa,kBAAC,GAAD;GAAK,IAAI,EAAE,IAAI,GAAG;aAAG;GAAoB,CAAA,CACtD,EAAA,CAAA,GAEH,GAED,KAAS,kBAAC,GAAD;GAAO,UAAS;aAAS,EAAM;GAAe,CAAA,CACxC"}
1
+ {"version":3,"file":"SelfSignAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.tsx"],"sourcesContent":["import {\n useCreateAccessApproval,\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n useGetCurrentUserBundle,\n useGetCurrentUserProfile,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { isTermsOfUseAccessRequirement } from '@/utils/types/IsType'\nimport { Alert, Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ApprovalState,\n CreateAccessApprovalRequest,\n SelfSignAccessRequirement,\n TermsOfUseAccessRequirement,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../../Markdown/MarkdownSynapse'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\nexport type SelfSignAccessRequirementItemProps = {\n accessRequirement: SelfSignAccessRequirement | TermsOfUseAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for an self-sign Access Requirement, including {@link SelfSignAccessRequirement} or\n * {@link TermsOfUseAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s, see {@link RequestDataAccess}\n */\nexport default function SelfSignAccessRequirementItem(\n props: SelfSignAccessRequirementItemProps,\n) {\n const { accessRequirement, onHide } = props\n const { isAuthenticated } = useSynapseContext()\n const isTermsOfUse = isTermsOfUseAccessRequirement(accessRequirement)\n\n const { data: user } = useGetCurrentUserProfile()\n const { data: userBundle } = useGetCurrentUserBundle()\n\n const certificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isCertifiedUserRequired &&\n !userBundle.isCertified\n const verificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isValidatedProfileRequired &&\n !userBundle.isVerified\n\n const { data: accessRequirementStatus, isLoading: isLoadingStatus } =\n useGetAccessRequirementStatus(String(accessRequirement.id))\n\n const isApproved = accessRequirementStatus?.isApproved\n\n const { data: wikiPage } = useGetAccessRequirementWikiPageKey(\n accessRequirement.id.toString(),\n // TermsOfUse ARs may have the terms embedded in the AR or an associated Wiki.\n )\n\n const [showTerms, setShowTerms] = useState<boolean>(false)\n\n const {\n mutate: createAccessApproval,\n isPending: createAccessApprovalIsPending,\n error,\n } = useCreateAccessApproval({\n onError: err => {\n console.error('Error creating access approval: ', err)\n },\n })\n\n const onAcceptClicked = () => {\n const accessApprovalRequest: CreateAccessApprovalRequest = {\n requirementId: accessRequirement?.id,\n submitterId: user?.ownerId!,\n accessorId: user?.ownerId!,\n state: ApprovalState.APPROVED,\n }\n\n createAccessApproval(accessApprovalRequest)\n }\n\n let renderedTerms = <></>\n if (isTermsOfUse && accessRequirement.termsOfUse) {\n renderedTerms = <MarkdownSynapse markdown={accessRequirement.termsOfUse} />\n } else if (wikiPage) {\n renderedTerms = (\n <MarkdownSynapse\n wikiId={wikiPage?.wikiPageId}\n ownerId={wikiPage?.ownerObjectId}\n objectType={wikiPage?.ownerObjectType}\n />\n )\n }\n let actions: ButtonProps[] | undefined = undefined\n\n if (isAuthenticated && !isApproved) {\n let acceptButtonText = 'I Accept Terms of Use'\n let acceptButtonDisabled = false\n if (certificationRequirementNotMet || verificationRequirementNotMet) {\n acceptButtonDisabled = true\n acceptButtonText = `You must ${\n certificationRequirementNotMet ? 'be certified' : ''\n }${\n certificationRequirementNotMet && verificationRequirementNotMet\n ? ' and '\n : ''\n }${\n verificationRequirementNotMet ? 'have a validated user profile' : ''\n } to accept`\n }\n\n actions = [\n {\n variant: 'outlined',\n onClick: onAcceptClicked,\n children: acceptButtonText,\n disabled: createAccessApprovalIsPending || acceptButtonDisabled,\n },\n {\n variant: 'text',\n onClick: onHide,\n children: 'I do not accept',\n },\n ]\n }\n\n return (\n <RequirementItem\n data-testid=\"SelfSignAccessRequirementItem\"\n status={\n isLoadingStatus\n ? RequirementItemStatus.LOADING\n : isApproved\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n actions={actions}\n >\n {isApproved ? (\n <>\n <Typography variant={'body1'}>\n You have accepted the terms of use.{' '}\n <Link role=\"button\" onClick={() => setShowTerms(!showTerms)}>\n {showTerms ? 'Hide Terms' : 'View Terms'}\n </Link>\n </Typography>\n {showTerms && <Box sx={{ my: 1 }}>{renderedTerms}</Box>}\n </>\n ) : (\n renderedTerms\n )}\n {error && <Alert severity=\"error\">{error.reason}</Alert>}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAgCA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,cAAW,GAChC,EAAE,uBAAoB,EAAkB,GACxC,IAAe,EAA8B,CAAiB,GAE9D,EAAE,MAAM,MAAS,EAAyB,GAC1C,EAAE,MAAM,MAAe,EAAwB,GAE/C,IACJ,KACA,KACA,CAAC,KACD,EAAkB,2BAClB,CAAC,EAAW,aACR,IACJ,KACA,KACA,CAAC,KACD,EAAkB,8BAClB,CAAC,EAAW,YAER,EAAE,MAAM,GAAyB,WAAW,MAChD,EAA8B,OAAO,EAAkB,EAAE,CAAC,GAEtD,IAAa,GAAyB,YAEtC,EAAE,MAAM,MAAa,EACzB,EAAkB,GAAG,SAAS,CAEhC,GAEM,CAAC,GAAW,KAAgB,EAAkB,EAAK,GAEnD,EACJ,QAAQ,GACR,WAAW,GACX,aACE,EAAwB,EAC1B,UAAS,MAAO;EACd,QAAQ,MAAM,oCAAoC,CAAG;CACvD,EACF,CAAC,GAEK,UAAwB;EAQ5B,EAAqB;GANnB,eAAe,GAAmB;GAClC,aAAa,GAAM;GACnB,YAAY,GAAM;GAClB,OAAO,EAAc;EAGF,CAAqB;CAC5C,GAEI,IAAgB,kBAAA,GAAA,CAAI,CAAA;CACxB,AAAI,KAAgB,EAAkB,aACpC,IAAgB,kBAAC,GAAD,EAAiB,UAAU,EAAkB,WAAa,CAAA,IACjE,MACT,IACE,kBAAC,GAAD;EACE,QAAQ,GAAU;EAClB,SAAS,GAAU;EACnB,YAAY,GAAU;CACvB,CAAA;CAGL,IAAI;CAEJ,IAAI,KAAmB,CAAC,GAAY;EAClC,IAAI,IAAmB,yBACnB,IAAuB;EAc3B,CAbI,KAAkC,OACpC,IAAuB,IACvB,IAAmB,YACjB,IAAiC,iBAAiB,KAElD,KAAkC,IAC9B,UACA,KAEJ,IAAgC,kCAAkC,GACnE,cAGH,IAAU,CACR;GACE,SAAS;GACT,SAAS;GACT,UAAU;GACV,UAAU,KAAiC;EAC7C,GACA;GACE,SAAS;GACT,SAAS;GACT,UAAU;EACZ,CACF;CACF;CAEA,OACE,kBAAC,GAAD;EACE,eAAY;EACZ,QACE,IACI,EAAsB,UACtB,IACE,EAAsB,WACtB,EAAsB;EAErB;YATX,CAWG,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;aAArB;IAA8B;IACQ;IACpC,kBAAC,GAAD;KAAM,MAAK;KAAS,eAAe,EAAa,CAAC,CAAS;eACvD,IAAY,eAAe;IACxB,CAAA;GACI;MACX,KAAa,kBAAC,GAAD;GAAK,IAAI,EAAE,IAAI,EAAE;aAAI;EAAmB,CAAA,CACtD,EAAA,CAAA,IAEF,GAED,KAAS,kBAAC,GAAD;GAAO,UAAS;aAAS,EAAM;EAAc,CAAA,CACxC;;AAErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TwoFactorAuthEnabledRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.tsx"],"sourcesContent":["import { useGetTwoFactorEnrollmentStatus } from '@/synapse-queries/auth/useTwoFactorEnrollment'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { ButtonProps, Typography } from '@mui/material'\nimport { TwoFactorAuthStatus } from '@sage-bionetworks/synapse-types'\nimport { TWO_FACTOR_DOCS_LINK } from '../../Authentication/TwoFactorEnrollmentForm'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem, { RequirementItemProps } from './RequirementItem'\n\nconst TWO_FACTOR_ENROLLMENT_LINK = `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n)}TwoFactorAuth:Enroll`\n\nfunction getState(\n isAuthenticated: boolean,\n isLoading: boolean,\n status?: TwoFactorAuthStatus['status'],\n): RequirementItemStatus {\n if (!isAuthenticated) {\n return RequirementItemStatus.LOCKED\n }\n if (isLoading) {\n return RequirementItemStatus.LOADING\n }\n return status === 'ENABLED'\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n}\n\n/**\n * Displays a data access request requirement that prompts the user to enable two-factor authentication.\n */\nexport default function TwoFactorAuthEnabledRequirement() {\n const { isAuthenticated } = useSynapseContext()\n\n const { data: twoFactorAuthStatus, isLoading } =\n useGetTwoFactorEnrollmentStatus({\n enabled: isAuthenticated,\n // If required, we send the user to a new tab to complete 2FA enrollment\n // Refetch on window focus so the enrollment state is immediately updated when they return to this tab\n refetchOnWindowFocus: true,\n // Refetch won't happen unless staleTime is less than the amount of time since last fetch. 5sec seems reasonable\n staleTime: 5000,\n })\n\n const actions: RequirementItemProps['actions'] =\n twoFactorAuthStatus?.status === 'DISABLED'\n ? [\n {\n variant: 'outlined',\n href: TWO_FACTOR_ENROLLMENT_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: 'Activate 2FA (opens a new tab)',\n } as ButtonProps,\n {\n variant: 'text',\n href: TWO_FACTOR_DOCS_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: '2FA Documentation',\n } as ButtonProps,\n ]\n : undefined\n\n return (\n <RequirementItem\n status={getState(isAuthenticated, isLoading, twoFactorAuthStatus?.status)}\n actions={actions}\n >\n <Typography variant={'body1'}>\n You must have Two-factor Authentication (2FA) active on your Synapse\n account in order to download the requested files\n </Typography>\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;AAYA,IAAM,IAA6B,GAAG,EACpC,EAAuB,gBACxB,CAAC;AAEF,SAAS,EACP,GACA,GACA,GACuB;AAOvB,QANK,IAGD,IACK,EAAsB,UAExB,MAAW,YACd,EAAsB,WACtB,EAAsB,SAPjB,EAAsB;;AAajC,SAAwB,IAAkC;CACxD,IAAM,EAAE,uBAAoB,GAAmB,EAEzC,EAAE,MAAM,GAAqB,iBACjC,EAAgC;EAC9B,SAAS;EAGT,sBAAsB;EAEtB,WAAW;EACZ,CAAC,EAEE,IACJ,GAAqB,WAAW,aAC5B,CACE;EACE,SAAS;EACT,MAAM;EACN,QAAQ;EACR,KAAK;EACL,UAAU;EACX,EACD;EACE,SAAS;EACT,MAAM;EACN,QAAQ;EACR,KAAK;EACL,UAAU;EACX,CACF,GACD,KAAA;AAEN,QACE,kBAAC,GAAD;EACE,QAAQ,EAAS,GAAiB,GAAW,GAAqB,OAAO;EAChE;YAET,kBAAC,GAAD;GAAY,SAAS;aAAS;GAGjB,CAAA;EACG,CAAA"}
1
+ {"version":3,"file":"TwoFactorAuthEnabledRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.tsx"],"sourcesContent":["import { useGetTwoFactorEnrollmentStatus } from '@/synapse-queries/auth/useTwoFactorEnrollment'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { ButtonProps, Typography } from '@mui/material'\nimport { TwoFactorAuthStatus } from '@sage-bionetworks/synapse-types'\nimport { TWO_FACTOR_DOCS_LINK } from '../../Authentication/TwoFactorEnrollmentForm'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem, { RequirementItemProps } from './RequirementItem'\n\nconst TWO_FACTOR_ENROLLMENT_LINK = `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n)}TwoFactorAuth:Enroll`\n\nfunction getState(\n isAuthenticated: boolean,\n isLoading: boolean,\n status?: TwoFactorAuthStatus['status'],\n): RequirementItemStatus {\n if (!isAuthenticated) {\n return RequirementItemStatus.LOCKED\n }\n if (isLoading) {\n return RequirementItemStatus.LOADING\n }\n return status === 'ENABLED'\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n}\n\n/**\n * Displays a data access request requirement that prompts the user to enable two-factor authentication.\n */\nexport default function TwoFactorAuthEnabledRequirement() {\n const { isAuthenticated } = useSynapseContext()\n\n const { data: twoFactorAuthStatus, isLoading } =\n useGetTwoFactorEnrollmentStatus({\n enabled: isAuthenticated,\n // If required, we send the user to a new tab to complete 2FA enrollment\n // Refetch on window focus so the enrollment state is immediately updated when they return to this tab\n refetchOnWindowFocus: true,\n // Refetch won't happen unless staleTime is less than the amount of time since last fetch. 5sec seems reasonable\n staleTime: 5000,\n })\n\n const actions: RequirementItemProps['actions'] =\n twoFactorAuthStatus?.status === 'DISABLED'\n ? [\n {\n variant: 'outlined',\n href: TWO_FACTOR_ENROLLMENT_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: 'Activate 2FA (opens a new tab)',\n } as ButtonProps,\n {\n variant: 'text',\n href: TWO_FACTOR_DOCS_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: '2FA Documentation',\n } as ButtonProps,\n ]\n : undefined\n\n return (\n <RequirementItem\n status={getState(isAuthenticated, isLoading, twoFactorAuthStatus?.status)}\n actions={actions}\n >\n <Typography variant={'body1'}>\n You must have Two-factor Authentication (2FA) active on your Synapse\n account in order to download the requested files\n </Typography>\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;AAYA,IAAM,IAA6B,GAAG,EACpC,EAAuB,eACzB,EAAE;AAEF,SAAS,EACP,GACA,GACA,GACuB;CAOvB,OANK,IAGD,IACK,EAAsB,UAExB,MAAW,YACd,EAAsB,WACtB,EAAsB,SAPjB,EAAsB;AAQjC;AAKA,SAAwB,IAAkC;CACxD,IAAM,EAAE,uBAAoB,EAAkB,GAExC,EAAE,MAAM,GAAqB,iBACjC,EAAgC;EAC9B,SAAS;EAGT,sBAAsB;EAEtB,WAAW;CACb,CAAC,GAEG,IACJ,GAAqB,WAAW,aAC5B,CACE;EACE,SAAS;EACT,MAAM;EACN,QAAQ;EACR,KAAK;EACL,UAAU;CACZ,GACA;EACE,SAAS;EACT,MAAM;EACN,QAAQ;EACR,KAAK;EACL,UAAU;CACZ,CACF,IACA,KAAA;CAEN,OACE,kBAAC,GAAD;EACE,QAAQ,EAAS,GAAiB,GAAW,GAAqB,MAAM;EAC/D;YAET,kBAAC,GAAD;GAAY,SAAS;aAAS;EAGlB,CAAA;CACG,CAAA;AAErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"UnmanagedACTAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.tsx"],"sourcesContent":["import {\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ACTAccessRequirement,\n RestrictableObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../../Markdown/MarkdownSynapse'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\nexport type UnmanagedACTAccessRequirementItemProps = {\n subjectId?: string\n subjectType?: RestrictableObjectType\n accessRequirement: ACTAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for the deprecated {@link ACTAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s, see {@link ManagedACTAccessRequirementItem}\n *\n * For {@link SelfSignAccessRequirement} and {@link TermsOfUseAccessRequirement}, see {@link SelfSignAccessRequirementItem}\n */\nexport default function UnmanagedACTAccessRequirementItem(\n props: UnmanagedACTAccessRequirementItemProps,\n) {\n const { accessRequirement, subjectId, subjectType, onHide } = props\n const { isAuthenticated } = useSynapseContext()\n\n const { data: accessRequirementStatus, isLoading: isLoadingStatus } =\n useGetAccessRequirementStatus(String(accessRequirement.id))\n\n const { data: wikiPage } = useGetAccessRequirementWikiPageKey(\n accessRequirement.id.toString(),\n // ACT ARs may have the contact info embedded in the AR or may have an associated Wiki.\n )\n\n const isApproved = accessRequirementStatus?.isApproved\n\n const [showACTContactInfoInstructions, setShowACTContactInfoInstructions] =\n useState<boolean>(false)\n\n let acceptButtonText = ''\n if (\n typeof window !== 'undefined' &&\n (window.location.hostname === 'www.synapse.org' ||\n window.location.hostname === 'staging.synapse.org')\n ) {\n acceptButtonText = 'Request access'\n } else {\n acceptButtonText = 'Request access via Synapse.org'\n }\n\n const gotoSynapseAccessRequirementPage = () => {\n const subjectTypeFilter = subjectType ? `&TYPE=${subjectType}` : ''\n const subjectIdFilter = subjectId ? `&ID=${subjectId}` : ''\n window.open(\n `${PRODUCTION_ENDPOINT_CONFIG.PORTAL}AccessRequirement:AR_ID=${accessRequirement.id}${subjectTypeFilter}${subjectIdFilter}`,\n )\n }\n const onAcceptClicked = () => {\n gotoSynapseAccessRequirementPage()\n // PORTALS-1483: and close the dialog.\n if (onHide) {\n onHide()\n }\n }\n\n const actContactInfo = accessRequirement.actContactInfo\n\n let actions: ButtonProps[] | undefined = undefined\n\n if (isAuthenticated && !isApproved) {\n actions = [\n {\n variant: 'outlined',\n onClick: onAcceptClicked,\n children: acceptButtonText,\n },\n {\n variant: 'text',\n onClick: onHide,\n children: 'I do not accept',\n },\n ]\n }\n\n let renderedTerms = <></>\n if (actContactInfo) {\n renderedTerms = <MarkdownSynapse markdown={actContactInfo} />\n } else if (wikiPage) {\n renderedTerms = (\n <MarkdownSynapse\n wikiId={wikiPage?.wikiPageId}\n ownerId={wikiPage?.ownerObjectId}\n objectType={wikiPage?.ownerObjectType}\n />\n )\n }\n return (\n <RequirementItem\n data-testid={'UnmanagedACTAccessRequirementItem'}\n status={\n isLoadingStatus\n ? RequirementItemStatus.LOADING\n : isApproved\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n actions={actions}\n >\n {isApproved ? (\n <>\n <Typography variant={'body1'}>\n Your data access request has been approved.{' '}\n <Link\n role={'button'}\n onClick={() =>\n setShowACTContactInfoInstructions(\n !showACTContactInfoInstructions,\n )\n }\n >\n {showACTContactInfoInstructions\n ? 'Hide Instructions'\n : 'View Instructions'}\n </Link>\n </Typography>\n {showACTContactInfoInstructions && (\n <Box sx={{ my: 1 }}>{renderedTerms}</Box>\n )}\n </>\n ) : (\n renderedTerms\n )}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;;;AA8BA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,cAAW,gBAAa,cAAW,GACxD,EAAE,uBAAoB,GAAmB,EAEzC,EAAE,MAAM,GAAyB,WAAW,MAChD,EAA8B,OAAO,EAAkB,GAAG,CAAC,EAEvD,EAAE,MAAM,MAAa,EACzB,EAAkB,GAAG,UAAU,CAEhC,EAEK,IAAa,GAAyB,YAEtC,CAAC,GAAgC,KACrC,EAAkB,GAAM,EAEtB,IAAmB;AACvB,CAOE,IANA,OAAO,SAAW,QACjB,OAAO,SAAS,aAAa,qBAC5B,OAAO,SAAS,aAAa,yBAEZ,mBAEA;CAGrB,IAAM,UAAyC;EAC7C,IAAM,IAAoB,IAAc,SAAS,MAAgB,IAC3D,IAAkB,IAAY,OAAO,MAAc;AACzD,SAAO,KACL,GAAG,EAA2B,OAAO,0BAA0B,EAAkB,KAAK,IAAoB,IAC3G;IAEG,UAAwB;AAG5B,EAFA,GAAkC,EAE9B,KACF,GAAQ;IAIN,IAAiB,EAAkB,gBAErC;AAEJ,CAAI,KAAmB,CAAC,MACtB,IAAU,CACR;EACE,SAAS;EACT,SAAS;EACT,UAAU;EACX,EACD;EACE,SAAS;EACT,SAAS;EACT,UAAU;EACX,CACF;CAGH,IAAI,IAAgB,kBAAA,GAAA,EAAK,CAAA;AAYzB,QAXI,IACF,IAAgB,kBAAC,GAAD,EAAiB,UAAU,GAAkB,CAAA,GACpD,MACT,IACE,kBAAC,GAAD;EACE,QAAQ,GAAU;EAClB,SAAS,GAAU;EACnB,YAAY,GAAU;EACtB,CAAA,GAIJ,kBAAC,GAAD;EACE,eAAa;EACb,QACE,IACI,EAAsB,UACtB,IACE,EAAsB,WACtB,EAAsB;EAErB;YAER,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;aAArB;IAA8B;IACgB;IAC5C,kBAAC,GAAD;KACE,MAAM;KACN,eACE,EACE,CAAC,EACF;eAGF,IACG,sBACA;KACC,CAAA;IACI;MACZ,KACC,kBAAC,GAAD;GAAK,IAAI,EAAE,IAAI,GAAG;aAAG;GAAoB,CAAA,CAE1C,EAAA,CAAA,GAEH;EAEc,CAAA"}
1
+ {"version":3,"file":"UnmanagedACTAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.tsx"],"sourcesContent":["import {\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ACTAccessRequirement,\n RestrictableObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../../Markdown/MarkdownSynapse'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\nexport type UnmanagedACTAccessRequirementItemProps = {\n subjectId?: string\n subjectType?: RestrictableObjectType\n accessRequirement: ACTAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for the deprecated {@link ACTAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s, see {@link ManagedACTAccessRequirementItem}\n *\n * For {@link SelfSignAccessRequirement} and {@link TermsOfUseAccessRequirement}, see {@link SelfSignAccessRequirementItem}\n */\nexport default function UnmanagedACTAccessRequirementItem(\n props: UnmanagedACTAccessRequirementItemProps,\n) {\n const { accessRequirement, subjectId, subjectType, onHide } = props\n const { isAuthenticated } = useSynapseContext()\n\n const { data: accessRequirementStatus, isLoading: isLoadingStatus } =\n useGetAccessRequirementStatus(String(accessRequirement.id))\n\n const { data: wikiPage } = useGetAccessRequirementWikiPageKey(\n accessRequirement.id.toString(),\n // ACT ARs may have the contact info embedded in the AR or may have an associated Wiki.\n )\n\n const isApproved = accessRequirementStatus?.isApproved\n\n const [showACTContactInfoInstructions, setShowACTContactInfoInstructions] =\n useState<boolean>(false)\n\n let acceptButtonText = ''\n if (\n typeof window !== 'undefined' &&\n (window.location.hostname === 'www.synapse.org' ||\n window.location.hostname === 'staging.synapse.org')\n ) {\n acceptButtonText = 'Request access'\n } else {\n acceptButtonText = 'Request access via Synapse.org'\n }\n\n const gotoSynapseAccessRequirementPage = () => {\n const subjectTypeFilter = subjectType ? `&TYPE=${subjectType}` : ''\n const subjectIdFilter = subjectId ? `&ID=${subjectId}` : ''\n window.open(\n `${PRODUCTION_ENDPOINT_CONFIG.PORTAL}AccessRequirement:AR_ID=${accessRequirement.id}${subjectTypeFilter}${subjectIdFilter}`,\n )\n }\n const onAcceptClicked = () => {\n gotoSynapseAccessRequirementPage()\n // PORTALS-1483: and close the dialog.\n if (onHide) {\n onHide()\n }\n }\n\n const actContactInfo = accessRequirement.actContactInfo\n\n let actions: ButtonProps[] | undefined = undefined\n\n if (isAuthenticated && !isApproved) {\n actions = [\n {\n variant: 'outlined',\n onClick: onAcceptClicked,\n children: acceptButtonText,\n },\n {\n variant: 'text',\n onClick: onHide,\n children: 'I do not accept',\n },\n ]\n }\n\n let renderedTerms = <></>\n if (actContactInfo) {\n renderedTerms = <MarkdownSynapse markdown={actContactInfo} />\n } else if (wikiPage) {\n renderedTerms = (\n <MarkdownSynapse\n wikiId={wikiPage?.wikiPageId}\n ownerId={wikiPage?.ownerObjectId}\n objectType={wikiPage?.ownerObjectType}\n />\n )\n }\n return (\n <RequirementItem\n data-testid={'UnmanagedACTAccessRequirementItem'}\n status={\n isLoadingStatus\n ? RequirementItemStatus.LOADING\n : isApproved\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n actions={actions}\n >\n {isApproved ? (\n <>\n <Typography variant={'body1'}>\n Your data access request has been approved.{' '}\n <Link\n role={'button'}\n onClick={() =>\n setShowACTContactInfoInstructions(\n !showACTContactInfoInstructions,\n )\n }\n >\n {showACTContactInfoInstructions\n ? 'Hide Instructions'\n : 'View Instructions'}\n </Link>\n </Typography>\n {showACTContactInfoInstructions && (\n <Box sx={{ my: 1 }}>{renderedTerms}</Box>\n )}\n </>\n ) : (\n renderedTerms\n )}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;;;AA8BA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,cAAW,gBAAa,cAAW,GACxD,EAAE,uBAAoB,EAAkB,GAExC,EAAE,MAAM,GAAyB,WAAW,MAChD,EAA8B,OAAO,EAAkB,EAAE,CAAC,GAEtD,EAAE,MAAM,MAAa,EACzB,EAAkB,GAAG,SAAS,CAEhC,GAEM,IAAa,GAAyB,YAEtC,CAAC,GAAgC,KACrC,EAAkB,EAAK,GAErB,IAAmB;CACvB,AAOE,IANA,OAAO,SAAW,QACjB,OAAO,SAAS,aAAa,qBAC5B,OAAO,SAAS,aAAa,yBAEZ,mBAEA;CAGrB,IAAM,UAAyC;EAC7C,IAAM,IAAoB,IAAc,SAAS,MAAgB,IAC3D,IAAkB,IAAY,OAAO,MAAc;EACzD,OAAO,KACL,GAAG,EAA2B,OAAO,0BAA0B,EAAkB,KAAK,IAAoB,GAC5G;CACF,GACM,UAAwB;EAG5B,AAFA,EAAiC,GAE7B,KACF,EAAO;CAEX,GAEM,IAAiB,EAAkB,gBAErC;CAEJ,AAAI,KAAmB,CAAC,MACtB,IAAU,CACR;EACE,SAAS;EACT,SAAS;EACT,UAAU;CACZ,GACA;EACE,SAAS;EACT,SAAS;EACT,UAAU;CACZ,CACF;CAGF,IAAI,IAAgB,kBAAA,GAAA,CAAI,CAAA;CAYxB,OAXI,IACF,IAAgB,kBAAC,GAAD,EAAiB,UAAU,EAAiB,CAAA,IACnD,MACT,IACE,kBAAC,GAAD;EACE,QAAQ,GAAU;EAClB,SAAS,GAAU;EACnB,YAAY,GAAU;CACvB,CAAA,IAIH,kBAAC,GAAD;EACE,eAAa;EACb,QACE,IACI,EAAsB,UACtB,IACE,EAAsB,WACtB,EAAsB;EAErB;YAER,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;aAArB;IAA8B;IACgB;IAC5C,kBAAC,GAAD;KACE,MAAM;KACN,eACE,EACE,CAAC,CACH;eAGD,IACG,sBACA;IACA,CAAA;GACI;MACX,KACC,kBAAC,GAAD;GAAK,IAAI,EAAE,IAAI,EAAE;aAAI;EAAmB,CAAA,CAE1C,EAAA,CAAA,IAEF;CAEa,CAAA;AAErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/ValidationRequirement.tsx"],"sourcesContent":["import { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport { Link, Typography } from '@mui/material'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\n/**\n * When creating requests for access requirements on a particular file, one or more access requirements may require that the\n * user has a validated profile.\n *\n * This component checks if the user has a validated profile, and if not, provides a link on how to begin profile validation.\n */\nexport default function ValidationRequirement() {\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n const validationURL = useOneSageURL(\n '/authenticated/myaccount',\n undefined,\n 'trust',\n )\n\n return (\n <RequirementItem\n status={\n isLoading\n ? RequirementItemStatus.LOADING\n : userBundle!.isVerified\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n >\n <Typography variant={'body1'}>\n You must first apply to have your{' '}\n <Link href={validationURL.toString()} target={'_blank'}>\n user profile validated\n </Link>\n </Typography>\n {isLoading && <span className=\"spinner\" />}\n {userBundle?.isVerified && (\n <Typography variant={'body1'}>\n Your user profile is validated.\n </Typography>\n )}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAwB,IAAwB;CAC9C,IAAM,EAAE,MAAM,GAAY,iBAAc,GAAyB,EAC3D,IAAgB,EACpB,4BACA,KAAA,GACA,QACD;AAED,QACE,kBAAC,GAAD;EACE,QACE,IACI,EAAsB,UACtB,EAAY,aACV,EAAsB,WACtB,EAAsB;YANhC;GASE,kBAAC,GAAD;IAAY,SAAS;cAArB;KAA8B;KACM;KAClC,kBAAC,GAAD;MAAM,MAAM,EAAc,UAAU;MAAE,QAAQ;gBAAU;MAEjD,CAAA;KACI;;GACZ,KAAa,kBAAC,QAAD,EAAM,WAAU,WAAY,CAAA;GACzC,GAAY,cACX,kBAAC,GAAD;IAAY,SAAS;cAAS;IAEjB,CAAA;GAEC"}
1
+ {"version":3,"file":"ValidationRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/ValidationRequirement.tsx"],"sourcesContent":["import { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport { Link, Typography } from '@mui/material'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\n/**\n * When creating requests for access requirements on a particular file, one or more access requirements may require that the\n * user has a validated profile.\n *\n * This component checks if the user has a validated profile, and if not, provides a link on how to begin profile validation.\n */\nexport default function ValidationRequirement() {\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n const validationURL = useOneSageURL(\n '/authenticated/myaccount',\n undefined,\n 'trust',\n )\n\n return (\n <RequirementItem\n status={\n isLoading\n ? RequirementItemStatus.LOADING\n : userBundle!.isVerified\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n >\n <Typography variant={'body1'}>\n You must first apply to have your{' '}\n <Link href={validationURL.toString()} target={'_blank'}>\n user profile validated\n </Link>\n </Typography>\n {isLoading && <span className=\"spinner\" />}\n {userBundle?.isVerified && (\n <Typography variant={'body1'}>\n Your user profile is validated.\n </Typography>\n )}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAwB,IAAwB;CAC9C,IAAM,EAAE,MAAM,GAAY,iBAAc,EAAwB,GAC1D,IAAgB,EACpB,4BACA,KAAA,GACA,OACF;CAEA,OACE,kBAAC,GAAD;EACE,QACE,IACI,EAAsB,UACtB,EAAY,aACV,EAAsB,WACtB,EAAsB;YANhC;GASE,kBAAC,GAAD;IAAY,SAAS;cAArB;KAA8B;KACM;KAClC,kBAAC,GAAD;MAAM,MAAM,EAAc,SAAS;MAAG,QAAQ;gBAAU;KAElD,CAAA;IACI;;GACX,KAAa,kBAAC,QAAD,EAAM,WAAU,UAAW,CAAA;GACxC,GAAY,cACX,kBAAC,GAAD;IAAY,SAAS;cAAS;GAElB,CAAA;EAEC;;AAErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccessRequirementRelatedProjectsList.js","names":[],"sources":["../../../src/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.tsx"],"sourcesContent":["import React from 'react'\nimport { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { Alert, List, ListItem, Typography } from '@mui/material'\nimport { AccessRequirementSearchRequest } from '@sage-bionetworks/synapse-types'\nimport pluralize from 'pluralize'\nimport { EntityLink } from '../EntityLink'\n\nexport type AccessRequirementRelatedProjectsListProps = {\n accessRequirementId: number\n}\n\nexport const AccessRequirementRelatedProjectsList = (\n props: AccessRequirementRelatedProjectsListProps,\n): React.ReactNode => {\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> = {\n ids: [props.accessRequirementId],\n }\n\n const { data, isError, error } =\n useSearchAccessRequirementsInfinite(searchRequest)\n const ar = data?.pages.flatMap(page => page.results)[0] ?? undefined\n\n const nRelatedProjects = ar?.relatedProjectIds.length || 0\n const relatedProjectsTitle = `${pluralize(\n 'project',\n nRelatedProjects,\n true,\n )}${nRelatedProjects > 0 ? ':' : ''}`\n\n return (\n <>\n {ar && (\n <>\n <Typography variant=\"body1\">{relatedProjectsTitle}</Typography>\n <List sx={{ listStyleType: 'disc', pl: 4 }}>\n {ar.relatedProjectIds.map(projectId => (\n <ListItem\n sx={{\n display: 'list-item',\n py: '4px',\n // remove extra margin added by type.less to p tags\n '.no-margin-y': { my: 0 },\n }}\n key={projectId}\n >\n <EntityLink\n entity={projectId}\n link={false}\n showIcon={false}\n className=\"no-margin-y\"\n />\n </ListItem>\n ))}\n </List>\n </>\n )}\n {isError && <Alert severity=\"error\">{error.message}</Alert>}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAWA,IAAa,KACX,MACoB;CAKpB,IAAM,EAAE,SAAM,YAAS,aACrB,EAAoC,EAJpC,KAAK,CAAC,EAAM,oBAAoB,EAII,CAAc,EAC9C,IAAK,GAAM,MAAM,SAAQ,MAAQ,EAAK,QAAQ,CAAC,MAAM,KAAA,GAErD,IAAmB,GAAI,kBAAkB,UAAU,GACnD,IAAuB,GAAG,EAC9B,WACA,GACA,GACD,GAAG,IAAmB,IAAI,MAAM;AAEjC,QACE,kBAAA,GAAA,EAAA,UAAA,CACG,KACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAQ;YAAS;EAAkC,CAAA,EAC/D,kBAAC,GAAD;EAAM,IAAI;GAAE,eAAe;GAAQ,IAAI;GAAG;YACvC,EAAG,kBAAkB,KAAI,MACxB,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,IAAI;IAEJ,gBAAgB,EAAE,IAAI,GAAG;IAC1B;aAGD,kBAAC,GAAD;IACE,QAAQ;IACR,MAAM;IACN,UAAU;IACV,WAAU;IACV,CAAA;GACO,EARJ,EAQI,CACX;EACG,CAAA,CACN,EAAA,CAAA,EAEJ,KAAW,kBAAC,GAAD;EAAO,UAAS;YAAS,EAAM;EAAgB,CAAA,CAC1D,EAAA,CAAA"}
1
+ {"version":3,"file":"AccessRequirementRelatedProjectsList.js","names":[],"sources":["../../../src/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.tsx"],"sourcesContent":["import React from 'react'\nimport { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { Alert, List, ListItem, Typography } from '@mui/material'\nimport { AccessRequirementSearchRequest } from '@sage-bionetworks/synapse-types'\nimport pluralize from 'pluralize'\nimport { EntityLink } from '../EntityLink'\n\nexport type AccessRequirementRelatedProjectsListProps = {\n accessRequirementId: number\n}\n\nexport const AccessRequirementRelatedProjectsList = (\n props: AccessRequirementRelatedProjectsListProps,\n): React.ReactNode => {\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> = {\n ids: [props.accessRequirementId],\n }\n\n const { data, isError, error } =\n useSearchAccessRequirementsInfinite(searchRequest)\n const ar = data?.pages.flatMap(page => page.results)[0] ?? undefined\n\n const nRelatedProjects = ar?.relatedProjectIds.length || 0\n const relatedProjectsTitle = `${pluralize(\n 'project',\n nRelatedProjects,\n true,\n )}${nRelatedProjects > 0 ? ':' : ''}`\n\n return (\n <>\n {ar && (\n <>\n <Typography variant=\"body1\">{relatedProjectsTitle}</Typography>\n <List sx={{ listStyleType: 'disc', pl: 4 }}>\n {ar.relatedProjectIds.map(projectId => (\n <ListItem\n sx={{\n display: 'list-item',\n py: '4px',\n // remove extra margin added by type.less to p tags\n '.no-margin-y': { my: 0 },\n }}\n key={projectId}\n >\n <EntityLink\n entity={projectId}\n link={false}\n showIcon={false}\n className=\"no-margin-y\"\n />\n </ListItem>\n ))}\n </List>\n </>\n )}\n {isError && <Alert severity=\"error\">{error.message}</Alert>}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAWA,IAAa,KACX,MACoB;CAKpB,IAAM,EAAE,SAAM,YAAS,aACrB,EAAoC,EAJpC,KAAK,CAAC,EAAM,mBAAmB,EAIK,CAAa,GAC7C,IAAK,GAAM,MAAM,SAAQ,MAAQ,EAAK,OAAO,EAAE,MAAM,KAAA,GAErD,IAAmB,GAAI,kBAAkB,UAAU,GACnD,IAAuB,GAAG,EAC9B,WACA,GACA,EACF,IAAI,IAAmB,IAAI,MAAM;CAEjC,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,KACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAQ;YAAS;CAAiC,CAAA,GAC9D,kBAAC,GAAD;EAAM,IAAI;GAAE,eAAe;GAAQ,IAAI;EAAE;YACtC,EAAG,kBAAkB,KAAI,MACxB,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,IAAI;IAEJ,gBAAgB,EAAE,IAAI,EAAE;GAC1B;aAGA,kBAAC,GAAD;IACE,QAAQ;IACR,MAAM;IACN,UAAU;IACV,WAAU;GACX,CAAA;EACO,GARH,CAQG,CACX;CACG,CAAA,CACN,EAAA,CAAA,GAEH,KAAW,kBAAC,GAAD;EAAO,UAAS;YAAS,EAAM;CAAe,CAAA,CAC1D,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccessTokenCard.js","names":[],"sources":["../../../../src/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.tsx"],"sourcesContent":["import { useDeletePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport DeleteTwoToneIcon from '@mui/icons-material/DeleteTwoTone'\nimport {\n Box,\n Card,\n IconButton,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n AccessTokenRecord,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { noop } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\nimport WarningDialog from '../../SynapseForm/WarningDialog'\n\ndayjs.extend(relativeTime)\n\nexport type AccessTokenCardProps = {\n /** Record referring to an access token, not a token itself */\n accessToken: AccessTokenRecord\n onDelete?: () => void\n}\n\nexport const EXPIRED_PAT_WARNING =\n 'This token has expired. It no longer works and can only be deleted.'\n\nexport function AccessTokenCard(props: AccessTokenCardProps) {\n const { accessToken, onDelete = noop } = props\n const [showModal, setShowModal] = useState(false)\n\n const isExpired = accessToken.state === 'EXPIRED'\n\n const { mutate: deleteToken, isPending: deleteIsPending } =\n useDeletePersonalAccessToken({\n onSuccess: () => {\n onDelete()\n },\n throwOnError: true,\n })\n\n const onClickDeleteButton = useCallback(() => {\n if (isExpired) {\n // token no longer works, no need for warning/confirmation\n deleteToken(accessToken.id)\n } else {\n setShowModal(true)\n }\n }, [accessToken.id, deleteToken, isExpired])\n\n const warningDialog = (\n <WarningDialog\n title={'Confirm Deletion'}\n content={\n <>\n <Typography variant={'body1'}>\n If you delete this token, any applications using it will stop\n working. This action cannot be undone.\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n fontWeight: '700',\n }}\n >\n Are you sure you want to delete this token?\n </Typography>\n </>\n }\n confirmButtonText={'Delete Token'}\n onCancel={() => setShowModal(false)}\n onConfirm={() => {\n deleteToken(accessToken.id)\n setShowModal(false)\n }}\n confirmButtonColor=\"error\"\n open={showModal}\n />\n )\n return (\n <Card\n sx={{\n my: 2,\n height: '120px',\n width: '100%',\n p: 1.5,\n pl: 4,\n backgroundColor: isExpired ? '#fcf8e3' : 'inherit',\n }}\n >\n {warningDialog}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: '100%',\n }}\n >\n <Stack\n sx={{\n flexGrow: 1,\n gap: 1,\n justifyContent: 'space-between',\n }}\n >\n <Typography variant={'headline3'} sx={{ fontSize: '16px' }}>\n {accessToken.name}\n </Typography>\n <div>\n <span>Permissions: </span>\n {accessToken.scopes.map(scope => {\n const scopeDescriptionKey =\n scope as keyof typeof scopeDescriptions\n let scopeDescription = scopeDescriptions[scopeDescriptionKey]\n if (scopeDescription === undefined) {\n const titleCaseScope =\n scope.charAt(0).toUpperCase() + scope.slice(1)\n scopeDescription = {\n displayName: titleCaseScope,\n description: titleCaseScope,\n }\n }\n return (\n <Tooltip key={scope} title={scopeDescription.description}>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{ mx: 0.25, cursor: 'default', color: 'primary.main' }}\n >\n {scopeDescription.displayName}\n </Typography>\n </Tooltip>\n )\n })}\n </div>\n <div>\n <Typography component={'span'} variant={'smallText1'}>\n Last used {dayjs(accessToken.lastUsed).fromNow()}\n </Typography>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {' | '}\n </Typography>\n <Typography component={'span'} variant={'smallText1'}>\n Created {dayjs(accessToken.createdOn).fromNow()}\n </Typography>\n </div>\n </Stack>\n <Box\n sx={{\n alignSelf: 'flex-start',\n display: 'flex',\n gap: 1,\n alignItems: 'center',\n }}\n >\n {isExpired && (\n <Tooltip title={EXPIRED_PAT_WARNING} placement={'top'}>\n <IconButton>\n <IconSvg\n icon=\"warning\"\n sx={{ color: 'warning.main', fontSize: 'inherit' }}\n wrap={false}\n />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip title={'Delete Token'} placement={'top'}>\n <IconButton\n disabled={deleteIsPending}\n color=\"error\"\n onClick={onClickDeleteButton}\n >\n <DeleteTwoToneIcon />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n </Card>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AccessTokenCard.js","names":[],"sources":["../../../../src/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.tsx"],"sourcesContent":["import { useDeletePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport DeleteTwoToneIcon from '@mui/icons-material/DeleteTwoTone'\nimport {\n Box,\n Card,\n IconButton,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n AccessTokenRecord,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { noop } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\nimport WarningDialog from '../../SynapseForm/WarningDialog'\n\ndayjs.extend(relativeTime)\n\nexport type AccessTokenCardProps = {\n /** Record referring to an access token, not a token itself */\n accessToken: AccessTokenRecord\n onDelete?: () => void\n}\n\nexport const EXPIRED_PAT_WARNING =\n 'This token has expired. It no longer works and can only be deleted.'\n\nexport function AccessTokenCard(props: AccessTokenCardProps) {\n const { accessToken, onDelete = noop } = props\n const [showModal, setShowModal] = useState(false)\n\n const isExpired = accessToken.state === 'EXPIRED'\n\n const { mutate: deleteToken, isPending: deleteIsPending } =\n useDeletePersonalAccessToken({\n onSuccess: () => {\n onDelete()\n },\n throwOnError: true,\n })\n\n const onClickDeleteButton = useCallback(() => {\n if (isExpired) {\n // token no longer works, no need for warning/confirmation\n deleteToken(accessToken.id)\n } else {\n setShowModal(true)\n }\n }, [accessToken.id, deleteToken, isExpired])\n\n const warningDialog = (\n <WarningDialog\n title={'Confirm Deletion'}\n content={\n <>\n <Typography variant={'body1'}>\n If you delete this token, any applications using it will stop\n working. This action cannot be undone.\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n fontWeight: '700',\n }}\n >\n Are you sure you want to delete this token?\n </Typography>\n </>\n }\n confirmButtonText={'Delete Token'}\n onCancel={() => setShowModal(false)}\n onConfirm={() => {\n deleteToken(accessToken.id)\n setShowModal(false)\n }}\n confirmButtonColor=\"error\"\n open={showModal}\n />\n )\n return (\n <Card\n sx={{\n my: 2,\n height: '120px',\n width: '100%',\n p: 1.5,\n pl: 4,\n backgroundColor: isExpired ? '#fcf8e3' : 'inherit',\n }}\n >\n {warningDialog}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: '100%',\n }}\n >\n <Stack\n sx={{\n flexGrow: 1,\n gap: 1,\n justifyContent: 'space-between',\n }}\n >\n <Typography variant={'headline3'} sx={{ fontSize: '16px' }}>\n {accessToken.name}\n </Typography>\n <div>\n <span>Permissions: </span>\n {accessToken.scopes.map(scope => {\n const scopeDescriptionKey =\n scope as keyof typeof scopeDescriptions\n let scopeDescription = scopeDescriptions[scopeDescriptionKey]\n if (scopeDescription === undefined) {\n const titleCaseScope =\n scope.charAt(0).toUpperCase() + scope.slice(1)\n scopeDescription = {\n displayName: titleCaseScope,\n description: titleCaseScope,\n }\n }\n return (\n <Tooltip key={scope} title={scopeDescription.description}>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{ mx: 0.25, cursor: 'default', color: 'primary.main' }}\n >\n {scopeDescription.displayName}\n </Typography>\n </Tooltip>\n )\n })}\n </div>\n <div>\n <Typography component={'span'} variant={'smallText1'}>\n Last used {dayjs(accessToken.lastUsed).fromNow()}\n </Typography>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {' | '}\n </Typography>\n <Typography component={'span'} variant={'smallText1'}>\n Created {dayjs(accessToken.createdOn).fromNow()}\n </Typography>\n </div>\n </Stack>\n <Box\n sx={{\n alignSelf: 'flex-start',\n display: 'flex',\n gap: 1,\n alignItems: 'center',\n }}\n >\n {isExpired && (\n <Tooltip title={EXPIRED_PAT_WARNING} placement={'top'}>\n <IconButton>\n <IconSvg\n icon=\"warning\"\n sx={{ color: 'warning.main', fontSize: 'inherit' }}\n wrap={false}\n />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip title={'Delete Token'} placement={'top'}>\n <IconButton\n disabled={deleteIsPending}\n color=\"error\"\n onClick={onClickDeleteButton}\n >\n <DeleteTwoToneIcon />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n </Card>\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccessTokenPage.js","names":[],"sources":["../../../src/components/AccessTokenPage/AccessTokenPage.tsx"],"sourcesContent":["import { useGetPersonalAccessTokensInfinite } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { AddCircleTwoTone } from '@mui/icons-material'\nimport { Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useState } from 'react'\nimport { ErrorBanner, SynapseErrorBoundary } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport { AccessTokenCard } from './AccessTokenCard/AccessTokenCard'\nimport { CreateAccessTokenModal } from './CreateAccessTokenModal'\n\nexport type AccessTokenPageProps = {\n title: string\n body: ReactNode\n}\n\nexport function AccessTokenPage({ title, body }: AccessTokenPageProps) {\n const [showCreateTokenModal, setShowCreateTokenModal] = useState(false)\n\n const {\n data: infiniteData,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n } = useGetPersonalAccessTokensInfinite()\n\n const tokenRecords = infiniteData?.pages.flatMap(page => page.results) ?? []\n\n return (\n <div>\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n justifyContent: 'space-between',\n flexDirection: { xs: 'column', md: 'row' },\n }}\n >\n <Box\n sx={{\n flexGrow: 1,\n }}\n >\n <h1>{title}</h1>\n {body}\n </Box>\n <Box\n sx={theme => ({\n flexShrink: 0,\n alignSelf: 'end',\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n >\n <Button\n sx={theme => ({\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setShowCreateTokenModal(true)}\n startIcon={<AddCircleTwoTone />}\n >\n Create New Token\n </Button>\n </Box>\n </Box>\n <SynapseErrorBoundary>\n {showCreateTokenModal && (\n <CreateAccessTokenModal\n onClose={() => setShowCreateTokenModal(false)}\n />\n )}\n\n <div>\n {!isLoading && !error && tokenRecords.length === 0 && (\n <Typography\n variant={'headline2'}\n sx={{\n m: 5,\n textAlign: 'center',\n }}\n >\n You currently have no personal access tokens.\n </Typography>\n )}\n <Box\n sx={{\n maxWidth: '800px',\n mx: 'auto',\n my: 2.5,\n }}\n >\n {tokenRecords.map(accessToken => {\n return (\n <AccessTokenCard\n key={accessToken.id}\n accessToken={accessToken}\n />\n )\n })}\n {isLoading && loadingScreen}\n {!isLoading && hasNextPage && !error && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n }}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n fetchNextPage()\n }}\n >\n Load More\n </Button>\n </Box>\n )}\n </Box>\n {error && <ErrorBanner error={error}></ErrorBanner>}\n </div>\n </SynapseErrorBoundary>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,EAAgB,EAAE,UAAO,WAA8B;CACrE,IAAM,CAAC,GAAsB,KAA2B,EAAS,GAAM,EAEjE,EACJ,MAAM,GACN,cACA,UACA,kBACA,mBACE,GAAoC,EAElC,IAAe,GAAc,MAAM,SAAQ,MAAQ,EAAK,QAAQ,IAAI,EAAE;AAE5E,QACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,KAAK;GACL,gBAAgB;GAChB,eAAe;IAAE,IAAI;IAAU,IAAI;IAAO;GAC3C;YANH,CAQE,kBAAC,GAAD;GACE,IAAI,EACF,UAAU,GACX;aAHH,CAKE,kBAAC,MAAD,EAAA,UAAK,GAAW,CAAA,EACf,EACG;MACN,kBAAC,GAAD;GACE,KAAI,OAAU;IACZ,YAAY;IACZ,WAAW;KACV,EAAM,YAAY,KAAK,KAAK,GAAG,EAAE,OAAO,QAAQ;IAClD;aAED,kBAAC,GAAD;IACE,KAAI,OAAU,GACX,EAAM,YAAY,KAAK,KAAK,GAAG,EAAE,OAAO,QAAQ,EAClD;IACD,SAAQ;IACR,OAAM;IACN,eAAe,EAAwB,GAAK;IAC5C,WAAW,kBAAC,GAAD,EAAoB,CAAA;cAChC;IAEQ,CAAA;GACL,CAAA,CACF;KACN,kBAAC,GAAD,EAAA,UAAA,CACG,KACC,kBAAC,GAAD,EACE,eAAe,EAAwB,GAAM,EAC7C,CAAA,EAGJ,kBAAC,OAAD,EAAA,UAAA;EACG,CAAC,KAAa,CAAC,KAAS,EAAa,WAAW,KAC/C,kBAAC,GAAD;GACE,SAAS;GACT,IAAI;IACF,GAAG;IACH,WAAW;IACZ;aACF;GAEY,CAAA;EAEf,kBAAC,GAAD;GACE,IAAI;IACF,UAAU;IACV,IAAI;IACJ,IAAI;IACL;aALH;IAOG,EAAa,KAAI,MAEd,kBAAC,GAAD,EAEe,gBACb,EAFK,EAAY,GAEjB,CAEJ;IACD,KAAa;IACb,CAAC,KAAa,KAAe,CAAC,KAC7B,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,gBAAgB;MACjB;eAED,kBAAC,GAAD;MACE,SAAQ;MACR,OAAM;MACN,eAAe;AACb,UAAe;;gBAElB;MAEQ,CAAA;KACL,CAAA;IAEJ;;EACL,KAAS,kBAAC,GAAD,EAAoB,UAAqB,CAAA;EAC/C,EAAA,CAAA,CACe,EAAA,CAAA,CACnB,EAAA,CAAA"}
1
+ {"version":3,"file":"AccessTokenPage.js","names":[],"sources":["../../../src/components/AccessTokenPage/AccessTokenPage.tsx"],"sourcesContent":["import { useGetPersonalAccessTokensInfinite } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { AddCircleTwoTone } from '@mui/icons-material'\nimport { Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useState } from 'react'\nimport { ErrorBanner, SynapseErrorBoundary } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport { AccessTokenCard } from './AccessTokenCard/AccessTokenCard'\nimport { CreateAccessTokenModal } from './CreateAccessTokenModal'\n\nexport type AccessTokenPageProps = {\n title: string\n body: ReactNode\n}\n\nexport function AccessTokenPage({ title, body }: AccessTokenPageProps) {\n const [showCreateTokenModal, setShowCreateTokenModal] = useState(false)\n\n const {\n data: infiniteData,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n } = useGetPersonalAccessTokensInfinite()\n\n const tokenRecords = infiniteData?.pages.flatMap(page => page.results) ?? []\n\n return (\n <div>\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n justifyContent: 'space-between',\n flexDirection: { xs: 'column', md: 'row' },\n }}\n >\n <Box\n sx={{\n flexGrow: 1,\n }}\n >\n <h1>{title}</h1>\n {body}\n </Box>\n <Box\n sx={theme => ({\n flexShrink: 0,\n alignSelf: 'end',\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n >\n <Button\n sx={theme => ({\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setShowCreateTokenModal(true)}\n startIcon={<AddCircleTwoTone />}\n >\n Create New Token\n </Button>\n </Box>\n </Box>\n <SynapseErrorBoundary>\n {showCreateTokenModal && (\n <CreateAccessTokenModal\n onClose={() => setShowCreateTokenModal(false)}\n />\n )}\n\n <div>\n {!isLoading && !error && tokenRecords.length === 0 && (\n <Typography\n variant={'headline2'}\n sx={{\n m: 5,\n textAlign: 'center',\n }}\n >\n You currently have no personal access tokens.\n </Typography>\n )}\n <Box\n sx={{\n maxWidth: '800px',\n mx: 'auto',\n my: 2.5,\n }}\n >\n {tokenRecords.map(accessToken => {\n return (\n <AccessTokenCard\n key={accessToken.id}\n accessToken={accessToken}\n />\n )\n })}\n {isLoading && loadingScreen}\n {!isLoading && hasNextPage && !error && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n }}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n fetchNextPage()\n }}\n >\n Load More\n </Button>\n </Box>\n )}\n </Box>\n {error && <ErrorBanner error={error}></ErrorBanner>}\n </div>\n </SynapseErrorBoundary>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,EAAgB,EAAE,UAAO,WAA8B;CACrE,IAAM,CAAC,GAAsB,KAA2B,EAAS,EAAK,GAEhE,EACJ,MAAM,GACN,cACA,UACA,kBACA,mBACE,EAAmC,GAEjC,IAAe,GAAc,MAAM,SAAQ,MAAQ,EAAK,OAAO,KAAK,CAAC;CAE3E,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,KAAK;GACL,gBAAgB;GAChB,eAAe;IAAE,IAAI;IAAU,IAAI;GAAM;EAC3C;YANF,CAQE,kBAAC,GAAD;GACE,IAAI,EACF,UAAU,EACZ;aAHF,CAKE,kBAAC,MAAD,EAAA,UAAK,EAAU,CAAA,GACd,CACE;MACL,kBAAC,GAAD;GACE,KAAI,OAAU;IACZ,YAAY;IACZ,WAAW;KACV,EAAM,YAAY,KAAK,IAAI,IAAI,EAAE,OAAO,OAAO;GAClD;aAEA,kBAAC,GAAD;IACE,KAAI,OAAU,GACX,EAAM,YAAY,KAAK,IAAI,IAAI,EAAE,OAAO,OAAO,EAClD;IACA,SAAQ;IACR,OAAM;IACN,eAAe,EAAwB,EAAI;IAC3C,WAAW,kBAAC,GAAD,CAAmB,CAAA;cAC/B;GAEO,CAAA;EACL,CAAA,CACF;KACL,kBAAC,GAAD,EAAA,UAAA,CACG,KACC,kBAAC,GAAD,EACE,eAAe,EAAwB,EAAK,EAC7C,CAAA,GAGH,kBAAC,OAAD,EAAA,UAAA;EACG,CAAC,KAAa,CAAC,KAAS,EAAa,WAAW,KAC/C,kBAAC,GAAD;GACE,SAAS;GACT,IAAI;IACF,GAAG;IACH,WAAW;GACb;aACD;EAEW,CAAA;EAEd,kBAAC,GAAD;GACE,IAAI;IACF,UAAU;IACV,IAAI;IACJ,IAAI;GACN;aALF;IAOG,EAAa,KAAI,MAEd,kBAAC,GAAD,EAEe,eACd,GAFM,EAAY,EAElB,CAEJ;IACA,KAAa;IACb,CAAC,KAAa,KAAe,CAAC,KAC7B,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,gBAAgB;KAClB;eAEA,kBAAC,GAAD;MACE,SAAQ;MACR,OAAM;MACN,eAAe;OACb,EAAc;MAChB;gBACD;KAEO,CAAA;IACL,CAAA;GAEJ;;EACJ,KAAS,kBAAC,GAAD,EAAoB,SAAoB,CAAA;CAC/C,EAAA,CAAA,CACe,EAAA,CAAA,CACnB,EAAA,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAccessTokenModal.js","names":[],"sources":["../../../src/components/AccessTokenPage/CreateAccessTokenModal.tsx"],"sourcesContent":["import { useCreatePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { Checkbox, FormControlLabel, Stack, Typography } from '@mui/material'\nimport {\n AccessTokenGenerationRequest,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { ChangeEvent, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { CopyToClipboardInput } from '../CopyToClipboardInput/CopyToClipboardInput'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport TextField from '../TextField/TextField'\n\nconst INVALID_INPUT_MSG =\n 'You must provide a token name and at least one permission.'\n\nexport type CreateAccessTokenModalProps = {\n onClose?: () => void\n onCreate?: () => void\n}\n\nexport function CreateAccessTokenModal(props: CreateAccessTokenModalProps) {\n const { onClose = noop, onCreate = noop } = props\n const [tokenName, setTokenName] = useState('')\n const [viewAccess, setViewAccess] = useState(true)\n const [downloadAccess, setDownloadAccess] = useState(false)\n const [modifyAccess, setModifyAccess] = useState(false)\n\n const [validationError, setValidationError] = useState<string | null>(null)\n\n const {\n mutate,\n isPending: createIsPending,\n error: mutationError,\n data: createdTokenResponse,\n } = useCreatePersonalAccessToken()\n\n const handleTokenNameChange = (event: ChangeEvent) => {\n setTokenName((event.target as HTMLInputElement).value)\n }\n\n const validateInput = (tokenName: string, access: boolean[]): boolean => {\n return !!tokenName && access.some(x => x)\n }\n\n const onSubmit = () => {\n if (validateInput(tokenName, [viewAccess, downloadAccess, modifyAccess])) {\n setValidationError(null)\n\n const request: AccessTokenGenerationRequest = {\n scope: [],\n name: tokenName,\n }\n if (viewAccess) request.scope.push('view')\n if (downloadAccess) request.scope.push('download')\n if (modifyAccess) request.scope.push('modify')\n\n mutate(request)\n\n onCreate()\n } else {\n setValidationError(INVALID_INPUT_MSG)\n }\n }\n\n const dialogContent = createdTokenResponse ? (\n <>\n <Typography variant={'body1'}>\n <Typography\n variant={'body1'}\n component={'span'}\n sx={{\n fontWeight: 700,\n }}\n >\n This token will not be able to be retrieved again.\n </Typography>{' '}\n If needed, generate a new personal access token, and delete this one.\n </Typography>\n <div>\n <CopyToClipboardInput\n value={createdTokenResponse.token}\n inputWidth={'350px'}\n />\n </div>\n <Typography variant={'body1'}>\n This token grants access to your account functions and should be treated\n like a password.\n </Typography>\n </>\n ) : (\n <Stack gap={2}>\n <TextField\n autoFocus\n label=\"Token Name\"\n value={tokenName}\n onChange={handleTokenNameChange}\n placeholder=\"e.g. Synapse command line access on my laptop\"\n sx={{ mb: 2 }}\n />\n <div>\n <Typography variant=\"label\">Token Permissions</Typography>\n <Stack\n sx={{\n gap: 2,\n my: 1,\n }}\n >\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.view.displayName}\n checked={viewAccess}\n onChange={() => setViewAccess(!viewAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.view.description}. Required to use Synapse\n programmatic clients.\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.download.displayName}\n checked={downloadAccess}\n onChange={() => setDownloadAccess(!downloadAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.download.description}\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.modify.displayName}\n checked={modifyAccess}\n onChange={() => setModifyAccess(!modifyAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.modify.description}\n </Typography>\n </div>\n </Stack>\n </div>\n {validationError && <ErrorBanner error={validationError} />}\n {mutationError && <ErrorBanner error={mutationError.reason} />}\n </Stack>\n )\n\n return (\n <ConfirmationDialog\n open={true}\n title=\"Create New Personal Access Token\"\n content={createIsPending ? loadingScreen : dialogContent}\n confirmButtonProps={{\n children: createdTokenResponse ? 'Close' : 'Create Token',\n variant: createdTokenResponse ? 'outlined' : 'contained',\n }}\n hasCancelButton={!createdTokenResponse}\n onCancel={onClose}\n onConfirm={\n createdTokenResponse\n ? () => onClose()\n : () => {\n void onSubmit()\n }\n }\n />\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreateAccessTokenModal.js","names":[],"sources":["../../../src/components/AccessTokenPage/CreateAccessTokenModal.tsx"],"sourcesContent":["import { useCreatePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { Checkbox, FormControlLabel, Stack, Typography } from '@mui/material'\nimport {\n AccessTokenGenerationRequest,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { ChangeEvent, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { CopyToClipboardInput } from '../CopyToClipboardInput/CopyToClipboardInput'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport TextField from '../TextField/TextField'\n\nconst INVALID_INPUT_MSG =\n 'You must provide a token name and at least one permission.'\n\nexport type CreateAccessTokenModalProps = {\n onClose?: () => void\n onCreate?: () => void\n}\n\nexport function CreateAccessTokenModal(props: CreateAccessTokenModalProps) {\n const { onClose = noop, onCreate = noop } = props\n const [tokenName, setTokenName] = useState('')\n const [viewAccess, setViewAccess] = useState(true)\n const [downloadAccess, setDownloadAccess] = useState(false)\n const [modifyAccess, setModifyAccess] = useState(false)\n\n const [validationError, setValidationError] = useState<string | null>(null)\n\n const {\n mutate,\n isPending: createIsPending,\n error: mutationError,\n data: createdTokenResponse,\n } = useCreatePersonalAccessToken()\n\n const handleTokenNameChange = (event: ChangeEvent) => {\n setTokenName((event.target as HTMLInputElement).value)\n }\n\n const validateInput = (tokenName: string, access: boolean[]): boolean => {\n return !!tokenName && access.some(x => x)\n }\n\n const onSubmit = () => {\n if (validateInput(tokenName, [viewAccess, downloadAccess, modifyAccess])) {\n setValidationError(null)\n\n const request: AccessTokenGenerationRequest = {\n scope: [],\n name: tokenName,\n }\n if (viewAccess) request.scope.push('view')\n if (downloadAccess) request.scope.push('download')\n if (modifyAccess) request.scope.push('modify')\n\n mutate(request)\n\n onCreate()\n } else {\n setValidationError(INVALID_INPUT_MSG)\n }\n }\n\n const dialogContent = createdTokenResponse ? (\n <>\n <Typography variant={'body1'}>\n <Typography\n variant={'body1'}\n component={'span'}\n sx={{\n fontWeight: 700,\n }}\n >\n This token will not be able to be retrieved again.\n </Typography>{' '}\n If needed, generate a new personal access token, and delete this one.\n </Typography>\n <div>\n <CopyToClipboardInput\n value={createdTokenResponse.token}\n inputWidth={'350px'}\n />\n </div>\n <Typography variant={'body1'}>\n This token grants access to your account functions and should be treated\n like a password.\n </Typography>\n </>\n ) : (\n <Stack gap={2}>\n <TextField\n autoFocus\n label=\"Token Name\"\n value={tokenName}\n onChange={handleTokenNameChange}\n placeholder=\"e.g. Synapse command line access on my laptop\"\n sx={{ mb: 2 }}\n />\n <div>\n <Typography variant=\"label\">Token Permissions</Typography>\n <Stack\n sx={{\n gap: 2,\n my: 1,\n }}\n >\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.view.displayName}\n checked={viewAccess}\n onChange={() => setViewAccess(!viewAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.view.description}. Required to use Synapse\n programmatic clients.\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.download.displayName}\n checked={downloadAccess}\n onChange={() => setDownloadAccess(!downloadAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.download.description}\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.modify.displayName}\n checked={modifyAccess}\n onChange={() => setModifyAccess(!modifyAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.modify.description}\n </Typography>\n </div>\n </Stack>\n </div>\n {validationError && <ErrorBanner error={validationError} />}\n {mutationError && <ErrorBanner error={mutationError.reason} />}\n </Stack>\n )\n\n return (\n <ConfirmationDialog\n open={true}\n title=\"Create New Personal Access Token\"\n content={createIsPending ? loadingScreen : dialogContent}\n confirmButtonProps={{\n children: createdTokenResponse ? 'Close' : 'Create Token',\n variant: createdTokenResponse ? 'outlined' : 'contained',\n }}\n hasCancelButton={!createdTokenResponse}\n onCancel={onClose}\n onConfirm={\n createdTokenResponse\n ? () => onClose()\n : () => {\n void onSubmit()\n }\n }\n />\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountLevelBadge.js","names":[],"sources":["../../../src/components/AccountLevelBadge/AccountLevelBadge.tsx"],"sourcesContent":["import { ReactComponent as Certified } from '@/assets/icons/account-certified.svg'\nimport { ReactComponent as EnabledMFA } from '@/assets/icons/account-enabled-mfa.svg'\nimport { ReactComponent as Validated } from '@/assets/icons/account-validated.svg'\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n Link,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport type AccountLevelBadgeType = 'certified' | 'validated' | 'enabledMFA'\ntype AccountLevelBadgeConfig = {\n label: string\n description: string\n tooltipText: string\n icon: ReactNode\n linkHref: string\n buttonNode?: ReactNode\n}\n\nexport const accountLevelBadgeConfig: Record<\n AccountLevelBadgeType,\n AccountLevelBadgeConfig\n> = {\n certified: {\n label: 'Certified',\n description: 'Has access to normal functionality.',\n tooltipText:\n 'This user has passed Sage Certification, which means they can upload data and create new projects and tables.',\n icon: <Certified />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n validated: {\n label: 'Validated',\n description: 'Identity has been manually verified.',\n tooltipText:\n 'This user is Validated. Their identity and credentials have been manually verified by Sage Bionetworks.',\n icon: <Validated />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n enabledMFA: {\n label: 'Multi-factor Authentication',\n description: 'User has activated MFA',\n tooltipText:\n 'This user currently has multi-factor authentication (MFA) activated.',\n icon: <EnabledMFA />,\n linkHref:\n 'https://help.synapse.org/docs/Managing-Your-Account.2055405596.html#ManagingYourAccount-AddingTwo-FactorAuthentication(2FA)toyouraccount',\n },\n}\n\nexport type AccountLevelBadgeProps = {\n badgeType: AccountLevelBadgeType\n /* If truthy, show a button with the following props. If undefined, no button will be shown */\n buttonProps?: ButtonProps\n}\n\nexport function AccountLevelBadge({\n badgeType,\n buttonProps,\n}: AccountLevelBadgeProps) {\n const badgeConfig = accountLevelBadgeConfig[badgeType]\n return (\n <Card\n sx={{\n maxWidth: 325,\n minWidth: 250,\n padding: '30px 20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Tooltip title={badgeConfig.tooltipText}>\n <Box\n sx={{\n alignSelf: 'start',\n mr: '10px',\n }}\n >\n {badgeConfig.icon}\n </Box>\n </Tooltip>\n <Box>\n <Typography variant=\"headline3\" gutterBottom component=\"div\">\n {badgeConfig.label}\n </Typography>\n <Typography variant=\"body1\" sx={{ color: 'grey.700', mb: '10px' }}>\n {badgeConfig.description}\n </Typography>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={badgeConfig.linkHref}\n >\n <Typography variant=\"buttonLink\">Learn more</Typography>\n </Link>\n </Box>\n </Box>\n {buttonProps && (\n <Button\n fullWidth\n {...buttonProps}\n sx={{\n mt: 2,\n ...buttonProps.sx,\n }}\n ></Button>\n )}\n </Card>\n )\n}\n"],"mappings":";;;;;;AAwBA,IAAa,IAGT;CACF,WAAW;EACT,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,EAAa,CAAA;EACnB,UAAU;EACX;CACD,WAAW;EACT,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,EAAa,CAAA;EACnB,UAAU;EACX;CACD,YAAY;EACV,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,EAAc,CAAA;EACpB,UACE;EACH;CACF;AAQD,SAAgB,EAAkB,EAChC,cACA,kBACyB;CACzB,IAAM,IAAc,EAAwB;AAC5C,QACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,UAAU;GACV,SAAS;GACV;YALH,CAOE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,OAAO;IACP,YAAY;IACb;aALH,CAOE,kBAAC,GAAD;IAAS,OAAO,EAAY;cAC1B,kBAAC,GAAD;KACE,IAAI;MACF,WAAW;MACX,IAAI;MACL;eAEA,EAAY;KACT,CAAA;IACE,CAAA,EACV,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KAAY,SAAQ;KAAY,cAAA;KAAa,WAAU;eACpD,EAAY;KACF,CAAA;IACb,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI;MAAE,OAAO;MAAY,IAAI;MAAQ;eAC9D,EAAY;KACF,CAAA;IACb,kBAAC,GAAD;KACE,QAAO;KACP,KAAI;KACJ,MAAM,EAAY;eAElB,kBAAC,GAAD;MAAY,SAAQ;gBAAa;MAAuB,CAAA;KACnD,CAAA;IACH,EAAA,CAAA,CACF;MACL,KACC,kBAAC,GAAD;GACE,WAAA;GACA,GAAI;GACJ,IAAI;IACF,IAAI;IACJ,GAAG,EAAY;IAChB;GACO,CAAA,CAEP"}
1
+ {"version":3,"file":"AccountLevelBadge.js","names":[],"sources":["../../../src/components/AccountLevelBadge/AccountLevelBadge.tsx"],"sourcesContent":["import { ReactComponent as Certified } from '@/assets/icons/account-certified.svg'\nimport { ReactComponent as EnabledMFA } from '@/assets/icons/account-enabled-mfa.svg'\nimport { ReactComponent as Validated } from '@/assets/icons/account-validated.svg'\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n Link,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport type AccountLevelBadgeType = 'certified' | 'validated' | 'enabledMFA'\ntype AccountLevelBadgeConfig = {\n label: string\n description: string\n tooltipText: string\n icon: ReactNode\n linkHref: string\n buttonNode?: ReactNode\n}\n\nexport const accountLevelBadgeConfig: Record<\n AccountLevelBadgeType,\n AccountLevelBadgeConfig\n> = {\n certified: {\n label: 'Certified',\n description: 'Has access to normal functionality.',\n tooltipText:\n 'This user has passed Sage Certification, which means they can upload data and create new projects and tables.',\n icon: <Certified />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n validated: {\n label: 'Validated',\n description: 'Identity has been manually verified.',\n tooltipText:\n 'This user is Validated. Their identity and credentials have been manually verified by Sage Bionetworks.',\n icon: <Validated />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n enabledMFA: {\n label: 'Multi-factor Authentication',\n description: 'User has activated MFA',\n tooltipText:\n 'This user currently has multi-factor authentication (MFA) activated.',\n icon: <EnabledMFA />,\n linkHref:\n 'https://help.synapse.org/docs/Managing-Your-Account.2055405596.html#ManagingYourAccount-AddingTwo-FactorAuthentication(2FA)toyouraccount',\n },\n}\n\nexport type AccountLevelBadgeProps = {\n badgeType: AccountLevelBadgeType\n /* If truthy, show a button with the following props. If undefined, no button will be shown */\n buttonProps?: ButtonProps\n}\n\nexport function AccountLevelBadge({\n badgeType,\n buttonProps,\n}: AccountLevelBadgeProps) {\n const badgeConfig = accountLevelBadgeConfig[badgeType]\n return (\n <Card\n sx={{\n maxWidth: 325,\n minWidth: 250,\n padding: '30px 20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Tooltip title={badgeConfig.tooltipText}>\n <Box\n sx={{\n alignSelf: 'start',\n mr: '10px',\n }}\n >\n {badgeConfig.icon}\n </Box>\n </Tooltip>\n <Box>\n <Typography variant=\"headline3\" gutterBottom component=\"div\">\n {badgeConfig.label}\n </Typography>\n <Typography variant=\"body1\" sx={{ color: 'grey.700', mb: '10px' }}>\n {badgeConfig.description}\n </Typography>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={badgeConfig.linkHref}\n >\n <Typography variant=\"buttonLink\">Learn more</Typography>\n </Link>\n </Box>\n </Box>\n {buttonProps && (\n <Button\n fullWidth\n {...buttonProps}\n sx={{\n mt: 2,\n ...buttonProps.sx,\n }}\n ></Button>\n )}\n </Card>\n )\n}\n"],"mappings":";;;;;;AAwBA,IAAa,IAGT;CACF,WAAW;EACT,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,CAAY,CAAA;EAClB,UAAU;CACZ;CACA,WAAW;EACT,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,CAAY,CAAA;EAClB,UAAU;CACZ;CACA,YAAY;EACV,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,CAAa,CAAA;EACnB,UACE;CACJ;AACF;AAQA,SAAgB,EAAkB,EAChC,cACA,kBACyB;CACzB,IAAM,IAAc,EAAwB;CAC5C,OACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,UAAU;GACV,SAAS;EACX;YALF,CAOE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,OAAO;IACP,YAAY;GACd;aALF,CAOE,kBAAC,GAAD;IAAS,OAAO,EAAY;cAC1B,kBAAC,GAAD;KACE,IAAI;MACF,WAAW;MACX,IAAI;KACN;eAEC,EAAY;IACV,CAAA;GACE,CAAA,GACT,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KAAY,SAAQ;KAAY,cAAA;KAAa,WAAU;eACpD,EAAY;IACH,CAAA;IACZ,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI;MAAE,OAAO;MAAY,IAAI;KAAO;eAC7D,EAAY;IACH,CAAA;IACZ,kBAAC,GAAD;KACE,QAAO;KACP,KAAI;KACJ,MAAM,EAAY;eAElB,kBAAC,GAAD;MAAY,SAAQ;gBAAa;KAAsB,CAAA;IACnD,CAAA;GACH,EAAA,CAAA,CACF;MACJ,KACC,kBAAC,GAAD;GACE,WAAA;GACA,GAAI;GACJ,IAAI;IACF,IAAI;IACJ,GAAG,EAAY;GACjB;EACO,CAAA,CAEP;;AAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountLevelBadges.js","names":[],"sources":["../../../src/components/AccountLevelBadges/AccountLevelBadges.tsx"],"sourcesContent":["import { useGetUserBundle } from '@/synapse-queries/user/useUserBundle'\nimport { SynapseConstants } from '@/utils'\nimport { Box } from '@mui/material'\nimport {\n AccountLevelBadge,\n AccountLevelBadgeType,\n} from '../AccountLevelBadge/AccountLevelBadge'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport useRevokeCertificationUI from './useRevokeCertificationUI'\n\nexport type AccountLevelBadgesProps = {\n userId: string\n}\n\nconst CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK =\n SynapseConstants.USER_BUNDLE_MASK_IS_CERTIFIED |\n SynapseConstants.USER_BUNDLE_MASK_IS_VERIFIED |\n SynapseConstants.USER_BUNDLE_MASK_USER_PROFILE\n\nexport function AccountLevelBadges({ userId }: AccountLevelBadgesProps) {\n const {\n data: userBundle,\n isLoading,\n error,\n } = useGetUserBundle(\n userId,\n CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK,\n )\n\n const badgeStatuses: Record<AccountLevelBadgeType, boolean> = {\n certified: userBundle?.isCertified || false,\n validated: userBundle?.isVerified || false,\n enabledMFA: userBundle?.userProfile?.twoFactorAuthEnabled || false,\n }\n const hasBadges = Object.values(badgeStatuses).some(value => value)\n\n const {\n showButton: showRevokeCertificationButton,\n buttonProps: revokeCertificationButtonProps,\n confirmationDialogProps: revokeCertificationConfirmationDialogProps,\n } = useRevokeCertificationUI({\n userId,\n buttonProps: {\n variant: 'outlined',\n },\n })\n\n if (isLoading) {\n return <></>\n }\n if (error) {\n return <ErrorBanner error={error} />\n }\n\n return (\n <>\n <ConfirmationDialog {...revokeCertificationConfirmationDialogProps} />\n {hasBadges && (\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n justifyContent: 'flex-start',\n flexWrap: 'wrap',\n }}\n >\n {Object.entries(badgeStatuses).map(([key, value]) => {\n const badgeType = key as AccountLevelBadgeType\n const buttonProps =\n badgeType === 'certified' && showRevokeCertificationButton\n ? revokeCertificationButtonProps\n : undefined\n return (\n value && (\n <AccountLevelBadge\n key={badgeType}\n badgeType={badgeType}\n buttonProps={buttonProps}\n />\n )\n )\n })}\n </Box>\n )}\n </>\n )\n}\n\nexport default AccountLevelBadges\n"],"mappings":";;;;;;;;;;;AAeA,IAAM,IACJ;AAIF,SAAgB,EAAmB,EAAE,aAAmC;CACtE,IAAM,EACJ,MAAM,GACN,cACA,aACE,EACF,GACA,EACD,EAEK,IAAwD;EAC5D,WAAW,GAAY,eAAe;EACtC,WAAW,GAAY,cAAc;EACrC,YAAY,GAAY,aAAa,wBAAwB;EAC9D,EACK,IAAY,OAAO,OAAO,EAAc,CAAC,MAAK,MAAS,EAAM,EAE7D,EACJ,YAAY,GACZ,aAAa,GACb,yBAAyB,MACvB,EAAyB;EAC3B;EACA,aAAa,EACX,SAAS,YACV;EACF,CAAC;AASF,QAPI,IACK,kBAAA,GAAA,EAAK,CAAA,GAEV,IACK,kBAAC,GAAD,EAAoB,UAAS,CAAA,GAIpC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAoB,GAAI,GAA8C,CAAA,EACrE,KACC,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,KAAK;GACL,gBAAgB;GAChB,UAAU;GACX;YAEA,OAAO,QAAQ,EAAc,CAAC,KAAK,CAAC,GAAK,OAAW;GACnD,IAAM,IAAY;AAKlB,UACE,KACE,kBAAC,GAAD;IAEa;IACE,aARjB,MAAc,eAAe,IACzB,IACA,KAAA;IAOA,EAHK,EAGL;IAGN;EACE,CAAA,CAEP,EAAA,CAAA"}
1
+ {"version":3,"file":"AccountLevelBadges.js","names":[],"sources":["../../../src/components/AccountLevelBadges/AccountLevelBadges.tsx"],"sourcesContent":["import { useGetUserBundle } from '@/synapse-queries/user/useUserBundle'\nimport { SynapseConstants } from '@/utils'\nimport { Box } from '@mui/material'\nimport {\n AccountLevelBadge,\n AccountLevelBadgeType,\n} from '../AccountLevelBadge/AccountLevelBadge'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport useRevokeCertificationUI from './useRevokeCertificationUI'\n\nexport type AccountLevelBadgesProps = {\n userId: string\n}\n\nconst CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK =\n SynapseConstants.USER_BUNDLE_MASK_IS_CERTIFIED |\n SynapseConstants.USER_BUNDLE_MASK_IS_VERIFIED |\n SynapseConstants.USER_BUNDLE_MASK_USER_PROFILE\n\nexport function AccountLevelBadges({ userId }: AccountLevelBadgesProps) {\n const {\n data: userBundle,\n isLoading,\n error,\n } = useGetUserBundle(\n userId,\n CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK,\n )\n\n const badgeStatuses: Record<AccountLevelBadgeType, boolean> = {\n certified: userBundle?.isCertified || false,\n validated: userBundle?.isVerified || false,\n enabledMFA: userBundle?.userProfile?.twoFactorAuthEnabled || false,\n }\n const hasBadges = Object.values(badgeStatuses).some(value => value)\n\n const {\n showButton: showRevokeCertificationButton,\n buttonProps: revokeCertificationButtonProps,\n confirmationDialogProps: revokeCertificationConfirmationDialogProps,\n } = useRevokeCertificationUI({\n userId,\n buttonProps: {\n variant: 'outlined',\n },\n })\n\n if (isLoading) {\n return <></>\n }\n if (error) {\n return <ErrorBanner error={error} />\n }\n\n return (\n <>\n <ConfirmationDialog {...revokeCertificationConfirmationDialogProps} />\n {hasBadges && (\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n justifyContent: 'flex-start',\n flexWrap: 'wrap',\n }}\n >\n {Object.entries(badgeStatuses).map(([key, value]) => {\n const badgeType = key as AccountLevelBadgeType\n const buttonProps =\n badgeType === 'certified' && showRevokeCertificationButton\n ? revokeCertificationButtonProps\n : undefined\n return (\n value && (\n <AccountLevelBadge\n key={badgeType}\n badgeType={badgeType}\n buttonProps={buttonProps}\n />\n )\n )\n })}\n </Box>\n )}\n </>\n )\n}\n\nexport default AccountLevelBadges\n"],"mappings":";;;;;;;;;;;AAeA,IAAM,IACJ;AAIF,SAAgB,EAAmB,EAAE,aAAmC;CACtE,IAAM,EACJ,MAAM,GACN,cACA,aACE,EACF,GACA,CACF,GAEM,IAAwD;EAC5D,WAAW,GAAY,eAAe;EACtC,WAAW,GAAY,cAAc;EACrC,YAAY,GAAY,aAAa,wBAAwB;CAC/D,GACM,IAAY,OAAO,OAAO,CAAa,EAAE,MAAK,MAAS,CAAK,GAE5D,EACJ,YAAY,GACZ,aAAa,GACb,yBAAyB,MACvB,EAAyB;EAC3B;EACA,aAAa,EACX,SAAS,WACX;CACF,CAAC;CASD,OAPI,IACK,kBAAA,GAAA,CAAI,CAAA,IAET,IACK,kBAAC,GAAD,EAAoB,SAAQ,CAAA,IAInC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAoB,GAAI,EAA6C,CAAA,GACpE,KACC,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,KAAK;GACL,gBAAgB;GAChB,UAAU;EACZ;YAEC,OAAO,QAAQ,CAAa,EAAE,KAAK,CAAC,GAAK,OAAW;GACnD,IAAM,IAAY;GAKlB,OACE,KACE,kBAAC,GAAD;IAEa;IACE,aARjB,MAAc,eAAe,IACzB,IACA,KAAA;GAOD,GAHM,CAGN;EAGP,CAAC;CACE,CAAA,CAEP,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRevokeCertificationUI.js","names":[],"sources":["../../../src/components/AccountLevelBadges/useRevokeCertificationUI.tsx"],"sourcesContent":["import { useIsCurrentUserACTMember } from '@/synapse-queries'\nimport { useRevokeCertification } from '@/synapse-queries/user/useRevokeCertification'\nimport { ButtonProps, Link, Typography } from '@mui/material'\nimport { useMemo, useState } from 'react'\nimport { ConfirmationDialogProps } from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { displayToast } from '../ToastMessage'\n\nexport type RevokeCertificationUIOptions = {\n /* The ID of the user whose certification may be revoked. */\n userId: string\n buttonProps: Omit<ButtonProps, 'onClick'>\n}\n\nexport type RevokeCertificationUIReturn = {\n /* Whether a button to revoke certification should be shown (i.e. is the logged-in user ACT?)*/\n showButton: boolean\n /* Props to pass to a MUI Button to show a prompt to revoke certification. */\n buttonProps: ButtonProps\n /* Props to pass to a ConfirmationDialog to confirm/cancel revocation. */\n confirmationDialogProps: ConfirmationDialogProps\n}\n\n/**\n * Hook that provides UI data and props related to revoking a user's certification.\n * @param options\n */\nexport default function useRevokeCertificationUI(\n options: RevokeCertificationUIOptions,\n): RevokeCertificationUIReturn {\n const { userId, buttonProps: additionalButtonProps } = options\n const [showConfirmationDialog, setShowConfirmationDialog] = useState(false)\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n const { mutate: revokeCertification, isPending } = useRevokeCertification({\n onSettled: () => {\n setShowConfirmationDialog(false)\n },\n onSuccess: () => {\n displayToast('User certification revoked', 'success')\n },\n onError: error => {\n displayToast(error.message, 'danger')\n },\n })\n\n const buttonProps: ButtonProps = useMemo(\n () => ({\n children: 'Revoke Certification',\n ...additionalButtonProps,\n disabled: isPending || additionalButtonProps.disabled,\n onClick: () => setShowConfirmationDialog(true),\n }),\n [additionalButtonProps, isPending],\n )\n\n const confirmationDialogProps: ConfirmationDialogProps = useMemo(\n () => ({\n title: 'Revoke user certification?',\n onCancel: () => setShowConfirmationDialog(false),\n open: showConfirmationDialog,\n content: (\n <>\n <Typography variant={'body1'} sx={{ fontWeight: 'bold', mb: 2.5 }}>\n This action can&apos;t be undone.\n </Typography>\n <Typography variant={'body1'} sx={{ my: 2.5 }}>\n Revoking user certification means this user won’t be able to upload\n files or tables, or make new projects or folders. To become\n certified again, they’ll have to retake the certification quiz.\n </Typography>\n <Typography variant={'body1'} sx={{ mt: 2.5 }}>\n <Link\n href={\n 'https://help.synapse.org/docs/Synapse-User-Account-Types.2007072795.html#SynapseUserAccountTypes-CertifiedUser'\n }\n >\n More about certified users\n </Link>\n </Typography>\n </>\n ),\n onConfirm: () => {\n revokeCertification(userId)\n },\n confirmButtonProps: {\n children: 'Revoke',\n disabled: isPending,\n startIcon: isPending ? <SynapseSpinner /> : null,\n },\n cancelButtonProps: { disabled: isPending },\n }),\n [isPending, revokeCertification, showConfirmationDialog, userId],\n )\n\n return { showButton: isACT || false, buttonProps, confirmationDialogProps }\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAwB,EACtB,GAC6B;CAC7B,IAAM,EAAE,WAAQ,aAAa,MAA0B,GACjD,CAAC,GAAwB,KAA6B,EAAS,GAAM,EAErE,EAAE,MAAM,MAAU,GAA2B,EAE7C,EAAE,QAAQ,GAAqB,iBAAc,EAAuB;EACxE,iBAAiB;AACf,KAA0B,GAAM;;EAElC,iBAAiB;AACf,KAAa,8BAA8B,UAAU;;EAEvD,UAAS,MAAS;AAChB,KAAa,EAAM,SAAS,SAAS;;EAExC,CAAC,EAEI,IAA2B,SACxB;EACL,UAAU;EACV,GAAG;EACH,UAAU,KAAa,EAAsB;EAC7C,eAAe,EAA0B,GAAK;EAC/C,GACD,CAAC,GAAuB,EAAU,CACnC,EAEK,IAAmD,SAChD;EACL,OAAO;EACP,gBAAgB,EAA0B,GAAM;EAChD,MAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI;KAAE,YAAY;KAAQ,IAAI;KAAK;cAAE;IAEtD,CAAA;GACb,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI,EAAE,IAAI,KAAK;cAAE;IAIlC,CAAA;GACb,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI,EAAE,IAAI,KAAK;cAC3C,kBAAC,GAAD;KACE,MACE;eAEH;KAEM,CAAA;IACI,CAAA;GACZ,EAAA,CAAA;EAEL,iBAAiB;AACf,KAAoB,EAAO;;EAE7B,oBAAoB;GAClB,UAAU;GACV,UAAU;GACV,WAAW,IAAY,kBAAC,GAAD,EAAkB,CAAA,GAAG;GAC7C;EACD,mBAAmB,EAAE,UAAU,GAAW;EAC3C,GACD;EAAC;EAAW;EAAqB;EAAwB;EAAO,CACjE;AAED,QAAO;EAAE,YAAY,KAAS;EAAO;EAAa;EAAyB"}
1
+ {"version":3,"file":"useRevokeCertificationUI.js","names":[],"sources":["../../../src/components/AccountLevelBadges/useRevokeCertificationUI.tsx"],"sourcesContent":["import { useIsCurrentUserACTMember } from '@/synapse-queries'\nimport { useRevokeCertification } from '@/synapse-queries/user/useRevokeCertification'\nimport { ButtonProps, Link, Typography } from '@mui/material'\nimport { useMemo, useState } from 'react'\nimport { ConfirmationDialogProps } from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { displayToast } from '../ToastMessage'\n\nexport type RevokeCertificationUIOptions = {\n /* The ID of the user whose certification may be revoked. */\n userId: string\n buttonProps: Omit<ButtonProps, 'onClick'>\n}\n\nexport type RevokeCertificationUIReturn = {\n /* Whether a button to revoke certification should be shown (i.e. is the logged-in user ACT?)*/\n showButton: boolean\n /* Props to pass to a MUI Button to show a prompt to revoke certification. */\n buttonProps: ButtonProps\n /* Props to pass to a ConfirmationDialog to confirm/cancel revocation. */\n confirmationDialogProps: ConfirmationDialogProps\n}\n\n/**\n * Hook that provides UI data and props related to revoking a user's certification.\n * @param options\n */\nexport default function useRevokeCertificationUI(\n options: RevokeCertificationUIOptions,\n): RevokeCertificationUIReturn {\n const { userId, buttonProps: additionalButtonProps } = options\n const [showConfirmationDialog, setShowConfirmationDialog] = useState(false)\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n const { mutate: revokeCertification, isPending } = useRevokeCertification({\n onSettled: () => {\n setShowConfirmationDialog(false)\n },\n onSuccess: () => {\n displayToast('User certification revoked', 'success')\n },\n onError: error => {\n displayToast(error.message, 'danger')\n },\n })\n\n const buttonProps: ButtonProps = useMemo(\n () => ({\n children: 'Revoke Certification',\n ...additionalButtonProps,\n disabled: isPending || additionalButtonProps.disabled,\n onClick: () => setShowConfirmationDialog(true),\n }),\n [additionalButtonProps, isPending],\n )\n\n const confirmationDialogProps: ConfirmationDialogProps = useMemo(\n () => ({\n title: 'Revoke user certification?',\n onCancel: () => setShowConfirmationDialog(false),\n open: showConfirmationDialog,\n content: (\n <>\n <Typography variant={'body1'} sx={{ fontWeight: 'bold', mb: 2.5 }}>\n This action can&apos;t be undone.\n </Typography>\n <Typography variant={'body1'} sx={{ my: 2.5 }}>\n Revoking user certification means this user won’t be able to upload\n files or tables, or make new projects or folders. To become\n certified again, they’ll have to retake the certification quiz.\n </Typography>\n <Typography variant={'body1'} sx={{ mt: 2.5 }}>\n <Link\n href={\n 'https://help.synapse.org/docs/Synapse-User-Account-Types.2007072795.html#SynapseUserAccountTypes-CertifiedUser'\n }\n >\n More about certified users\n </Link>\n </Typography>\n </>\n ),\n onConfirm: () => {\n revokeCertification(userId)\n },\n confirmButtonProps: {\n children: 'Revoke',\n disabled: isPending,\n startIcon: isPending ? <SynapseSpinner /> : null,\n },\n cancelButtonProps: { disabled: isPending },\n }),\n [isPending, revokeCertification, showConfirmationDialog, userId],\n )\n\n return { showButton: isACT || false, buttonProps, confirmationDialogProps }\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAwB,EACtB,GAC6B;CAC7B,IAAM,EAAE,WAAQ,aAAa,MAA0B,GACjD,CAAC,GAAwB,KAA6B,EAAS,EAAK,GAEpE,EAAE,MAAM,MAAU,EAA0B,GAE5C,EAAE,QAAQ,GAAqB,iBAAc,EAAuB;EACxE,iBAAiB;GACf,EAA0B,EAAK;EACjC;EACA,iBAAiB;GACf,EAAa,8BAA8B,SAAS;EACtD;EACA,UAAS,MAAS;GAChB,EAAa,EAAM,SAAS,QAAQ;EACtC;CACF,CAAC,GAEK,IAA2B,SACxB;EACL,UAAU;EACV,GAAG;EACH,UAAU,KAAa,EAAsB;EAC7C,eAAe,EAA0B,EAAI;CAC/C,IACA,CAAC,GAAuB,CAAS,CACnC,GAEM,IAAmD,SAChD;EACL,OAAO;EACP,gBAAgB,EAA0B,EAAK;EAC/C,MAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI;KAAE,YAAY;KAAQ,IAAI;IAAI;cAAG;GAEvD,CAAA;GACZ,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI,EAAE,IAAI,IAAI;cAAG;GAInC,CAAA;GACZ,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI,EAAE,IAAI,IAAI;cAC1C,kBAAC,GAAD;KACE,MACE;eAEH;IAEK,CAAA;GACI,CAAA;EACZ,EAAA,CAAA;EAEJ,iBAAiB;GACf,EAAoB,CAAM;EAC5B;EACA,oBAAoB;GAClB,UAAU;GACV,UAAU;GACV,WAAW,IAAY,kBAAC,GAAD,CAAiB,CAAA,IAAI;EAC9C;EACA,mBAAmB,EAAE,UAAU,EAAU;CAC3C,IACA;EAAC;EAAW;EAAqB;EAAwB;CAAM,CACjE;CAEA,OAAO;EAAE,YAAY,KAAS;EAAO;EAAa;CAAwB;AAC5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"AcknowledgementsDialog.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsDialog.tsx"],"sourcesContent":["import { Box, Button, Link, Typography } from '@mui/material'\nimport { DialogBase } from '../DialogBase'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { useMemo } from 'react'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\nimport { displayToast } from '../ToastMessage'\n\nexport type AcknowledgementsDialogProps = {\n open: boolean\n onClose: () => void\n createDoiHelpUrl: string\n portalAcknowledgement?: string\n dataAvailabilityStatement?: string\n studyAcknowledgements?: AcknowledgementItem[]\n}\n\nexport function AcknowledgementsDialog(props: AcknowledgementsDialogProps) {\n const {\n createDoiHelpUrl,\n open,\n onClose,\n portalAcknowledgement,\n dataAvailabilityStatement,\n studyAcknowledgements,\n } = props\n\n const textContent = useMemo(() => {\n let content = ''\n if (portalAcknowledgement) {\n content += `PORTAL ACKNOWLEDGEMENT STATEMENT\\n\\n${portalAcknowledgement}\\n\\n`\n }\n if (studyAcknowledgements && studyAcknowledgements.length > 0) {\n content += 'STUDY-SPECIFIC ACKNOWLEDGEMENT STATEMENTS:\\n\\n'\n studyAcknowledgements.forEach(item => {\n content += `* ${item.title}\\n\\n${item.statement}\\n\\n`\n })\n }\n if (dataAvailabilityStatement) {\n content += `DATA AVAILABILITY STATEMENT\\n\\n${dataAvailabilityStatement}\\n\\n`\n }\n return content.trim()\n }, [portalAcknowledgement, dataAvailabilityStatement, studyAcknowledgements])\n return (\n <DialogBase\n title=\"Acknowledgement Text\"\n open={open}\n onCancel={onClose}\n maxWidth=\"md\"\n content={\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>\n <Box\n sx={{\n p: '12px',\n backgroundColor: '#FBF4E0',\n height: 'fit-content',\n }}\n >\n <Typography variant=\"body1\">\n <strong>Note:</strong> You must customize the text in the Data\n Availability Statement to match the contents used in your\n publication.{' '}\n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How do I generate a DOI for my dataset?\n </Link>\n </Typography>\n </Box>\n <Box\n sx={{\n p: '10px',\n backgroundColor: 'grey.200',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n height: '250px',\n overflow: 'auto',\n }}\n >\n <Typography variant=\"body1\">{textContent}</Typography>\n </Box>\n </Box>\n }\n actions={\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n copyStringToClipboard(textContent).then(() => {\n displayToast('Successfully copied to clipboard', 'success')\n })\n }}\n >\n Copy to Clipboard\n </Button>\n }\n ></DialogBase>\n )\n}\n\nexport default AcknowledgementsDialog\n"],"mappings":";;;;;;;;AAgBA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,qBACA,SACA,YACA,0BACA,8BACA,6BACE,GAEE,IAAc,QAAc;EAChC,IAAI,IAAU;AAad,SAZI,MACF,KAAW,uCAAuC,EAAsB,QAEtE,KAAyB,EAAsB,SAAS,MAC1D,KAAW,kDACX,EAAsB,SAAQ,MAAQ;AACpC,QAAW,KAAK,EAAK,MAAM,MAAM,EAAK,UAAU;IAChD,GAEA,MACF,KAAW,kCAAkC,EAA0B,QAElE,EAAQ,MAAM;IACpB;EAAC;EAAuB;EAA2B;EAAsB,CAAC;AAC7E,QACE,kBAAC,GAAD;EACE,OAAM;EACA;EACN,UAAU;EACV,UAAS;EACT,SACE,kBAAC,GAAD;GAAK,IAAI;IAAE,SAAS;IAAQ,eAAe;IAAU,KAAK;IAAQ;aAAlE,CACE,kBAAC,GAAD;IACE,IAAI;KACF,GAAG;KACH,iBAAiB;KACjB,QAAQ;KACT;cAED,kBAAC,GAAD;KAAY,SAAQ;eAApB;MACE,kBAAC,UAAD,EAAA,UAAQ,SAAc,CAAA;;MAET;MACb,kBAAC,GAAD;OACE,MAAM;OACN,QAAO;OACP,KAAI;iBACL;OAEM,CAAA;MACI;;IACT,CAAA,EACN,kBAAC,GAAD;IACE,IAAI;KACF,GAAG;KACH,iBAAiB;KACjB,YAAY;KACZ,WAAW;KACX,QAAQ;KACR,UAAU;KACX;cAED,kBAAC,GAAD;KAAY,SAAQ;eAAS;KAAyB,CAAA;IAClD,CAAA,CACF;;EAER,SACE,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,eAAe;AACb,MAAsB,EAAY,CAAC,WAAW;AAC5C,OAAa,oCAAoC,UAAU;MAC3D;;aAEL;GAEQ,CAAA;EAEC,CAAA"}
1
+ {"version":3,"file":"AcknowledgementsDialog.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsDialog.tsx"],"sourcesContent":["import { Box, Button, Link, Typography } from '@mui/material'\nimport { DialogBase } from '../DialogBase'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { useMemo } from 'react'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\nimport { displayToast } from '../ToastMessage'\n\nexport type AcknowledgementsDialogProps = {\n open: boolean\n onClose: () => void\n createDoiHelpUrl: string\n portalAcknowledgement?: string\n dataAvailabilityStatement?: string\n studyAcknowledgements?: AcknowledgementItem[]\n}\n\nexport function AcknowledgementsDialog(props: AcknowledgementsDialogProps) {\n const {\n createDoiHelpUrl,\n open,\n onClose,\n portalAcknowledgement,\n dataAvailabilityStatement,\n studyAcknowledgements,\n } = props\n\n const textContent = useMemo(() => {\n let content = ''\n if (portalAcknowledgement) {\n content += `PORTAL ACKNOWLEDGEMENT STATEMENT\\n\\n${portalAcknowledgement}\\n\\n`\n }\n if (studyAcknowledgements && studyAcknowledgements.length > 0) {\n content += 'STUDY-SPECIFIC ACKNOWLEDGEMENT STATEMENTS:\\n\\n'\n studyAcknowledgements.forEach(item => {\n content += `* ${item.title}\\n\\n${item.statement}\\n\\n`\n })\n }\n if (dataAvailabilityStatement) {\n content += `DATA AVAILABILITY STATEMENT\\n\\n${dataAvailabilityStatement}\\n\\n`\n }\n return content.trim()\n }, [portalAcknowledgement, dataAvailabilityStatement, studyAcknowledgements])\n return (\n <DialogBase\n title=\"Acknowledgement Text\"\n open={open}\n onCancel={onClose}\n maxWidth=\"md\"\n content={\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>\n <Box\n sx={{\n p: '12px',\n backgroundColor: '#FBF4E0',\n height: 'fit-content',\n }}\n >\n <Typography variant=\"body1\">\n <strong>Note:</strong> You must customize the text in the Data\n Availability Statement to match the contents used in your\n publication.{' '}\n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How do I generate a DOI for my dataset?\n </Link>\n </Typography>\n </Box>\n <Box\n sx={{\n p: '10px',\n backgroundColor: 'grey.200',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n height: '250px',\n overflow: 'auto',\n }}\n >\n <Typography variant=\"body1\">{textContent}</Typography>\n </Box>\n </Box>\n }\n actions={\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n copyStringToClipboard(textContent).then(() => {\n displayToast('Successfully copied to clipboard', 'success')\n })\n }}\n >\n Copy to Clipboard\n </Button>\n }\n ></DialogBase>\n )\n}\n\nexport default AcknowledgementsDialog\n"],"mappings":";;;;;;;;AAgBA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,qBACA,SACA,YACA,0BACA,8BACA,6BACE,GAEE,IAAc,QAAc;EAChC,IAAI,IAAU;EAad,OAZI,MACF,KAAW,uCAAuC,EAAsB,QAEtE,KAAyB,EAAsB,SAAS,MAC1D,KAAW,kDACX,EAAsB,SAAQ,MAAQ;GACpC,KAAW,KAAK,EAAK,MAAM,MAAM,EAAK,UAAU;EAClD,CAAC,IAEC,MACF,KAAW,kCAAkC,EAA0B,QAElE,EAAQ,KAAK;CACtB,GAAG;EAAC;EAAuB;EAA2B;CAAqB,CAAC;CAC5E,OACE,kBAAC,GAAD;EACE,OAAM;EACA;EACN,UAAU;EACV,UAAS;EACT,SACE,kBAAC,GAAD;GAAK,IAAI;IAAE,SAAS;IAAQ,eAAe;IAAU,KAAK;GAAO;aAAjE,CACE,kBAAC,GAAD;IACE,IAAI;KACF,GAAG;KACH,iBAAiB;KACjB,QAAQ;IACV;cAEA,kBAAC,GAAD;KAAY,SAAQ;eAApB;MACE,kBAAC,UAAD,EAAA,UAAQ,QAAa,CAAA;MAAC;MAET;MACb,kBAAC,GAAD;OACE,MAAM;OACN,QAAO;OACP,KAAI;iBACL;MAEK,CAAA;KACI;;GACT,CAAA,GACL,kBAAC,GAAD;IACE,IAAI;KACF,GAAG;KACH,iBAAiB;KACjB,YAAY;KACZ,WAAW;KACX,QAAQ;KACR,UAAU;IACZ;cAEA,kBAAC,GAAD;KAAY,SAAQ;eAAS;IAAwB,CAAA;GAClD,CAAA,CACF;;EAEP,SACE,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,eAAe;IACb,EAAsB,CAAW,EAAE,WAAW;KAC5C,EAAa,oCAAoC,SAAS;IAC5D,CAAC;GACH;aACD;EAEO,CAAA;CAEC,CAAA;AAEjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AcknowledgementsPage.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsPage.tsx"],"sourcesContent":["import { Box, Button, Container, Link, Typography } from '@mui/material'\nimport { useCallback, useState } from 'react'\nimport { ReactComponent as AcknowledgementStatementsIllustration } from '../../assets/illustrations/acknowledgement_statements_illustration.svg'\nimport TextToComponentCollapse from '../TextToComponentCollapse'\nimport AcknowledgementsDialog from './AcknowledgementsDialog'\nimport { MarkdownSynapseProps } from '../Markdown/MarkdownSynapse'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { StudyAcknowledgements } from './StudyAcknowledgements'\nimport { LaunchTwoTone } from '@mui/icons-material'\nexport type AcknowledgementPageProps = {\n portalName: string\n createDoiHelpUrl: string\n portalAcknowledgementProps?: MarkdownSynapseProps\n dataAvailabilityProps?: MarkdownSynapseProps\n studyAcknowledgementSql: string\n}\n\nexport type AcknowledgementItem = {\n title: string\n statement: string\n}\n\nexport function AcknowledgementPage(props: AcknowledgementPageProps) {\n const {\n portalName,\n createDoiHelpUrl,\n portalAcknowledgementProps,\n dataAvailabilityProps,\n studyAcknowledgementSql,\n } = props\n const [isAcknowledgementsDialogOpen, setAcknowledgementsDialogOpen] =\n useState<boolean>(false)\n\n const [portalAcknowledgement, setPortalAcknowledgement] = useState<string>()\n const [dataAvailabilityStatement, setDataAvailabilityStatement] =\n useState<string>()\n const [acknowledgementItems, setAcknowledgementItems] = useState<\n AcknowledgementItem[]\n >([])\n const handleCloseDialog = useCallback(\n () => setAcknowledgementsDialogOpen(false),\n [],\n )\n return (\n <>\n <Container maxWidth={'lg'} sx={{ mt: '2em', mb: '2em' }}>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to acknowledge data from this portal\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The data available in the {portalName} would not be possible without\n the participation of research volunteers and the contribution of data\n by collaborating researchers. All use of data from the {portalName}{' '}\n must be acknowledged and referenced appropriately.\n </Typography>\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n All publications using {portalName} data must include the provided\n statements:\n </Typography>\n <Box sx={{ mb: '2em', svg: { maxWidth: '100%' } }}>\n <AcknowledgementStatementsIllustration />\n </Box>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to use this page:\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '.5em' }}>\n This page will guide you through creating the acknowledgement\n statements required when publishing with {portalName} data.\n </Typography>\n <Typography\n variant=\"body1\"\n component={'div'}\n sx={{\n mb: '2em',\n '& li::marker': {\n fontWeight: 'bold', // bold the number\n },\n }}\n >\n <ol>\n <li>\n <strong>Select study acknowledgement statements</strong>\n <br />\n From the list below, select all the studies whose data you used.\n Each study has a pre-written acknowledgement statement that must\n be included in your publication.\n </li>\n <li>\n <strong>Generate compiled statement</strong>\n <br />\n Click the Generate Compiled Statement button at the bottom of the\n page. This will compile:\n <ul>\n <li>The Portal Acknowledgement Statement</li>\n <li>The acknowledgement(s) for the studies you selected</li>\n <li>A template data availability statement</li>\n </ul>\n <i>\n Important: You will need to edit the compiled statement to add a\n brief description of the data used in your manuscript and a DOI\n that points to your dataset.\n </i>\n </li>\n <li>\n <strong>Create a DOI for your dataset</strong>\n <br />\n As part of the data availability statement, you will need to\n create a dataset that captures all files used in your publication\n and mint the dataset with a persistent Digital Object Identifier\n (DOI). For more instructions read&nbsp;\n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How to get a DOI for your Publication\n </Link>\n </li>\n </ol>\n </Typography>\n <Typography component={'div'} variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n <ol start={1} style={{ paddingInlineStart: '20px' }}>\n <li>Select study acknowledgement statements</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\">\n From the list below, select all studies whose data you used. Each\n study has a pre-written acknowledgement statement that must be\n included in your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '2em' }}>\n You can also expand each section for detailed information or click\n \"Copy full statement to clipboard\" to save the text.\n </Typography>\n <StudyAcknowledgements\n sql={studyAcknowledgementSql}\n onSelectChange={(item, checked) => {\n if (checked) {\n // add\n acknowledgementItems.push(item)\n } else {\n // remove\n const index = acknowledgementItems.findIndex(\n i => i.title === item.title && i.statement === item.statement,\n )\n if (index > -1) {\n acknowledgementItems.splice(index, 1)\n }\n }\n setAcknowledgementItems([...acknowledgementItems])\n }}\n />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={2} style={{ paddingInlineStart: '25px' }}>\n <li>Generate compiled statement</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n Click to generate a compiled statement for your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The generated text will include your selected study acknowledgement\n statements and all other required statements listed below.\n </Typography>\n <Button\n variant=\"contained\"\n onClick={() => setAcknowledgementsDialogOpen(true)}\n sx={{ mb: '3em' }}\n >\n Generate compiled statement\n </Button>\n <TextToComponentCollapse\n text={'Click to see other text included in the compiled statement'}\n textVariant=\"h5\"\n textSx={{ fontSize: '16px', fontWeight: 'bold' }}\n textContainerSx={{ backgroundColor: 'unset', p: 0 }}\n collapseBoxSx={{ backgroundColor: 'unset', p: '20px 0px' }}\n iconSx={{ width: '20px', height: '20px' }}\n >\n {portalAcknowledgementProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', mb: '1em' }}>\n Portal Acknowledgement Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...portalAcknowledgementProps}\n setPlainTextResult={setPortalAcknowledgement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n {dataAvailabilityProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', m: '1em 0' }}>\n Data Availability Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...dataAvailabilityProps}\n setPlainTextResult={setDataAvailabilityStatement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n </TextToComponentCollapse>\n <hr />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={3} style={{ paddingInlineStart: '25px' }}>\n <li>Create a DOI for your dataset</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n A digital object identifier (DOI) provides a persistent identifier\n that allows readers to find the data cited in your publication.\n Creating a DOI in the Synapse platform is free and required as part of\n the data availability statement.\n </Typography>\n\n <Button\n variant=\"outlined\"\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <LaunchTwoTone sx={{ mr: '0.5em' }} />\n Learn how to get a DOI for your publication\n </Button>\n </Container>\n\n <AcknowledgementsDialog\n open={isAcknowledgementsDialogOpen}\n onClose={handleCloseDialog}\n createDoiHelpUrl={createDoiHelpUrl}\n portalAcknowledgement={portalAcknowledgement}\n dataAvailabilityStatement={dataAvailabilityStatement}\n studyAcknowledgements={acknowledgementItems}\n />\n </>\n )\n}\n\nexport default AcknowledgementPage\n"],"mappings":"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"}
1
+ {"version":3,"file":"AcknowledgementsPage.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsPage.tsx"],"sourcesContent":["import { Box, Button, Container, Link, Typography } from '@mui/material'\nimport { useCallback, useState } from 'react'\nimport { ReactComponent as AcknowledgementStatementsIllustration } from '../../assets/illustrations/acknowledgement_statements_illustration.svg'\nimport TextToComponentCollapse from '../TextToComponentCollapse'\nimport AcknowledgementsDialog from './AcknowledgementsDialog'\nimport { MarkdownSynapseProps } from '../Markdown/MarkdownSynapse'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { StudyAcknowledgements } from './StudyAcknowledgements'\nimport { LaunchTwoTone } from '@mui/icons-material'\nexport type AcknowledgementPageProps = {\n portalName: string\n createDoiHelpUrl: string\n portalAcknowledgementProps?: MarkdownSynapseProps\n dataAvailabilityProps?: MarkdownSynapseProps\n studyAcknowledgementSql: string\n}\n\nexport type AcknowledgementItem = {\n title: string\n statement: string\n}\n\nexport function AcknowledgementPage(props: AcknowledgementPageProps) {\n const {\n portalName,\n createDoiHelpUrl,\n portalAcknowledgementProps,\n dataAvailabilityProps,\n studyAcknowledgementSql,\n } = props\n const [isAcknowledgementsDialogOpen, setAcknowledgementsDialogOpen] =\n useState<boolean>(false)\n\n const [portalAcknowledgement, setPortalAcknowledgement] = useState<string>()\n const [dataAvailabilityStatement, setDataAvailabilityStatement] =\n useState<string>()\n const [acknowledgementItems, setAcknowledgementItems] = useState<\n AcknowledgementItem[]\n >([])\n const handleCloseDialog = useCallback(\n () => setAcknowledgementsDialogOpen(false),\n [],\n )\n return (\n <>\n <Container maxWidth={'lg'} sx={{ mt: '2em', mb: '2em' }}>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to acknowledge data from this portal\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The data available in the {portalName} would not be possible without\n the participation of research volunteers and the contribution of data\n by collaborating researchers. All use of data from the {portalName}{' '}\n must be acknowledged and referenced appropriately.\n </Typography>\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n All publications using {portalName} data must include the provided\n statements:\n </Typography>\n <Box sx={{ mb: '2em', svg: { maxWidth: '100%' } }}>\n <AcknowledgementStatementsIllustration />\n </Box>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to use this page:\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '.5em' }}>\n This page will guide you through creating the acknowledgement\n statements required when publishing with {portalName} data.\n </Typography>\n <Typography\n variant=\"body1\"\n component={'div'}\n sx={{\n mb: '2em',\n '& li::marker': {\n fontWeight: 'bold', // bold the number\n },\n }}\n >\n <ol>\n <li>\n <strong>Select study acknowledgement statements</strong>\n <br />\n From the list below, select all the studies whose data you used.\n Each study has a pre-written acknowledgement statement that must\n be included in your publication.\n </li>\n <li>\n <strong>Generate compiled statement</strong>\n <br />\n Click the Generate Compiled Statement button at the bottom of the\n page. This will compile:\n <ul>\n <li>The Portal Acknowledgement Statement</li>\n <li>The acknowledgement(s) for the studies you selected</li>\n <li>A template data availability statement</li>\n </ul>\n <i>\n Important: You will need to edit the compiled statement to add a\n brief description of the data used in your manuscript and a DOI\n that points to your dataset.\n </i>\n </li>\n <li>\n <strong>Create a DOI for your dataset</strong>\n <br />\n As part of the data availability statement, you will need to\n create a dataset that captures all files used in your publication\n and mint the dataset with a persistent Digital Object Identifier\n (DOI). For more instructions read&nbsp;\n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How to get a DOI for your Publication\n </Link>\n </li>\n </ol>\n </Typography>\n <Typography component={'div'} variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n <ol start={1} style={{ paddingInlineStart: '20px' }}>\n <li>Select study acknowledgement statements</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\">\n From the list below, select all studies whose data you used. Each\n study has a pre-written acknowledgement statement that must be\n included in your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '2em' }}>\n You can also expand each section for detailed information or click\n \"Copy full statement to clipboard\" to save the text.\n </Typography>\n <StudyAcknowledgements\n sql={studyAcknowledgementSql}\n onSelectChange={(item, checked) => {\n if (checked) {\n // add\n acknowledgementItems.push(item)\n } else {\n // remove\n const index = acknowledgementItems.findIndex(\n i => i.title === item.title && i.statement === item.statement,\n )\n if (index > -1) {\n acknowledgementItems.splice(index, 1)\n }\n }\n setAcknowledgementItems([...acknowledgementItems])\n }}\n />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={2} style={{ paddingInlineStart: '25px' }}>\n <li>Generate compiled statement</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n Click to generate a compiled statement for your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The generated text will include your selected study acknowledgement\n statements and all other required statements listed below.\n </Typography>\n <Button\n variant=\"contained\"\n onClick={() => setAcknowledgementsDialogOpen(true)}\n sx={{ mb: '3em' }}\n >\n Generate compiled statement\n </Button>\n <TextToComponentCollapse\n text={'Click to see other text included in the compiled statement'}\n textVariant=\"h5\"\n textSx={{ fontSize: '16px', fontWeight: 'bold' }}\n textContainerSx={{ backgroundColor: 'unset', p: 0 }}\n collapseBoxSx={{ backgroundColor: 'unset', p: '20px 0px' }}\n iconSx={{ width: '20px', height: '20px' }}\n >\n {portalAcknowledgementProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', mb: '1em' }}>\n Portal Acknowledgement Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...portalAcknowledgementProps}\n setPlainTextResult={setPortalAcknowledgement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n {dataAvailabilityProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', m: '1em 0' }}>\n Data Availability Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...dataAvailabilityProps}\n setPlainTextResult={setDataAvailabilityStatement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n </TextToComponentCollapse>\n <hr />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={3} style={{ paddingInlineStart: '25px' }}>\n <li>Create a DOI for your dataset</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n A digital object identifier (DOI) provides a persistent identifier\n that allows readers to find the data cited in your publication.\n Creating a DOI in the Synapse platform is free and required as part of\n the data availability statement.\n </Typography>\n\n <Button\n variant=\"outlined\"\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <LaunchTwoTone sx={{ mr: '0.5em' }} />\n Learn how to get a DOI for your publication\n </Button>\n </Container>\n\n <AcknowledgementsDialog\n open={isAcknowledgementsDialogOpen}\n onClose={handleCloseDialog}\n createDoiHelpUrl={createDoiHelpUrl}\n portalAcknowledgement={portalAcknowledgement}\n dataAvailabilityStatement={dataAvailabilityStatement}\n studyAcknowledgements={acknowledgementItems}\n />\n </>\n )\n}\n\nexport default AcknowledgementPage\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StudyAcknowledgement.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { transformStringIntoMarkdownProps } from '../Markdown/MarkdownUtils'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { Box, Checkbox, FormControlLabel, Typography } from '@mui/material'\n\nexport type StudyAcknowledgementProps = {\n studyName: string\n acknowledgementStatementWikiRef: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgement({\n studyName,\n acknowledgementStatementWikiRef,\n onSelectChange,\n}: StudyAcknowledgementProps) {\n const [acknowledgementItem, setAcknowledgementItem] = useState<\n AcknowledgementItem | undefined\n >()\n const [checked, setChecked] = useState(false)\n const setPlainTextResult = (plainText: string) => {\n setAcknowledgementItem({\n title: studyName,\n statement: plainText,\n })\n }\n const handleCheckboxChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked\n setChecked(isChecked)\n if (acknowledgementItem && onSelectChange) {\n onSelectChange(acknowledgementItem, isChecked)\n }\n }\n const markdownCollapseProps = useMemo(() => {\n return transformStringIntoMarkdownProps(acknowledgementStatementWikiRef)\n }, [acknowledgementStatementWikiRef])\n return (\n <Box sx={{ mb: '20px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={checked}\n onChange={handleCheckboxChange}\n disabled={!acknowledgementItem}\n />\n }\n label={<Typography variant=\"body1\">{studyName}</Typography>}\n />\n <MarkdownCollapse\n {...markdownCollapseProps}\n setPlainTextResult={setPlainTextResult}\n showCopyPlainText={true}\n textDescription=\"full statement\"\n />\n </Box>\n )\n}\n"],"mappings":";;;;;;AAYA,SAAgB,EAAqB,EACnC,cACA,oCACA,qBAC4B;CAC5B,IAAM,CAAC,GAAqB,KAA0B,GAEnD,EACG,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,KAAsB,MAAsB;AAChD,IAAuB;GACrB,OAAO;GACP,WAAW;GACZ,CAAC;IAEE,KAAwB,MAA+C;EAC3E,IAAM,IAAY,EAAM,OAAO;AAE/B,EADA,EAAW,EAAU,EACjB,KAAuB,KACzB,EAAe,GAAqB,EAAU;IAG5C,IAAwB,QACrB,EAAiC,EAAgC,EACvE,CAAC,EAAgC,CAAC;AACrC,QACE,kBAAC,GAAD;EAAK,IAAI,EAAE,IAAI,QAAQ;YAAvB,CACE,kBAAC,GAAD;GACE,SACE,kBAAC,GAAD;IACW;IACT,UAAU;IACV,UAAU,CAAC;IACX,CAAA;GAEJ,OAAO,kBAAC,GAAD;IAAY,SAAQ;cAAS;IAAuB,CAAA;GAC3D,CAAA,EACF,kBAAC,GAAD;GACE,GAAI;GACgB;GACpB,mBAAmB;GACnB,iBAAgB;GAChB,CAAA,CACE"}
1
+ {"version":3,"file":"StudyAcknowledgement.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { transformStringIntoMarkdownProps } from '../Markdown/MarkdownUtils'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { Box, Checkbox, FormControlLabel, Typography } from '@mui/material'\n\nexport type StudyAcknowledgementProps = {\n studyName: string\n acknowledgementStatementWikiRef: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgement({\n studyName,\n acknowledgementStatementWikiRef,\n onSelectChange,\n}: StudyAcknowledgementProps) {\n const [acknowledgementItem, setAcknowledgementItem] = useState<\n AcknowledgementItem | undefined\n >()\n const [checked, setChecked] = useState(false)\n const setPlainTextResult = (plainText: string) => {\n setAcknowledgementItem({\n title: studyName,\n statement: plainText,\n })\n }\n const handleCheckboxChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked\n setChecked(isChecked)\n if (acknowledgementItem && onSelectChange) {\n onSelectChange(acknowledgementItem, isChecked)\n }\n }\n const markdownCollapseProps = useMemo(() => {\n return transformStringIntoMarkdownProps(acknowledgementStatementWikiRef)\n }, [acknowledgementStatementWikiRef])\n return (\n <Box sx={{ mb: '20px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={checked}\n onChange={handleCheckboxChange}\n disabled={!acknowledgementItem}\n />\n }\n label={<Typography variant=\"body1\">{studyName}</Typography>}\n />\n <MarkdownCollapse\n {...markdownCollapseProps}\n setPlainTextResult={setPlainTextResult}\n showCopyPlainText={true}\n textDescription=\"full statement\"\n />\n </Box>\n )\n}\n"],"mappings":";;;;;;AAYA,SAAgB,EAAqB,EACnC,cACA,oCACA,qBAC4B;CAC5B,IAAM,CAAC,GAAqB,KAA0B,EAEpD,GACI,CAAC,GAAS,KAAc,EAAS,EAAK,GACtC,KAAsB,MAAsB;EAChD,EAAuB;GACrB,OAAO;GACP,WAAW;EACb,CAAC;CACH,GACM,KAAwB,MAA+C;EAC3E,IAAM,IAAY,EAAM,OAAO;EAE/B,AADA,EAAW,CAAS,GAChB,KAAuB,KACzB,EAAe,GAAqB,CAAS;CAEjD,GACM,IAAwB,QACrB,EAAiC,CAA+B,GACtE,CAAC,CAA+B,CAAC;CACpC,OACE,kBAAC,GAAD;EAAK,IAAI,EAAE,IAAI,OAAO;YAAtB,CACE,kBAAC,GAAD;GACE,SACE,kBAAC,GAAD;IACW;IACT,UAAU;IACV,UAAU,CAAC;GACZ,CAAA;GAEH,OAAO,kBAAC,GAAD;IAAY,SAAQ;cAAS;GAAsB,CAAA;EAC3D,CAAA,GACD,kBAAC,GAAD;GACE,GAAI;GACgB;GACpB,mBAAmB;GACnB,iBAAgB;EACjB,CAAA,CACE;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"StudyAcknowledgements.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgements.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport { StudyAcknowledgement } from './StudyAcknowledgement'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\n\nexport type StudyAcknowledgementsProps = {\n // First column should be the study name, second column should be the acknowledgement statement\n sql: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgements({\n sql,\n onSelectChange,\n}: StudyAcknowledgementsProps) {\n const entityId = parseEntityIdFromSqlStatement(sql)\n const { data } = useGetQueryResultBundleWithAsyncStatus({\n entityId: entityId,\n query: {\n sql,\n },\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n })\n\n // get raw data. parse and then inject? or just inject without parsing?\n const rows = data?.responseBody?.queryResult?.queryResults?.rows\n return (\n <>\n {rows?.map((row, index) => {\n const studyName = row.values[0]\n const acknowledgementStatementWikiRef = row.values[1]\n if (!studyName || !acknowledgementStatementWikiRef) {\n return null\n }\n return (\n <StudyAcknowledgement\n key={index}\n studyName={studyName}\n acknowledgementStatementWikiRef={acknowledgementStatementWikiRef}\n onSelectChange={onSelectChange}\n />\n )\n })}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,EAAsB,EACpC,QACA,qBAC6B;CAE7B,IAAM,EAAE,YAAS,EAAuC;EAC5C,UAFK,EAA8B,EAEnC;EACV,OAAO,EACL,QACD;EACD,UAAA;EACA,cAAc;EACf,CAAC,EAGI,IAAO,GAAM,cAAc,aAAa,cAAc;AAC5D,QACE,kBAAA,GAAA,EAAA,UACG,GAAM,KAAK,GAAK,MAAU;EACzB,IAAM,IAAY,EAAI,OAAO,IACvB,IAAkC,EAAI,OAAO;AAInD,SAHI,CAAC,KAAa,CAAC,IACV,OAGP,kBAAC,GAAD;GAEa;GACsB;GACjB;GAChB,EAJK,EAIL;GAEJ,EACD,CAAA"}
1
+ {"version":3,"file":"StudyAcknowledgements.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgements.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport { StudyAcknowledgement } from './StudyAcknowledgement'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\n\nexport type StudyAcknowledgementsProps = {\n // First column should be the study name, second column should be the acknowledgement statement\n sql: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgements({\n sql,\n onSelectChange,\n}: StudyAcknowledgementsProps) {\n const entityId = parseEntityIdFromSqlStatement(sql)\n const { data } = useGetQueryResultBundleWithAsyncStatus({\n entityId: entityId,\n query: {\n sql,\n },\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n })\n\n // get raw data. parse and then inject? or just inject without parsing?\n const rows = data?.responseBody?.queryResult?.queryResults?.rows\n return (\n <>\n {rows?.map((row, index) => {\n const studyName = row.values[0]\n const acknowledgementStatementWikiRef = row.values[1]\n if (!studyName || !acknowledgementStatementWikiRef) {\n return null\n }\n return (\n <StudyAcknowledgement\n key={index}\n studyName={studyName}\n acknowledgementStatementWikiRef={acknowledgementStatementWikiRef}\n onSelectChange={onSelectChange}\n />\n )\n })}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,EAAsB,EACpC,QACA,qBAC6B;CAE7B,IAAM,EAAE,YAAS,EAAuC;EAC5C,UAFK,EAA8B,CAEnC;EACV,OAAO,EACL,OACF;EACA,UAAA;EACA,cAAc;CAChB,CAAC,GAGK,IAAO,GAAM,cAAc,aAAa,cAAc;CAC5D,OACE,kBAAA,GAAA,EAAA,UACG,GAAM,KAAK,GAAK,MAAU;EACzB,IAAM,IAAY,EAAI,OAAO,IACvB,IAAkC,EAAI,OAAO;EAInD,OAHI,CAAC,KAAa,CAAC,IACV,OAGP,kBAAC,GAAD;GAEa;GACsB;GACjB;EACjB,GAJM,CAIN;CAEL,CAAC,EACD,CAAA;AAEN"}