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":"MarkdownUtils.js","names":[],"sources":["../../../src/components/Markdown/MarkdownUtils.ts"],"sourcesContent":["import katex from 'katex'\nimport { RefObject } from 'react'\nimport { MarkdownSynapseProps } from './MarkdownSynapse'\nimport MarkdownIt from 'markdown-it'\nimport { truncateString } from '@/utils/functions/StringUtils'\n\n/**\n * Find all math identified elements of the form [id^=\\\"mathjax-\\\"]\n * (e.g. <dom element id=\"mathjax-10\"> text </dom element>)\n * and transform them to their math markdown equivalents\n */\nexport function processMath(markupRef: RefObject<HTMLElement | null>) {\n if (!markupRef.current) {\n return\n }\n // use regex to grab all elements\n const mathExpressions =\n markupRef.current.querySelectorAll<HTMLElement>('[id^=\"mathjax-\"]')\n // go through all obtained elements and transform them with katex\n const regEx = new RegExp(/\\\\[()[\\]]/, 'g') // Look for a '\\' followed by either '(', ')', '[', or ']'. We delete these strings since they interfere with katex processing.\n mathExpressions.forEach(element => {\n if (element.textContent && !element.getAttribute('processed')) {\n // only process a math element once, used to double/triple process\n element.setAttribute('processed', 'true')\n const textContent = element.textContent.replace(regEx, '')\n return katex.render(textContent, element, {\n output: 'html',\n throwOnError: false,\n })\n }\n })\n}\n\n/**\n * When the markdown string is transferred over the network certain characters get transformed,\n * this does a simple transformation back to the original user's string.\n *\n * @param {string} xml\n * @returns\n * @memberof MarkdownSynapse\n */\nexport function decodeXml(xml: string) {\n const escapedOneToXmlSpecialMap = {\n '&amp;': '&',\n '&gt;': '>',\n '&lt;': '<',\n '&quot;': '\"',\n }\n return xml.replace(\n /(&quot;|&lt;|&gt;|&amp;)/g,\n (str: string, item: keyof typeof escapedOneToXmlSpecialMap) => {\n return escapedOneToXmlSpecialMap[item]\n },\n )\n}\n\nexport function addIdsToReferenceWidgets(text: string) {\n const referenceRegex =\n /<span.*?id=\"wikiReference.*?<span.*? data-widgetparams.*?span>/g\n let referenceCount = 1\n\n return text.replace(referenceRegex, () => {\n // replace all reference tags with id's of the form id=\"ref<number>\"\" that we can read onClick\n const current = referenceCount\n referenceCount += 1\n return `<a href=\"\" id=\"ref${current}\">[${current}]</a>`\n })\n}\n\nexport function addIdsToTocWidgets(text: string) {\n const tocId = 'SRC-header-'\n let tocIdCount = 1\n const TOC_HEADER_REGEX = /<h[1-6] toc=\"true\">.*<\\/h[1-6]>/gm\n\n return text.replace(TOC_HEADER_REGEX, (match: string) => {\n // replace with id of the form id=\"toc\" so we can read them with onclick events\n const curTocId = tocIdCount\n tocIdCount += 1\n const matchWithId = `${match.substring(\n 0,\n 3,\n )} id=\"${tocId}${curTocId}\"${match.substring(3)}`\n return matchWithId\n })\n}\n\n// Manually handle clicks to anchor tags where the scrollto isn't handled by page hash\nexport function handleLinkClicks(event: MouseEvent) {\n const genericElement = event.target as HTMLElement\n const currentTarget = event.currentTarget as HTMLElement\n if (genericElement.tagName === 'A' || genericElement.tagName === 'BUTTON') {\n const anchor = event.target as HTMLAnchorElement\n if (anchor.id.substring(0, 3) === 'ref') {\n event.preventDefault()\n\n // its a reference, so we scroll to the appropriate bookmark\n const referenceNumber = Number(currentTarget.id.substring(3)) // e.g. ref2 => '2'\n const goTo = currentTarget.querySelector(`#bookmark${referenceNumber}`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n } else if (\n currentTarget.id !== null &&\n anchor.getAttribute('data-anchor')\n ) {\n event.preventDefault()\n // handle table of contents widget\n const idOfContent = anchor.getAttribute('data-anchor')\n const goTo = currentTarget.querySelector(`[id=\"${idOfContent}\"]`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n }\n }\n}\n\nexport function stripHTML(myHtmlString: string): string {\n const el = document.createElement('div')\n el.innerHTML = myHtmlString\n return el.textContent || el.innerText || ''\n}\n\nexport function transformStringIntoMarkdownProps(\n value: string,\n isRawMarkdown?: boolean,\n) {\n const newProps: MarkdownSynapseProps = {}\n if (isRawMarkdown) {\n newProps.markdown = value\n } else {\n if (value.includes('/wiki/')) {\n // value looks like syn20681023/wiki/594680\n const split = value.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n newProps.ownerId = ownerId\n newProps.wikiId = wikiId\n } else if (value) {\n // else assume it's an ownerId\n newProps.ownerId = value\n }\n }\n return newProps\n}\n\nconst md = new MarkdownIt()\n\nexport const markdownToPlainText = (markdown: string, maxLength?: number) => {\n if (!markdown || markdown.length === 0) {\n return ''\n }\n\n const html = md.render(markdown)\n const plainText = stripHTML(html)\n .replace(/\\|/g, '')\n .replace(/#/g, '')\n .replace(/<Synapse widget>/g, '')\n\n return maxLength ? truncateString(plainText, maxLength) : plainText\n}\n\nconst blockLevelTags = [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'p',\n 'pre',\n 'section',\n 'table',\n 'tfoot',\n 'ul',\n 'video',\n]\n\nconst inlineTags = ['span', 'a', 'em', 'strong', 'b', 'i', 'u', 'sub', 'sup']\n\nconst tableTags = ['table', 'thead', 'tbody', 'tr', 'tfoot']\n\n// Widget types that render inline elements and should not be treated as block-level\nconst inlineWidgetTypes = ['badge', 'image', 'imageLink', 'buttonlink']\n\nconst isInlineContainer = (node: Node): boolean => {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n\n const element = node as HTMLElement\n const tag = element.tagName.toLowerCase()\n return inlineTags.includes(tag)\n}\n\n// Check if a node is a block level element\nexport const isBlockLevelElement = (node: Node): boolean => {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n\n const element = node as HTMLElement\n const tag = element.tagName.toLowerCase()\n const isStandardBlock = blockLevelTags.includes(tag)\n\n const widgetParams = element.getAttribute('data-widgetparams')\n const isWidget =\n widgetParams !== null &&\n !inlineWidgetTypes.includes(widgetParams.split('?')[0])\n\n return isStandardBlock || isWidget\n}\n\nfunction isValidNesting(child: HTMLElement, ancestor: HTMLElement): boolean {\n // case 1: block level elements cannot be inside of inline containers\n if (isBlockLevelElement(child) && isInlineContainer(ancestor)) {\n return false\n }\n\n // case 2: buttons cannot be nested inside of other buttons\n if (\n ancestor.tagName.toLowerCase() === 'button' &&\n child.tagName.toLowerCase() === 'button'\n ) {\n return false\n }\n\n // A <p> tag cannot contain block-level elements (including other <p> tags)\n if (ancestor.tagName.toLowerCase() === 'p' && isBlockLevelElement(child)) {\n return false\n }\n\n return true\n}\n\n/**\n * Fixes invalid HTML nesting (e.g., <div> inside <p>) in a single O(n) pass.\n * It compares the current 'node' against a stack of its 'ancestors'.\n * @param node - The current DOM node being inspected.\n * @param ancestors - An array of the current node's parent elements\n */\nexport function fixInvalidNesting(\n node: Node,\n ancestors: HTMLElement[] = [],\n): void {\n // Whitespace-only text nodes are invalid children of table structure elements and must be removed.\n if (node.nodeType === Node.TEXT_NODE) {\n const parentTag = (node.parentNode as HTMLElement)?.tagName?.toLowerCase()\n\n if (tableTags.includes(parentTag) && !node.textContent?.trim()) {\n node.parentNode?.removeChild(node)\n }\n\n return\n }\n\n // We only care about element nodes\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return\n }\n\n const element = node as HTMLElement\n\n // We check the current element against every ancestor in the stack to see if there is any invalid nesting.\n // We iterate backwards (from immediate parent to root) so we fix the closest invalid container first.\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const ancestor = ancestors[i]\n\n // if the nesting is invalid\n if (!isValidNesting(element, ancestor)) {\n // change the ancestor to a div\n const div = element.ownerDocument.createElement('div')\n\n // Preserve all original attributes\n Array.from(ancestor.attributes).forEach(attr =>\n div.setAttribute(attr.name, attr.value),\n )\n\n // Move all children from the old element to the new <div>\n while (ancestor.firstChild) {\n div.appendChild(ancestor.firstChild)\n }\n\n // replace the ancestor with the new div\n if (ancestor.parentNode) {\n ancestor.parentNode.replaceChild(div, ancestor)\n }\n\n ancestors[i] = div // Update our local stack to reference to the new div\n }\n }\n\n // Push the current element to the stack before traversing children\n ancestors.push(element)\n\n Array.from(element.childNodes).forEach(child => {\n fixInvalidNesting(child, ancestors)\n })\n\n // Pop the current element off the stack after traversing its children\n ancestors.pop()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownUtils.js","names":[],"sources":["../../../src/components/Markdown/MarkdownUtils.ts"],"sourcesContent":["import katex from 'katex'\nimport { RefObject } from 'react'\nimport { MarkdownSynapseProps } from './MarkdownSynapse'\nimport MarkdownIt from 'markdown-it'\nimport { truncateString } from '@/utils/functions/StringUtils'\nimport {\n htmlToDOM,\n Element as DomElement,\n Text as DomText,\n type DOMNode,\n} from 'html-react-parser'\n\n/**\n * Find all math identified elements of the form [id^=\\\"mathjax-\\\"]\n * (e.g. <dom element id=\"mathjax-10\"> text </dom element>)\n * and transform them to their math markdown equivalents\n */\nexport function processMath(markupRef: RefObject<HTMLElement | null>) {\n if (!markupRef.current) {\n return\n }\n // use regex to grab all elements\n const mathExpressions =\n markupRef.current.querySelectorAll<HTMLElement>('[id^=\"mathjax-\"]')\n // go through all obtained elements and transform them with katex\n const regEx = new RegExp(/\\\\[()[\\]]/, 'g') // Look for a '\\' followed by either '(', ')', '[', or ']'. We delete these strings since they interfere with katex processing.\n mathExpressions.forEach(element => {\n if (element.textContent && !element.getAttribute('processed')) {\n // only process a math element once, used to double/triple process\n element.setAttribute('processed', 'true')\n const textContent = element.textContent.replace(regEx, '')\n return katex.render(textContent, element, {\n output: 'html',\n throwOnError: false,\n })\n }\n })\n}\n\n/**\n * When the markdown string is transferred over the network certain characters get transformed,\n * this does a simple transformation back to the original user's string.\n *\n * @param {string} xml\n * @returns\n * @memberof MarkdownSynapse\n */\nexport function decodeXml(xml: string) {\n const escapedOneToXmlSpecialMap = {\n '&amp;': '&',\n '&gt;': '>',\n '&lt;': '<',\n '&quot;': '\"',\n }\n return xml.replace(\n /(&quot;|&lt;|&gt;|&amp;)/g,\n (str: string, item: keyof typeof escapedOneToXmlSpecialMap) => {\n return escapedOneToXmlSpecialMap[item]\n },\n )\n}\n\nexport function addIdsToReferenceWidgets(text: string) {\n const referenceRegex =\n /<span.*?id=\"wikiReference.*?<span.*? data-widgetparams.*?span>/g\n let referenceCount = 1\n\n return text.replace(referenceRegex, () => {\n // replace all reference tags with id's of the form id=\"ref<number>\"\" that we can read onClick\n const current = referenceCount\n referenceCount += 1\n return `<a href=\"\" id=\"ref${current}\">[${current}]</a>`\n })\n}\n\nexport function addIdsToTocWidgets(text: string) {\n const tocId = 'SRC-header-'\n let tocIdCount = 1\n const TOC_HEADER_REGEX = /<h[1-6] toc=\"true\">.*<\\/h[1-6]>/gm\n\n return text.replace(TOC_HEADER_REGEX, (match: string) => {\n // replace with id of the form id=\"toc\" so we can read them with onclick events\n const curTocId = tocIdCount\n tocIdCount += 1\n const matchWithId = `${match.substring(\n 0,\n 3,\n )} id=\"${tocId}${curTocId}\"${match.substring(3)}`\n return matchWithId\n })\n}\n\n// Manually handle clicks to anchor tags where the scrollto isn't handled by page hash\nexport function handleLinkClicks(event: MouseEvent) {\n const genericElement = event.target as HTMLElement\n const currentTarget = event.currentTarget as HTMLElement\n if (genericElement.tagName === 'A' || genericElement.tagName === 'BUTTON') {\n const anchor = event.target as HTMLAnchorElement\n if (anchor.id.substring(0, 3) === 'ref') {\n event.preventDefault()\n\n // its a reference, so we scroll to the appropriate bookmark\n const referenceNumber = Number(currentTarget.id.substring(3)) // e.g. ref2 => '2'\n const goTo = currentTarget.querySelector(`#bookmark${referenceNumber}`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n } else if (\n currentTarget.id !== null &&\n anchor.getAttribute('data-anchor')\n ) {\n event.preventDefault()\n // handle table of contents widget\n const idOfContent = anchor.getAttribute('data-anchor')\n const goTo = currentTarget.querySelector(`[id=\"${idOfContent}\"]`)\n try {\n goTo!.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n })\n } catch (e) {\n console.log('error on scroll', e)\n }\n }\n }\n}\n\n/**\n * Extracts the plain text content from an HTML string. Implemented with an\n * isomorphic HTML parser (rather than `document.createElement`) so it can run\n * during server-side rendering / SSG prerender as well as in the browser.\n */\nexport function stripHTML(myHtmlString: string): string {\n if (!myHtmlString) {\n return ''\n }\n const collectText = (nodes: DOMNode[]): string =>\n nodes\n .map(node => {\n if (node instanceof DomText) {\n return node.data\n }\n if (node instanceof DomElement) {\n return collectText(node.children as DOMNode[])\n }\n return ''\n })\n .join('')\n\n return collectText(htmlToDOM(myHtmlString))\n}\n\nexport function transformStringIntoMarkdownProps(\n value: string,\n isRawMarkdown?: boolean,\n) {\n const newProps: MarkdownSynapseProps = {}\n if (isRawMarkdown) {\n newProps.markdown = value\n } else {\n if (value.includes('/wiki/')) {\n // value looks like syn20681023/wiki/594680\n const split = value.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n newProps.ownerId = ownerId\n newProps.wikiId = wikiId\n } else if (value) {\n // else assume it's an ownerId\n newProps.ownerId = value\n }\n }\n return newProps\n}\n\nconst md = new MarkdownIt()\n\nexport const markdownToPlainText = (markdown: string, maxLength?: number) => {\n if (!markdown || markdown.length === 0) {\n return ''\n }\n\n const html = md.render(markdown)\n const plainText = stripHTML(html)\n .replace(/\\|/g, '')\n .replace(/#/g, '')\n .replace(/<Synapse widget>/g, '')\n\n return maxLength ? truncateString(plainText, maxLength) : plainText\n}\n\nconst blockLevelTags = [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'p',\n 'pre',\n 'section',\n 'table',\n 'tfoot',\n 'ul',\n 'video',\n]\n\nconst inlineTags = ['span', 'a', 'em', 'strong', 'b', 'i', 'u', 'sub', 'sup']\n\nconst tableTags = ['table', 'thead', 'tbody', 'tr', 'tfoot']\n\n// Widget types that render inline elements and should not be treated as block-level\nconst inlineWidgetTypes = ['badge', 'image', 'imageLink', 'buttonlink']\n\nconst isInlineContainer = (node: DOMNode): boolean => {\n if (!(node instanceof DomElement)) {\n return false\n }\n\n const tag = node.name.toLowerCase()\n return inlineTags.includes(tag)\n}\n\n// Check if a node is a block level element\nexport const isBlockLevelElement = (node: DOMNode): boolean => {\n if (!(node instanceof DomElement)) {\n return false\n }\n\n const tag = node.name.toLowerCase()\n const isStandardBlock = blockLevelTags.includes(tag)\n\n const widgetParams = node.attribs['data-widgetparams'] ?? null\n const isWidget =\n widgetParams !== null &&\n !inlineWidgetTypes.includes(widgetParams.split('?')[0])\n\n return isStandardBlock || isWidget\n}\n\nfunction isValidNesting(child: DomElement, ancestor: DomElement): boolean {\n // case 1: block level elements cannot be inside of inline containers\n if (isBlockLevelElement(child) && isInlineContainer(ancestor)) {\n return false\n }\n\n // case 2: buttons cannot be nested inside of other buttons\n if (\n ancestor.name.toLowerCase() === 'button' &&\n child.name.toLowerCase() === 'button'\n ) {\n return false\n }\n\n // A <p> tag cannot contain block-level elements (including other <p> tags)\n if (ancestor.name.toLowerCase() === 'p' && isBlockLevelElement(child)) {\n return false\n }\n\n return true\n}\n\n/**\n * Fixes invalid HTML nesting (e.g., <div> inside <p>) in a single O(n) pass.\n * It compares the current 'node' against a stack of its 'ancestors'.\n *\n * Operates on the `domhandler` node tree produced by `html-react-parser`'s\n * `htmlToDOM`, so it runs identically in the browser and during SSR/SSG\n * prerender (no dependency on a live DOM, `DOMParser`, or `HTMLElement`).\n * @param node - The current node being inspected.\n * @param ancestors - An array of the current node's ancestor elements\n */\nexport function fixInvalidNesting(\n node: DOMNode,\n ancestors: DomElement[] = [],\n): void {\n // Whitespace-only text nodes are invalid children of table structure elements and must be removed.\n if (node instanceof DomText) {\n const parent = node.parent\n const parentTag =\n parent instanceof DomElement ? parent.name.toLowerCase() : undefined\n\n if (parentTag && tableTags.includes(parentTag) && !node.data?.trim()) {\n const siblings = (parent as DomElement).children\n const index = siblings.indexOf(node)\n if (index !== -1) {\n siblings.splice(index, 1)\n }\n }\n\n return\n }\n\n // We only care about element nodes\n if (!(node instanceof DomElement)) {\n return\n }\n\n const element = node\n\n // We check the current element against every ancestor in the stack to see if there is any invalid nesting.\n // We iterate backwards (from immediate parent to root) so we fix the closest invalid container first.\n for (let i = ancestors.length - 1; i >= 0; i--) {\n const ancestor = ancestors[i]\n\n // if the nesting is invalid\n if (!isValidNesting(element, ancestor)) {\n // Demote the ancestor to a <div> in place. Renaming preserves the\n // existing attributes (`attribs`) and children, so no node surgery is\n // required.\n ancestor.name = 'div'\n }\n }\n\n // Push the current element to the stack before traversing children\n ancestors.push(element)\n\n // Iterate over a copy because invalid table whitespace may be removed.\n Array.from(element.children).forEach(child => {\n fixInvalidNesting(child as DOMNode, ancestors)\n })\n\n // Pop the current element off the stack after traversing its children\n ancestors.pop()\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownWidget.js","names":[],"sources":["../../../src/components/Markdown/MarkdownWidget.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport type { ButtonLinkWidgetParams } from './widget/MarkdownButton'\nimport type { MarkdownEntityPreviewProps } from './widget/MarkdownEntityPreview'\nimport type { MarkdownIDUReportProps } from './widget/MarkdownIDUReport'\nimport type { MarkdownProvenanceGraphProps } from './widget/MarkdownProvenanceGraph'\nimport type { ImageWidgetParams } from './widget/MarkdownSynapseImage'\nimport type { MarkdownSynapsePlotProps } from './widget/MarkdownSynapsePlot'\nimport type { MarkdownSynapseTableProps } from './widget/MarkdownSynapseTable'\nimport type { MarkdownUserOrTeamBadgeProps } from './widget/MarkdownUserOrTeamBadge'\nimport type { MarkdownVideoProps } from './widget/MarkdownVideo'\n\n// Lazy load all widgets -- some can be large & cyclical component trees that will prevent bundle-splitting if we do not dynamically import them\nconst MarkdownVideo = lazy(() => import('./widget/MarkdownVideo'))\nconst MarkdownEntityPreview = lazy(\n () => import('./widget/MarkdownEntityPreview'),\n)\nconst MarkdownIDUReport = lazy(() => import('./widget/MarkdownIDUReport'))\nconst MarkdownProvenanceGraph = lazy(\n () => import('./widget/MarkdownProvenanceGraph'),\n)\nconst MarkdownSynapseImage = lazy(() => import('./widget/MarkdownSynapseImage'))\nconst MarkdownSynapsePlot = lazy(() => import('./widget/MarkdownSynapsePlot'))\nconst MarkdownUserOrTeamBadge = lazy(\n () => import('./widget/MarkdownUserOrTeamBadge'),\n)\nconst MarkdownButton = lazy(() => import('./widget/MarkdownButton'))\nconst MarkdownSynapseTable = lazy(() => import('./widget/MarkdownSynapseTable'))\nconst MarkdownTableOfContents = lazy(\n () => import('./widget/MarkdownTableOfContents'),\n)\n\ntype ButtonLink = {\n widgetType: 'buttonlink'\n widgetParamsMapped: ButtonLinkWidgetParams\n}\n\ntype Image = {\n widgetType: 'image'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype ImageLink = {\n widgetType: 'imageLink'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype Plot = {\n widgetType: 'plot'\n widgetParamsMapped: MarkdownSynapsePlotProps\n}\n\ntype TableOfContents = {\n widgetType: 'toc'\n widgetParamsMapped: never\n}\n\ntype UserBadge = {\n widgetType: 'badge'\n widgetParamsMapped: MarkdownUserOrTeamBadgeProps\n}\n\ntype IDUReport = {\n widgetType: 'iduReport'\n widgetParamsMapped: MarkdownIDUReportProps\n}\n\ntype Video = {\n widgetType: 'video' | 'vimeo' | 'youtube'\n widgetParamsMapped: MarkdownVideoProps\n}\n\ntype SynapseTableMarkdown = {\n widgetType: 'synapsetable'\n widgetParamsMapped: MarkdownSynapseTableProps\n}\n\ntype ProvenanceGraph = {\n widgetType: 'provenance'\n widgetParamsMapped: MarkdownProvenanceGraphProps\n}\n\ntype Preview = {\n widgetType: 'preview'\n widgetParamsMapped: MarkdownEntityPreviewProps\n}\n\ntype MarkdownWidgetDefinition =\n | ButtonLink\n | Image\n | ImageLink\n | Plot\n | TableOfContents\n | UserBadge\n | IDUReport\n | Video\n | SynapseTableMarkdown\n | ProvenanceGraph\n | Preview\n\nexport type MarkdownWidgetProps = MarkdownWidgetDefinition & {\n originalMarkup: string\n}\n\nfunction MarkdownWidget(props: MarkdownWidgetProps) {\n const { widgetType, widgetParamsMapped, originalMarkup } = props\n switch (widgetType) {\n case 'buttonlink':\n return <MarkdownButton {...widgetParamsMapped} />\n case 'image':\n case 'imageLink':\n return <MarkdownSynapseImage {...widgetParamsMapped} />\n case 'plot':\n return <MarkdownSynapsePlot {...widgetParamsMapped} />\n case 'toc':\n return <MarkdownTableOfContents originalMarkup={originalMarkup} />\n case 'badge':\n return <MarkdownUserOrTeamBadge {...widgetParamsMapped} />\n case 'iduReport':\n return <MarkdownIDUReport {...widgetParamsMapped} />\n case 'video':\n case 'vimeo':\n case 'youtube':\n return <MarkdownVideo {...widgetParamsMapped} />\n case 'synapsetable':\n return <MarkdownSynapseTable {...widgetParamsMapped} />\n case 'provenance':\n return <MarkdownProvenanceGraph {...widgetParamsMapped} />\n case 'preview':\n return <MarkdownEntityPreview {...widgetParamsMapped} />\n default:\n console.warn(`Unsupported widget: ${widgetType}.`)\n return <></>\n }\n}\n\nexport default function MarkdownWidgetWithWrapper(props: MarkdownWidgetProps) {\n // Wrap the widget in an error boundary and suspense\n return (\n <SynapseErrorBoundary>\n <Suspense>\n <MarkdownWidget {...props} />\n </Suspense>\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;AAaA,IAAM,IAAgB,QAAW,OAAO,6BAA0B,EAC5D,IAAwB,QACtB,OAAO,qCACd,EACK,IAAoB,QAAW,OAAO,iCAA8B,EACpE,IAA0B,QACxB,OAAO,uCACd,EACK,IAAuB,QAAW,OAAO,oCAAiC,EAC1E,IAAsB,QAAW,OAAO,mCAAgC,EACxE,IAA0B,QACxB,OAAO,uCACd,EACK,IAAiB,QAAW,OAAO,8BAA2B,EAC9D,IAAuB,QAAW,OAAO,oCAAiC,EAC1E,IAA0B,QACxB,OAAO,uCACd;AA0ED,SAAS,EAAe,GAA4B;CAClD,IAAM,EAAE,eAAY,uBAAoB,sBAAmB;AAC3D,SAAQ,GAAR;EACE,KAAK,aACH,QAAO,kBAAC,GAAD,EAAgB,GAAI,GAAsB,CAAA;EACnD,KAAK;EACL,KAAK,YACH,QAAO,kBAAC,GAAD,EAAsB,GAAI,GAAsB,CAAA;EACzD,KAAK,OACH,QAAO,kBAAC,GAAD,EAAqB,GAAI,GAAsB,CAAA;EACxD,KAAK,MACH,QAAO,kBAAC,GAAD,EAAyC,mBAAkB,CAAA;EACpE,KAAK,QACH,QAAO,kBAAC,GAAD,EAAyB,GAAI,GAAsB,CAAA;EAC5D,KAAK,YACH,QAAO,kBAAC,GAAD,EAAmB,GAAI,GAAsB,CAAA;EACtD,KAAK;EACL,KAAK;EACL,KAAK,UACH,QAAO,kBAAC,GAAD,EAAe,GAAI,GAAsB,CAAA;EAClD,KAAK,eACH,QAAO,kBAAC,GAAD,EAAsB,GAAI,GAAsB,CAAA;EACzD,KAAK,aACH,QAAO,kBAAC,GAAD,EAAyB,GAAI,GAAsB,CAAA;EAC5D,KAAK,UACH,QAAO,kBAAC,GAAD,EAAuB,GAAI,GAAsB,CAAA;EAC1D,QAEE,QADA,QAAQ,KAAK,uBAAuB,EAAW,GAAG,EAC3C,kBAAA,GAAA,EAAK,CAAA;;;AAIlB,SAAwB,EAA0B,GAA4B;AAE5E,QACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAgB,GAAI,GAAS,CAAA,EACpB,CAAA,EACU,CAAA"}
1
+ {"version":3,"file":"MarkdownWidget.js","names":[],"sources":["../../../src/components/Markdown/MarkdownWidget.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport type { ButtonLinkWidgetParams } from './widget/MarkdownButton'\nimport type { MarkdownEntityPreviewProps } from './widget/MarkdownEntityPreview'\nimport type { MarkdownIDUReportProps } from './widget/MarkdownIDUReport'\nimport type { MarkdownProvenanceGraphProps } from './widget/MarkdownProvenanceGraph'\nimport type { ImageWidgetParams } from './widget/MarkdownSynapseImage'\nimport type { MarkdownSynapsePlotProps } from './widget/MarkdownSynapsePlot'\nimport type { MarkdownSynapseTableProps } from './widget/MarkdownSynapseTable'\nimport type { MarkdownUserOrTeamBadgeProps } from './widget/MarkdownUserOrTeamBadge'\nimport type { MarkdownVideoProps } from './widget/MarkdownVideo'\n\n// Lazy load all widgets -- some can be large & cyclical component trees that will prevent bundle-splitting if we do not dynamically import them\nconst MarkdownVideo = lazy(() => import('./widget/MarkdownVideo'))\nconst MarkdownEntityPreview = lazy(\n () => import('./widget/MarkdownEntityPreview'),\n)\nconst MarkdownIDUReport = lazy(() => import('./widget/MarkdownIDUReport'))\nconst MarkdownProvenanceGraph = lazy(\n () => import('./widget/MarkdownProvenanceGraph'),\n)\nconst MarkdownSynapseImage = lazy(() => import('./widget/MarkdownSynapseImage'))\nconst MarkdownSynapsePlot = lazy(() => import('./widget/MarkdownSynapsePlot'))\nconst MarkdownUserOrTeamBadge = lazy(\n () => import('./widget/MarkdownUserOrTeamBadge'),\n)\nconst MarkdownButton = lazy(() => import('./widget/MarkdownButton'))\nconst MarkdownSynapseTable = lazy(() => import('./widget/MarkdownSynapseTable'))\nconst MarkdownTableOfContents = lazy(\n () => import('./widget/MarkdownTableOfContents'),\n)\n\ntype ButtonLink = {\n widgetType: 'buttonlink'\n widgetParamsMapped: ButtonLinkWidgetParams\n}\n\ntype Image = {\n widgetType: 'image'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype ImageLink = {\n widgetType: 'imageLink'\n widgetParamsMapped: ImageWidgetParams\n}\n\ntype Plot = {\n widgetType: 'plot'\n widgetParamsMapped: MarkdownSynapsePlotProps\n}\n\ntype TableOfContents = {\n widgetType: 'toc'\n widgetParamsMapped: never\n}\n\ntype UserBadge = {\n widgetType: 'badge'\n widgetParamsMapped: MarkdownUserOrTeamBadgeProps\n}\n\ntype IDUReport = {\n widgetType: 'iduReport'\n widgetParamsMapped: MarkdownIDUReportProps\n}\n\ntype Video = {\n widgetType: 'video' | 'vimeo' | 'youtube'\n widgetParamsMapped: MarkdownVideoProps\n}\n\ntype SynapseTableMarkdown = {\n widgetType: 'synapsetable'\n widgetParamsMapped: MarkdownSynapseTableProps\n}\n\ntype ProvenanceGraph = {\n widgetType: 'provenance'\n widgetParamsMapped: MarkdownProvenanceGraphProps\n}\n\ntype Preview = {\n widgetType: 'preview'\n widgetParamsMapped: MarkdownEntityPreviewProps\n}\n\ntype MarkdownWidgetDefinition =\n | ButtonLink\n | Image\n | ImageLink\n | Plot\n | TableOfContents\n | UserBadge\n | IDUReport\n | Video\n | SynapseTableMarkdown\n | ProvenanceGraph\n | Preview\n\nexport type MarkdownWidgetProps = MarkdownWidgetDefinition & {\n originalMarkup: string\n}\n\nfunction MarkdownWidget(props: MarkdownWidgetProps) {\n const { widgetType, widgetParamsMapped, originalMarkup } = props\n switch (widgetType) {\n case 'buttonlink':\n return <MarkdownButton {...widgetParamsMapped} />\n case 'image':\n case 'imageLink':\n return <MarkdownSynapseImage {...widgetParamsMapped} />\n case 'plot':\n return <MarkdownSynapsePlot {...widgetParamsMapped} />\n case 'toc':\n return <MarkdownTableOfContents originalMarkup={originalMarkup} />\n case 'badge':\n return <MarkdownUserOrTeamBadge {...widgetParamsMapped} />\n case 'iduReport':\n return <MarkdownIDUReport {...widgetParamsMapped} />\n case 'video':\n case 'vimeo':\n case 'youtube':\n return <MarkdownVideo {...widgetParamsMapped} />\n case 'synapsetable':\n return <MarkdownSynapseTable {...widgetParamsMapped} />\n case 'provenance':\n return <MarkdownProvenanceGraph {...widgetParamsMapped} />\n case 'preview':\n return <MarkdownEntityPreview {...widgetParamsMapped} />\n default:\n console.warn(`Unsupported widget: ${widgetType}.`)\n return <></>\n }\n}\n\nexport default function MarkdownWidgetWithWrapper(props: MarkdownWidgetProps) {\n // Wrap the widget in an error boundary and suspense\n return (\n <SynapseErrorBoundary>\n <Suspense>\n <MarkdownWidget {...props} />\n </Suspense>\n </SynapseErrorBoundary>\n )\n}\n"],"mappings":";;;;AAaA,IAAM,IAAgB,QAAW,OAAO,4BAAyB,GAC3D,IAAwB,QACtB,OAAO,oCACf,GACM,IAAoB,QAAW,OAAO,gCAA6B,GACnE,IAA0B,QACxB,OAAO,sCACf,GACM,IAAuB,QAAW,OAAO,mCAAgC,GACzE,IAAsB,QAAW,OAAO,kCAA+B,GACvE,IAA0B,QACxB,OAAO,sCACf,GACM,IAAiB,QAAW,OAAO,6BAA0B,GAC7D,IAAuB,QAAW,OAAO,mCAAgC,GACzE,IAA0B,QACxB,OAAO,sCACf;AA0EA,SAAS,EAAe,GAA4B;CAClD,IAAM,EAAE,eAAY,uBAAoB,sBAAmB;CAC3D,QAAQ,GAAR;EACE,KAAK,cACH,OAAO,kBAAC,GAAD,EAAgB,GAAI,EAAqB,CAAA;EAClD,KAAK;EACL,KAAK,aACH,OAAO,kBAAC,GAAD,EAAsB,GAAI,EAAqB,CAAA;EACxD,KAAK,QACH,OAAO,kBAAC,GAAD,EAAqB,GAAI,EAAqB,CAAA;EACvD,KAAK,OACH,OAAO,kBAAC,GAAD,EAAyC,kBAAiB,CAAA;EACnE,KAAK,SACH,OAAO,kBAAC,GAAD,EAAyB,GAAI,EAAqB,CAAA;EAC3D,KAAK,aACH,OAAO,kBAAC,GAAD,EAAmB,GAAI,EAAqB,CAAA;EACrD,KAAK;EACL,KAAK;EACL,KAAK,WACH,OAAO,kBAAC,GAAD,EAAe,GAAI,EAAqB,CAAA;EACjD,KAAK,gBACH,OAAO,kBAAC,GAAD,EAAsB,GAAI,EAAqB,CAAA;EACxD,KAAK,cACH,OAAO,kBAAC,GAAD,EAAyB,GAAI,EAAqB,CAAA;EAC3D,KAAK,WACH,OAAO,kBAAC,GAAD,EAAuB,GAAI,EAAqB,CAAA;EACzD,SAEE,OADA,QAAQ,KAAK,uBAAuB,EAAW,EAAE,GAC1C,kBAAA,GAAA,CAAI,CAAA;CACf;AACF;AAEA,SAAwB,EAA0B,GAA4B;CAE5E,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAgB,GAAI,EAAQ,CAAA,EACpB,CAAA,EACU,CAAA;AAE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseWikiContext.js","names":[],"sources":["../../../src/components/Markdown/SynapseWikiContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from 'react'\nimport { FileHandleResults, WikiPage } from '@sage-bionetworks/synapse-types'\n\nexport type SynapseWikiContextType = {\n ownerId?: string\n wikiId?: string\n wikiPage?: Partial<WikiPage>\n /** Downloaded file handles that are attached to the wiki */\n fileHandles?: FileHandleResults\n}\n\n/**\n * This must be exported to use the context in class components.\n */\nexport const SynapseWikiContext = createContext<\n SynapseWikiContextType | undefined\n>(undefined)\n\nexport type SynapseWikiContextProviderProps = {\n wikiContext?: SynapseWikiContextType\n children?: ReactNode\n}\n\n/**\n * Provides context related to Synapse Wikis\n * @param param0\n * @returns\n */\nexport function SynapseWikiContextProvider({\n children,\n wikiContext,\n}: SynapseWikiContextProviderProps) {\n return (\n <SynapseWikiContext.Provider value={wikiContext}>\n {children}\n </SynapseWikiContext.Provider>\n )\n}\n\nexport const SynapseWikiContextConsumer = SynapseWikiContext.Consumer\n\nexport function useWikiContext(): SynapseWikiContextType {\n const context = useContext(SynapseWikiContext)\n return context ?? {}\n}\n"],"mappings":";;;AAcA,IAAa,IAAqB,EAEhC,KAAA,EAAU;AAYZ,SAAgB,EAA2B,EACzC,aACA,kBACkC;AAClC,QACE,kBAAC,EAAmB,UAApB;EAA6B,OAAO;EACjC;EAC2B,CAAA;;AAIlC,IAAa,IAA6B,EAAmB;AAE7D,SAAgB,IAAyC;AAEvD,QADgB,EAAW,EACpB,IAAW,EAAE"}
1
+ {"version":3,"file":"SynapseWikiContext.js","names":[],"sources":["../../../src/components/Markdown/SynapseWikiContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from 'react'\nimport { FileHandleResults, WikiPage } from '@sage-bionetworks/synapse-types'\n\nexport type SynapseWikiContextType = {\n ownerId?: string\n wikiId?: string\n wikiPage?: Partial<WikiPage>\n /** Downloaded file handles that are attached to the wiki */\n fileHandles?: FileHandleResults\n}\n\n/**\n * This must be exported to use the context in class components.\n */\nexport const SynapseWikiContext = createContext<\n SynapseWikiContextType | undefined\n>(undefined)\n\nexport type SynapseWikiContextProviderProps = {\n wikiContext?: SynapseWikiContextType\n children?: ReactNode\n}\n\n/**\n * Provides context related to Synapse Wikis\n * @param param0\n * @returns\n */\nexport function SynapseWikiContextProvider({\n children,\n wikiContext,\n}: SynapseWikiContextProviderProps) {\n return (\n <SynapseWikiContext.Provider value={wikiContext}>\n {children}\n </SynapseWikiContext.Provider>\n )\n}\n\nexport const SynapseWikiContextConsumer = SynapseWikiContext.Consumer\n\nexport function useWikiContext(): SynapseWikiContextType {\n const context = useContext(SynapseWikiContext)\n return context ?? {}\n}\n"],"mappings":";;;AAcA,IAAa,IAAqB,EAEhC,KAAA,CAAS;AAYX,SAAgB,EAA2B,EACzC,aACA,kBACkC;CAClC,OACE,kBAAC,EAAmB,UAApB;EAA6B,OAAO;EACjC;CAC0B,CAAA;AAEjC;AAEA,IAAa,IAA6B,EAAmB;AAE7D,SAAgB,IAAyC;CAEvD,OADgB,EAAW,CACpB,KAAW,CAAC;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMentionModal.js","names":[],"sources":["../../../src/components/Markdown/UserMentionModal.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { TYPE_FILTER, UserGroupHeader } from '@sage-bionetworks/synapse-types'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\n\nexport type UserMentionModalProps = {\n show: boolean\n onClose: () => void\n handleUserTag: (user: string) => void\n}\n\nexport function UserMentionModal({\n show,\n onClose,\n handleUserTag,\n}: UserMentionModalProps) {\n const onUserChange = useCallback(\n (selected: string | null, header: UserGroupHeader | null) => {\n if (selected && header) {\n handleUserTag(header.userName)\n }\n onClose()\n },\n [onClose, handleUserTag],\n )\n\n return (\n <>\n <DialogBase\n open={show}\n onCancel={onClose}\n title=\"Find User or Team\"\n content={\n <UserSearchBox\n placeholder=\"Search for a user or team name\"\n onChange={onUserChange}\n typeFilter={TYPE_FILTER.ALL}\n autoFocus={true}\n />\n }\n sx={{\n '.MuiDialog-paperFullWidth': {\n overflowY: 'visible',\n '.MuiDialogContent-root': { overflowY: 'visible' },\n },\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EAAiB,EAC/B,SACA,YACA,oBACwB;AAWxB,QACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,MAAM;EACN,UAAU;EACV,OAAM;EACN,SACE,kBAAC,GAAD;GACE,aAAY;GACZ,UAnBW,GAClB,GAAyB,MAAmC;AAI3D,IAHI,KAAY,KACd,EAAc,EAAO,SAAS,EAEhC,GAAS;MAEX,CAAC,GAAS,EAAc,CAYN;GACV,YAAY,EAAY;GACxB,WAAW;GACX,CAAA;EAEJ,IAAI,EACF,6BAA6B;GAC3B,WAAW;GACX,0BAA0B,EAAE,WAAW,WAAW;GACnD,EACF;EACD,CAAA,EACD,CAAA"}
1
+ {"version":3,"file":"UserMentionModal.js","names":[],"sources":["../../../src/components/Markdown/UserMentionModal.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport { TYPE_FILTER, UserGroupHeader } from '@sage-bionetworks/synapse-types'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\n\nexport type UserMentionModalProps = {\n show: boolean\n onClose: () => void\n handleUserTag: (user: string) => void\n}\n\nexport function UserMentionModal({\n show,\n onClose,\n handleUserTag,\n}: UserMentionModalProps) {\n const onUserChange = useCallback(\n (selected: string | null, header: UserGroupHeader | null) => {\n if (selected && header) {\n handleUserTag(header.userName)\n }\n onClose()\n },\n [onClose, handleUserTag],\n )\n\n return (\n <>\n <DialogBase\n open={show}\n onCancel={onClose}\n title=\"Find User or Team\"\n content={\n <UserSearchBox\n placeholder=\"Search for a user or team name\"\n onChange={onUserChange}\n typeFilter={TYPE_FILTER.ALL}\n autoFocus={true}\n />\n }\n sx={{\n '.MuiDialog-paperFullWidth': {\n overflowY: 'visible',\n '.MuiDialogContent-root': { overflowY: 'visible' },\n },\n }}\n />\n </>\n )\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EAAiB,EAC/B,SACA,YACA,oBACwB;CAWxB,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACE,MAAM;EACN,UAAU;EACV,OAAM;EACN,SACE,kBAAC,GAAD;GACE,aAAY;GACZ,UAnBW,GAClB,GAAyB,MAAmC;IAI3D,AAHI,KAAY,KACd,EAAc,EAAO,QAAQ,GAE/B,EAAQ;GACV,GACA,CAAC,GAAS,CAAa,CAYL;GACV,YAAY,EAAY;GACxB,WAAW;EACZ,CAAA;EAEH,IAAI,EACF,6BAA6B;GAC3B,WAAW;GACX,0BAA0B,EAAE,WAAW,UAAU;EACnD,EACF;CACD,CAAA,EACD,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"Bookmarks.js","names":[],"sources":["../../../../src/components/Markdown/widget/Bookmarks.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\n\nexport type BookmarksProps = {\n footnotes: string\n}\n\nclass Bookmarks extends Component<BookmarksProps, never> {\n constructor(props: BookmarksProps) {\n super(props)\n this.renderBookmarks = this.renderBookmarks.bind(this)\n }\n\n /**\n * Returns bookmarks\n *\n * @returns JSX for the embedded bookmarks in the markdown passed in as a prop\n * @memberof Bookmarks\n */\n public renderBookmarks() {\n const copyFootnotes: string = String(this.props.footnotes)\n\n // find all the links embedded in the markdown below\n const regex = /Synapse widget&gt;<\\/span>(.*)</g\n let matchedGroup: RegExpExecArray | null\n const output: string[] = []\n // below we use regex.exec to find the find matched group containing the citation source\n while ((matchedGroup = regex.exec(copyFootnotes))) {\n output.push(matchedGroup[1])\n }\n\n // return all the links formatted accordingly\n return output.map((el, index) => {\n const isBeforeLastElement = index < output.length - 1\n return (\n <Fragment key={index}>\n <button className=\"SRC-markdown-bookmark\" id={`bookmark${index}`}>\n [{index + 1}]\n </button>\n <span dangerouslySetInnerHTML={{ __html: el }} />\n {isBeforeLastElement && <br />}\n </Fragment>\n )\n })\n }\n\n public render() {\n return (\n <>\n <hr />\n {this.renderBookmarks()}\n </>\n )\n }\n}\n\nexport default Bookmarks\n"],"mappings":";;;AAMA,IAAM,IAAN,cAAwB,EAAiC;CACvD,YAAY,GAAuB;AAEjC,EADA,MAAM,EAAM,EACZ,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,KAAK;;CASxD,kBAAyB;EACvB,IAAM,IAAwB,OAAO,KAAK,MAAM,UAAU,EAGpD,IAAQ,oCACV,GACE,IAAmB,EAAE;AAE3B,SAAQ,IAAe,EAAM,KAAK,EAAc,EAC9C,GAAO,KAAK,EAAa,GAAG;AAI9B,SAAO,EAAO,KAAK,GAAI,MAAU;GAC/B,IAAM,IAAsB,IAAQ,EAAO,SAAS;AACpD,UACE,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,UAAD;KAAQ,WAAU;KAAwB,IAAI,WAAW;eAAzD;MAAkE;MAC9D,IAAQ;MAAE;MACL;;IACT,kBAAC,QAAD,EAAM,yBAAyB,EAAE,QAAQ,GAAI,EAAI,CAAA;IAChD,KAAuB,kBAAC,MAAD,EAAM,CAAA;IACrB,EAAA,EANI,EAMJ;IAEb;;CAGJ,SAAgB;AACd,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,MAAD,EAAM,CAAA,EACL,KAAK,iBAAiB,CACtB,EAAA,CAAA"}
1
+ {"version":3,"file":"Bookmarks.js","names":[],"sources":["../../../../src/components/Markdown/widget/Bookmarks.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\n\nexport type BookmarksProps = {\n footnotes: string\n}\n\nclass Bookmarks extends Component<BookmarksProps, never> {\n constructor(props: BookmarksProps) {\n super(props)\n this.renderBookmarks = this.renderBookmarks.bind(this)\n }\n\n /**\n * Returns bookmarks\n *\n * @returns JSX for the embedded bookmarks in the markdown passed in as a prop\n * @memberof Bookmarks\n */\n public renderBookmarks() {\n const copyFootnotes: string = String(this.props.footnotes)\n\n // find all the links embedded in the markdown below\n const regex = /Synapse widget&gt;<\\/span>(.*)</g\n let matchedGroup: RegExpExecArray | null\n const output: string[] = []\n // below we use regex.exec to find the find matched group containing the citation source\n while ((matchedGroup = regex.exec(copyFootnotes))) {\n output.push(matchedGroup[1])\n }\n\n // return all the links formatted accordingly\n return output.map((el, index) => {\n const isBeforeLastElement = index < output.length - 1\n return (\n <Fragment key={index}>\n <button className=\"SRC-markdown-bookmark\" id={`bookmark${index}`}>\n [{index + 1}]\n </button>\n <span dangerouslySetInnerHTML={{ __html: el }} />\n {isBeforeLastElement && <br />}\n </Fragment>\n )\n })\n }\n\n public render() {\n return (\n <>\n <hr />\n {this.renderBookmarks()}\n </>\n )\n }\n}\n\nexport default Bookmarks\n"],"mappings":";;;AAMA,IAAM,IAAN,cAAwB,EAAiC;CACvD,YAAY,GAAuB;EAEjC,AADA,MAAM,CAAK,GACX,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI;CACvD;CAQA,kBAAyB;EACvB,IAAM,IAAwB,OAAO,KAAK,MAAM,SAAS,GAGnD,IAAQ,oCACV,GACE,IAAmB,CAAC;EAE1B,OAAQ,IAAe,EAAM,KAAK,CAAa,IAC7C,EAAO,KAAK,EAAa,EAAE;EAI7B,OAAO,EAAO,KAAK,GAAI,MAAU;GAC/B,IAAM,IAAsB,IAAQ,EAAO,SAAS;GACpD,OACE,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,UAAD;KAAQ,WAAU;KAAwB,IAAI,WAAW;eAAzD;MAAkE;MAC9D,IAAQ;MAAE;KACN;;IACR,kBAAC,QAAD,EAAM,yBAAyB,EAAE,QAAQ,EAAG,EAAI,CAAA;IAC/C,KAAuB,kBAAC,MAAD,CAAK,CAAA;GACrB,EAAA,GANK,CAML;EAEd,CAAC;CACH;CAEA,SAAgB;EACd,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,MAAD,CAAK,CAAA,GACJ,KAAK,gBAAgB,CACtB,EAAA,CAAA;CAEN;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownButton.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownButton.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { ButtonProps } from '@mui/material'\nimport { Link as RouterLink, useInRouterContext } from 'react-router'\n\nexport type ButtonLinkWidgetParams = {\n align?: string\n highlight?: string\n url?: string\n text?: string\n}\n\nexport default function MarkdownButton(\n widgetParamsMapped: ButtonLinkWidgetParams,\n) {\n let buttonClasses = ''\n const { align = '', highlight: _highlight = '' } = widgetParamsMapped\n const highlight = _highlight === 'true'\n const alignLowerCase = align.toLowerCase()\n if (alignLowerCase === 'left') {\n buttonClasses += 'floatleft '\n }\n if (alignLowerCase === 'right') {\n buttonClasses += 'floatright '\n }\n const buttonIsCenterAligned = alignLowerCase === 'center'\n const buttonColor = highlight ? 'secondary' : 'neutral'\n const isExternalLink =\n widgetParamsMapped.url?.startsWith('http://') ||\n widgetParamsMapped.url?.startsWith('https://')\n const inRouterContext = useInRouterContext()\n\n let linkProps: Partial<ButtonProps> & { target?: string; to?: string } = {}\n\n if (isExternalLink) {\n linkProps = {\n href: widgetParamsMapped.url,\n target: '_blank',\n rel: 'noopener noreferrer',\n component: 'a',\n }\n } else if (inRouterContext) {\n // For internal links, if we are in a react-router context, we want to use the RouterLink\n linkProps = {\n to: widgetParamsMapped.url,\n component: RouterLink,\n }\n } else {\n linkProps = {\n href: widgetParamsMapped.url,\n component: 'a',\n }\n }\n\n const button = (\n <WideButton\n className={buttonClasses}\n variant=\"contained\"\n color={buttonColor}\n {...linkProps}\n sx={{\n '&:hover': {\n backgroundColor: highlight ? undefined : 'secondary.main',\n color: 'white',\n },\n ...(!buttonIsCenterAligned &&\n widgetParamsMapped.url && {\n margin: '20px 20px 20px 0px',\n }),\n }}\n >\n {widgetParamsMapped.text}\n </WideButton>\n )\n\n return buttonIsCenterAligned ? (\n <span style={{ display: 'block', textAlign: 'center' }}>{button}</span>\n ) : (\n <span>{button}</span>\n )\n}\n"],"mappings":";;;;AAWA,SAAwB,EACtB,GACA;CACA,IAAI,IAAgB,IACd,EAAE,WAAQ,IAAI,WAAW,IAAa,OAAO,GAC7C,IAAY,MAAe,QAC3B,IAAiB,EAAM,aAAa;AAI1C,CAHI,MAAmB,WACrB,KAAiB,eAEf,MAAmB,YACrB,KAAiB;CAEnB,IAAM,IAAwB,MAAmB,UAC3C,IAAc,IAAY,cAAc,WACxC,IACJ,EAAmB,KAAK,WAAW,UAAU,IAC7C,EAAmB,KAAK,WAAW,WAAW,EAC1C,IAAkB,GAAoB,EAExC,IAAqE,EAAE;AAE3E,CAcE,IAdE,IACU;EACV,MAAM,EAAmB;EACzB,QAAQ;EACR,KAAK;EACL,WAAW;EACZ,GACQ,IAEG;EACV,IAAI,EAAmB;EACvB,WAAW;EACZ,GAEW;EACV,MAAM,EAAmB;EACzB,WAAW;EACZ;CAGH,IAAM,IACJ,kBAAC,GAAD;EACE,WAAW;EACX,SAAQ;EACR,OAAO;EACP,GAAI;EACJ,IAAI;GACF,WAAW;IACT,iBAAiB,IAAY,KAAA,IAAY;IACzC,OAAO;IACR;GACD,GAAI,CAAC,KACH,EAAmB,OAAO,EACxB,QAAQ,sBACT;GACJ;YAEA,EAAmB;EACT,CAAA;AAGf,QAAO,IACL,kBAAC,QAAD;EAAM,OAAO;GAAE,SAAS;GAAS,WAAW;GAAU;YAAG;EAAc,CAAA,GAEvE,kBAAC,QAAD,EAAA,UAAO,GAAc,CAAA"}
1
+ {"version":3,"file":"MarkdownButton.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownButton.tsx"],"sourcesContent":["import WideButton from '@/components/styled/WideButton'\nimport { ButtonProps } from '@mui/material'\nimport { Link as RouterLink, useInRouterContext } from 'react-router'\n\nexport type ButtonLinkWidgetParams = {\n align?: string\n highlight?: string\n url?: string\n text?: string\n}\n\nexport default function MarkdownButton(\n widgetParamsMapped: ButtonLinkWidgetParams,\n) {\n let buttonClasses = ''\n const { align = '', highlight: _highlight = '' } = widgetParamsMapped\n const highlight = _highlight === 'true'\n const alignLowerCase = align.toLowerCase()\n if (alignLowerCase === 'left') {\n buttonClasses += 'floatleft '\n }\n if (alignLowerCase === 'right') {\n buttonClasses += 'floatright '\n }\n const buttonIsCenterAligned = alignLowerCase === 'center'\n const buttonColor = highlight ? 'secondary' : 'neutral'\n const isExternalLink =\n widgetParamsMapped.url?.startsWith('http://') ||\n widgetParamsMapped.url?.startsWith('https://')\n const inRouterContext = useInRouterContext()\n\n let linkProps: Partial<ButtonProps> & { target?: string; to?: string } = {}\n\n if (isExternalLink) {\n linkProps = {\n href: widgetParamsMapped.url,\n target: '_blank',\n rel: 'noopener noreferrer',\n component: 'a',\n }\n } else if (inRouterContext) {\n // For internal links, if we are in a react-router context, we want to use the RouterLink\n linkProps = {\n to: widgetParamsMapped.url,\n component: RouterLink,\n }\n } else {\n linkProps = {\n href: widgetParamsMapped.url,\n component: 'a',\n }\n }\n\n const button = (\n <WideButton\n className={buttonClasses}\n variant=\"contained\"\n color={buttonColor}\n {...linkProps}\n sx={{\n '&:hover': {\n backgroundColor: highlight ? undefined : 'secondary.main',\n color: 'white',\n },\n ...(!buttonIsCenterAligned &&\n widgetParamsMapped.url && {\n margin: '20px 20px 20px 0px',\n }),\n }}\n >\n {widgetParamsMapped.text}\n </WideButton>\n )\n\n return buttonIsCenterAligned ? (\n <span style={{ display: 'block', textAlign: 'center' }}>{button}</span>\n ) : (\n <span>{button}</span>\n )\n}\n"],"mappings":";;;;AAWA,SAAwB,EACtB,GACA;CACA,IAAI,IAAgB,IACd,EAAE,WAAQ,IAAI,WAAW,IAAa,OAAO,GAC7C,IAAY,MAAe,QAC3B,IAAiB,EAAM,YAAY;CAIzC,AAHI,MAAmB,WACrB,KAAiB,eAEf,MAAmB,YACrB,KAAiB;CAEnB,IAAM,IAAwB,MAAmB,UAC3C,IAAc,IAAY,cAAc,WACxC,IACJ,EAAmB,KAAK,WAAW,SAAS,KAC5C,EAAmB,KAAK,WAAW,UAAU,GACzC,IAAkB,EAAmB,GAEvC,IAAqE,CAAC;CAE1E,AAcE,IAdE,IACU;EACV,MAAM,EAAmB;EACzB,QAAQ;EACR,KAAK;EACL,WAAW;CACb,IACS,IAEG;EACV,IAAI,EAAmB;EACvB,WAAW;CACb,IAEY;EACV,MAAM,EAAmB;EACzB,WAAW;CACb;CAGF,IAAM,IACJ,kBAAC,GAAD;EACE,WAAW;EACX,SAAQ;EACR,OAAO;EACP,GAAI;EACJ,IAAI;GACF,WAAW;IACT,iBAAiB,IAAY,KAAA,IAAY;IACzC,OAAO;GACT;GACA,GAAI,CAAC,KACH,EAAmB,OAAO,EACxB,QAAQ,qBACV;EACJ;YAEC,EAAmB;CACV,CAAA;CAGd,OAAO,IACL,kBAAC,QAAD;EAAM,OAAO;GAAE,SAAS;GAAS,WAAW;EAAS;YAAI;CAAa,CAAA,IAEtE,kBAAC,QAAD,EAAA,UAAO,EAAa,CAAA;AAExB"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEntityPreview.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownEntityPreview.tsx"],"sourcesContent":["import { parseSynId } from '@/utils/functions/RegularExpressions'\nimport EntityPreview from '../../FilePreview/EntityPreview'\n\nexport type MarkdownEntityPreviewProps = {\n /** A Synapse Entity ID that may optionally contain a \"dot\" version, e.g. syn123 or syn123.2 */\n entityId: string\n /** An optional Entity version number. */\n versionNumber?: string\n}\n\nexport default function MarkdownEntityPreview(\n props: MarkdownEntityPreviewProps,\n) {\n const parsedReference = parseSynId(props.entityId)\n if (parsedReference == null) {\n throw new Error(`${props.entityId} is not a valid Synapse ID`)\n }\n const parsedVersionNumber = parseInt(props.versionNumber ?? '')\n\n const entityId = parsedReference.targetId\n const versionNumber = Number.isNaN(parsedVersionNumber)\n ? parsedReference.targetVersionNumber\n : parsedVersionNumber\n\n return <EntityPreview entityId={entityId} versionNumber={versionNumber} />\n}\n"],"mappings":";;;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,IAAkB,EAAW,EAAM,SAAS;AAClD,KAAI,KAAmB,KACrB,OAAU,MAAM,GAAG,EAAM,SAAS,4BAA4B;CAEhE,IAAM,IAAsB,SAAS,EAAM,iBAAiB,GAAG,EAEzD,IAAW,EAAgB;AAKjC,QAAO,kBAAC,GAAD;EAAyB;EAAyB,eAJnC,OAAO,MAAM,EAAoB,GACnD,EAAgB,sBAChB;EAEsE,CAAA"}
1
+ {"version":3,"file":"MarkdownEntityPreview.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownEntityPreview.tsx"],"sourcesContent":["import { parseSynId } from '@/utils/functions/RegularExpressions'\nimport EntityPreview from '../../FilePreview/EntityPreview'\n\nexport type MarkdownEntityPreviewProps = {\n /** A Synapse Entity ID that may optionally contain a \"dot\" version, e.g. syn123 or syn123.2 */\n entityId: string\n /** An optional Entity version number. */\n versionNumber?: string\n}\n\nexport default function MarkdownEntityPreview(\n props: MarkdownEntityPreviewProps,\n) {\n const parsedReference = parseSynId(props.entityId)\n if (parsedReference == null) {\n throw new Error(`${props.entityId} is not a valid Synapse ID`)\n }\n const parsedVersionNumber = parseInt(props.versionNumber ?? '')\n\n const entityId = parsedReference.targetId\n const versionNumber = Number.isNaN(parsedVersionNumber)\n ? parsedReference.targetVersionNumber\n : parsedVersionNumber\n\n return <EntityPreview entityId={entityId} versionNumber={versionNumber} />\n}\n"],"mappings":";;;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,IAAkB,EAAW,EAAM,QAAQ;CACjD,IAAI,KAAmB,MACrB,MAAU,MAAM,GAAG,EAAM,SAAS,2BAA2B;CAE/D,IAAM,IAAsB,SAAS,EAAM,iBAAiB,EAAE,GAExD,IAAW,EAAgB;CAKjC,OAAO,kBAAC,GAAD;EAAyB;EAAyB,eAJnC,OAAO,MAAM,CAAmB,IAClD,EAAgB,sBAChB;CAEqE,CAAA;AAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownIDUReport.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownIDUReport.tsx"],"sourcesContent":["import IDUReport from '../../IDUReport/IDUReport'\n\nexport type MarkdownIDUReportProps = {\n accessRestrictionId: string\n}\n\nexport default function MarkdownIDUReport(props: MarkdownIDUReportProps) {\n const { accessRestrictionId } = props\n return <IDUReport accessRequirementId={accessRestrictionId} />\n}\n"],"mappings":";;;AAMA,SAAwB,EAAkB,GAA+B;CACvE,IAAM,EAAE,2BAAwB;AAChC,QAAO,kBAAC,GAAD,EAAW,qBAAqB,GAAuB,CAAA"}
1
+ {"version":3,"file":"MarkdownIDUReport.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownIDUReport.tsx"],"sourcesContent":["import IDUReport from '../../IDUReport/IDUReport'\n\nexport type MarkdownIDUReportProps = {\n accessRestrictionId: string\n}\n\nexport default function MarkdownIDUReport(props: MarkdownIDUReportProps) {\n const { accessRestrictionId } = props\n return <IDUReport accessRequirementId={accessRestrictionId} />\n}\n"],"mappings":";;;AAMA,SAAwB,EAAkB,GAA+B;CACvE,IAAM,EAAE,2BAAwB;CAChC,OAAO,kBAAC,GAAD,EAAW,qBAAqB,EAAsB,CAAA;AAC/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownProvenanceGraph.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownProvenanceGraph.tsx"],"sourcesContent":["import { Reference } from '@sage-bionetworks/synapse-types'\nimport ProvenanceGraph from '../../ProvenanceGraph/ProvenanceGraph'\n\nexport type MarkdownProvenanceGraphProps = {\n entityList: string // comma delimited entity references of the form <synapse_ID>/version/<version_number>. The /version/<version_number> is optional\n displayHeightPx: string\n // depth: string, // traverse the given depth, not currently supported in ProvenanceGraph\n // showExpand: string // option to make graph not expandable, not currently supported in ProvenanceGraph\n}\n\nexport default function MarkdownProvenanceGraph(\n props: MarkdownProvenanceGraphProps,\n) {\n const { entityList, displayHeightPx } = props\n // parse entityList\n const refs = entityList.split(',').map(v => {\n const entityAndVersion = v.split('/version/')\n const ref: Reference = {\n targetId: entityAndVersion[0],\n targetVersionNumber:\n entityAndVersion.length > 1 ? parseInt(entityAndVersion[1]) : undefined,\n }\n return ref\n })\n const containerHeight = displayHeightPx ? `${displayHeightPx}px` : undefined\n return <ProvenanceGraph entityRefs={refs} containerHeight={containerHeight} />\n}\n"],"mappings":";;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,uBAAoB;AAYxC,QAAO,kBAAC,GAAD;EAAiB,YAVX,EAAW,MAAM,IAAI,CAAC,KAAI,MAAK;GAC1C,IAAM,IAAmB,EAAE,MAAM,YAAY;AAM7C,UAAO;IAJL,UAAU,EAAiB;IAC3B,qBACE,EAAiB,SAAS,IAAI,SAAS,EAAiB,GAAG,GAAG,KAAA;IAE3D;IAG2B;EAAuB,iBADnC,IAAkB,GAAG,EAAgB,MAAM,KAAA;EACW,CAAA"}
1
+ {"version":3,"file":"MarkdownProvenanceGraph.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownProvenanceGraph.tsx"],"sourcesContent":["import { Reference } from '@sage-bionetworks/synapse-types'\nimport ProvenanceGraph from '../../ProvenanceGraph/ProvenanceGraph'\n\nexport type MarkdownProvenanceGraphProps = {\n entityList: string // comma delimited entity references of the form <synapse_ID>/version/<version_number>. The /version/<version_number> is optional\n displayHeightPx: string\n // depth: string, // traverse the given depth, not currently supported in ProvenanceGraph\n // showExpand: string // option to make graph not expandable, not currently supported in ProvenanceGraph\n}\n\nexport default function MarkdownProvenanceGraph(\n props: MarkdownProvenanceGraphProps,\n) {\n const { entityList, displayHeightPx } = props\n // parse entityList\n const refs = entityList.split(',').map(v => {\n const entityAndVersion = v.split('/version/')\n const ref: Reference = {\n targetId: entityAndVersion[0],\n targetVersionNumber:\n entityAndVersion.length > 1 ? parseInt(entityAndVersion[1]) : undefined,\n }\n return ref\n })\n const containerHeight = displayHeightPx ? `${displayHeightPx}px` : undefined\n return <ProvenanceGraph entityRefs={refs} containerHeight={containerHeight} />\n}\n"],"mappings":";;;AAUA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,eAAY,uBAAoB;CAYxC,OAAO,kBAAC,GAAD;EAAiB,YAVX,EAAW,MAAM,GAAG,EAAE,KAAI,MAAK;GAC1C,IAAM,IAAmB,EAAE,MAAM,WAAW;GAM5C,OAAO;IAJL,UAAU,EAAiB;IAC3B,qBACE,EAAiB,SAAS,IAAI,SAAS,EAAiB,EAAE,IAAI,KAAA;GAE3D;EACT,CAEoC;EAAuB,iBADnC,IAAkB,GAAG,EAAgB,MAAM,KAAA;CACU,CAAA;AAC/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownSynapseImage.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseImage.tsx"],"sourcesContent":["import SynapseImage, { SynapseImageProps } from '../../widgets/SynapseImage'\nimport { useWikiContext } from '../SynapseWikiContext'\n\nexport type ImageWidgetParams = Omit<\n SynapseImageProps,\n 'params' | 'fileResults'\n> &\n SynapseImageProps['params']\n\nexport default function MarkdownSynapseImage(\n widgetParamsMapped: ImageWidgetParams,\n) {\n const { wikiId, wikiPage, fileHandles } = useWikiContext()\n if (widgetParamsMapped.fileName) {\n if (!fileHandles) {\n // ensure files are loaded\n return <></>\n }\n // if file name is attached then the fileHandle ID is located\n // in this wiki's file attachment list\n return (\n <SynapseImage\n params={widgetParamsMapped}\n fileName={widgetParamsMapped.fileName}\n wikiId={wikiId || wikiPage?.id}\n fileResults={fileHandles.list}\n />\n )\n }\n if (widgetParamsMapped.synapseId) {\n // otherwise this image's fileHandle ID is not located\n // in the file attachment list and will be loaded first\n return (\n <SynapseImage\n params={widgetParamsMapped}\n synapseId={widgetParamsMapped.synapseId}\n version={widgetParamsMapped.version}\n />\n )\n }\n return <></>\n}\n"],"mappings":";;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,WAAQ,aAAU,mBAAgB,GAAgB;AA4B1D,QA3BI,EAAmB,WAChB,IAOH,kBAAC,GAAD;EACE,QAAQ;EACR,UAAU,EAAmB;EAC7B,QAAQ,KAAU,GAAU;EAC5B,aAAa,EAAY;EACzB,CAAA,GAVK,kBAAA,GAAA,EAAK,CAAA,GAaZ,EAAmB,YAInB,kBAAC,GAAD;EACE,QAAQ;EACR,WAAW,EAAmB;EAC9B,SAAS,EAAmB;EAC5B,CAAA,GAGC,kBAAA,GAAA,EAAK,CAAA"}
1
+ {"version":3,"file":"MarkdownSynapseImage.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseImage.tsx"],"sourcesContent":["import SynapseImage, { SynapseImageProps } from '../../widgets/SynapseImage'\nimport { useWikiContext } from '../SynapseWikiContext'\n\nexport type ImageWidgetParams = Omit<\n SynapseImageProps,\n 'params' | 'fileResults'\n> &\n SynapseImageProps['params']\n\nexport default function MarkdownSynapseImage(\n widgetParamsMapped: ImageWidgetParams,\n) {\n const { wikiId, wikiPage, fileHandles } = useWikiContext()\n if (widgetParamsMapped.fileName) {\n if (!fileHandles) {\n // ensure files are loaded\n return <></>\n }\n // if file name is attached then the fileHandle ID is located\n // in this wiki's file attachment list\n return (\n <SynapseImage\n params={widgetParamsMapped}\n fileName={widgetParamsMapped.fileName}\n wikiId={wikiId || wikiPage?.id}\n fileResults={fileHandles.list}\n />\n )\n }\n if (widgetParamsMapped.synapseId) {\n // otherwise this image's fileHandle ID is not located\n // in the file attachment list and will be loaded first\n return (\n <SynapseImage\n params={widgetParamsMapped}\n synapseId={widgetParamsMapped.synapseId}\n version={widgetParamsMapped.version}\n />\n )\n }\n return <></>\n}\n"],"mappings":";;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,WAAQ,aAAU,mBAAgB,EAAe;CA4BzD,OA3BI,EAAmB,WAChB,IAOH,kBAAC,GAAD;EACE,QAAQ;EACR,UAAU,EAAmB;EAC7B,QAAQ,KAAU,GAAU;EAC5B,aAAa,EAAY;CAC1B,CAAA,IAVM,kBAAA,GAAA,CAAI,CAAA,IAaX,EAAmB,YAInB,kBAAC,GAAD;EACE,QAAQ;EACR,WAAW,EAAmB;EAC9B,SAAS,EAAmB;CAC7B,CAAA,IAGE,kBAAA,GAAA,CAAI,CAAA;AACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownSynapsePlot.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapsePlot.tsx"],"sourcesContent":["import React from 'react'\nimport SynapsePlot from '../../Plot/SynapsePlot'\nimport { AxisType, PlotType } from 'plotly.js-basic-dist'\n\nexport type MarkdownSynapsePlotProps = {\n query: string //sql string\n title?: string //plot title\n xtitle?: string // x-axis title\n ytitle?: string // y-axis title\n type: string // Plotly PlotType\n xaxistype?: string // Plotly AxisType\n showlegend?: string // sets the legend visibility ('true' | 'false')\n horizontal?: string // sets the if a bar chart should be horizontal or vertical ('true' | 'false')\n barmode?: string // Plotly barmode ('stack' | 'group' | 'overlay' | 'relative')\n displayModebar?: string // sets the modebar visibility ('true' | 'false')\n}\n\nconst toBoolean = (v?: string, fallbackValue?: boolean) => {\n return v ? v.toLowerCase() == 'true' : (fallbackValue ?? false)\n}\n\nexport const MarkdownSynapsePlot = (\n props: MarkdownSynapsePlotProps,\n): React.ReactNode => {\n const {\n query,\n title,\n xtitle,\n ytitle,\n type,\n xaxistype,\n showlegend,\n barmode,\n horizontal,\n displayModebar,\n } = props\n const plotlyShowLegend = toBoolean(showlegend, true)\n const plotlyIsHorizontal = toBoolean(horizontal, false)\n const plotlyDisplayModebar = toBoolean(displayModebar, false)\n const plotlyBarMode = barmode\n ? (barmode.toLowerCase() as 'stack' | 'group' | 'overlay' | 'relative')\n : undefined\n const plotlyType = type.toLowerCase() as PlotType\n\n let plotlyXAxisType: AxisType | undefined = undefined\n if (xaxistype) {\n plotlyXAxisType = xaxistype.toLowerCase() as AxisType\n }\n\n return (\n <SynapsePlot\n synapsePlotWidgetParams={{\n query,\n xtitle,\n ytitle,\n type: plotlyType,\n barmode: plotlyBarMode,\n displayModeBar: plotlyDisplayModebar,\n horizontal: plotlyIsHorizontal,\n showlegend: plotlyShowLegend,\n title: title,\n xaxistype: plotlyXAxisType,\n }}\n />\n )\n}\n\nexport default MarkdownSynapsePlot\n"],"mappings":";;;;AAiBA,IAAM,KAAa,GAAY,MACtB,IAAI,EAAE,aAAa,IAAI,SAAU,KAAiB,IAG9C,KACX,MACoB;CACpB,IAAM,EACJ,UACA,UACA,WACA,WACA,SACA,cACA,eACA,YACA,eACA,sBACE,GACE,IAAmB,EAAU,GAAY,GAAK,EAC9C,IAAqB,EAAU,GAAY,GAAM,EACjD,IAAuB,EAAU,GAAgB,GAAM,EACvD,IAAgB,IACjB,EAAQ,aAAa,GACtB,KAAA,GACE,IAAa,EAAK,aAAa,EAEjC;AAKJ,QAJI,MACF,IAAkB,EAAU,aAAa,GAIzC,kBAAC,GAAD,EACE,yBAAyB;EACvB;EACA;EACA;EACA,MAAM;EACN,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,YAAY;EACL;EACP,WAAW;EACZ,EACD,CAAA"}
1
+ {"version":3,"file":"MarkdownSynapsePlot.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapsePlot.tsx"],"sourcesContent":["import React from 'react'\nimport SynapsePlot from '../../Plot/SynapsePlot'\nimport { AxisType, PlotType } from 'plotly.js-basic-dist'\n\nexport type MarkdownSynapsePlotProps = {\n query: string //sql string\n title?: string //plot title\n xtitle?: string // x-axis title\n ytitle?: string // y-axis title\n type: string // Plotly PlotType\n xaxistype?: string // Plotly AxisType\n showlegend?: string // sets the legend visibility ('true' | 'false')\n horizontal?: string // sets the if a bar chart should be horizontal or vertical ('true' | 'false')\n barmode?: string // Plotly barmode ('stack' | 'group' | 'overlay' | 'relative')\n displayModebar?: string // sets the modebar visibility ('true' | 'false')\n}\n\nconst toBoolean = (v?: string, fallbackValue?: boolean) => {\n return v ? v.toLowerCase() == 'true' : (fallbackValue ?? false)\n}\n\nexport const MarkdownSynapsePlot = (\n props: MarkdownSynapsePlotProps,\n): React.ReactNode => {\n const {\n query,\n title,\n xtitle,\n ytitle,\n type,\n xaxistype,\n showlegend,\n barmode,\n horizontal,\n displayModebar,\n } = props\n const plotlyShowLegend = toBoolean(showlegend, true)\n const plotlyIsHorizontal = toBoolean(horizontal, false)\n const plotlyDisplayModebar = toBoolean(displayModebar, false)\n const plotlyBarMode = barmode\n ? (barmode.toLowerCase() as 'stack' | 'group' | 'overlay' | 'relative')\n : undefined\n const plotlyType = type.toLowerCase() as PlotType\n\n let plotlyXAxisType: AxisType | undefined = undefined\n if (xaxistype) {\n plotlyXAxisType = xaxistype.toLowerCase() as AxisType\n }\n\n return (\n <SynapsePlot\n synapsePlotWidgetParams={{\n query,\n xtitle,\n ytitle,\n type: plotlyType,\n barmode: plotlyBarMode,\n displayModeBar: plotlyDisplayModebar,\n horizontal: plotlyIsHorizontal,\n showlegend: plotlyShowLegend,\n title: title,\n xaxistype: plotlyXAxisType,\n }}\n />\n )\n}\n\nexport default MarkdownSynapsePlot\n"],"mappings":";;;;AAiBA,IAAM,KAAa,GAAY,MACtB,IAAI,EAAE,YAAY,KAAK,SAAU,KAAiB,IAG9C,KACX,MACoB;CACpB,IAAM,EACJ,UACA,UACA,WACA,WACA,SACA,cACA,eACA,YACA,eACA,sBACE,GACE,IAAmB,EAAU,GAAY,EAAI,GAC7C,IAAqB,EAAU,GAAY,EAAK,GAChD,IAAuB,EAAU,GAAgB,EAAK,GACtD,IAAgB,IACjB,EAAQ,YAAY,IACrB,KAAA,GACE,IAAa,EAAK,YAAY,GAEhC;CAKJ,OAJI,MACF,IAAkB,EAAU,YAAY,IAIxC,kBAAC,GAAD,EACE,yBAAyB;EACvB;EACA;EACA;EACA,MAAM;EACN,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,YAAY;EACL;EACP,WAAW;CACb,EACD,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownSynapseTable.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseTable.tsx"],"sourcesContent":["import QueryWrapperPlotNav from '../../QueryWrapperPlotNav/QueryWrapperPlotNav'\nimport StandaloneQueryWrapper from '../../StandaloneQueryWrapper/StandaloneQueryWrapper'\n\nexport type MarkdownSynapseTableProps = {\n query: string\n showquery: string\n tableonly: string\n}\n\nexport default function MarkdownSynapseTable(props: MarkdownSynapseTableProps) {\n const { query, showquery, tableonly } = props\n const showQuery = showquery === 'true'\n const tableOnly = tableonly === 'true'\n const name = 'Items'\n if (tableOnly) {\n return <StandaloneQueryWrapper sql={query} name={name} />\n }\n\n return (\n <QueryWrapperPlotNav\n sql={query}\n hideSqlEditorControl={!showQuery}\n name={name}\n defaultShowPlots={false}\n tableConfiguration={{}}\n />\n )\n}\n"],"mappings":";;;;AASA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,UAAO,cAAW,iBAAc,GAClC,IAAY,MAAc,QAC1B,IAAY,MAAc,QAC1B,IAAO;AAKb,QAJI,IACK,kBAAC,GAAD;EAAwB,KAAK;EAAa;EAAQ,CAAA,GAIzD,kBAAC,GAAD;EACE,KAAK;EACL,sBAAsB,CAAC;EACjB;EACN,kBAAkB;EAClB,oBAAoB,EAAE;EACtB,CAAA"}
1
+ {"version":3,"file":"MarkdownSynapseTable.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownSynapseTable.tsx"],"sourcesContent":["import QueryWrapperPlotNav from '../../QueryWrapperPlotNav/QueryWrapperPlotNav'\nimport StandaloneQueryWrapper from '../../StandaloneQueryWrapper/StandaloneQueryWrapper'\n\nexport type MarkdownSynapseTableProps = {\n query: string\n showquery: string\n tableonly: string\n}\n\nexport default function MarkdownSynapseTable(props: MarkdownSynapseTableProps) {\n const { query, showquery, tableonly } = props\n const showQuery = showquery === 'true'\n const tableOnly = tableonly === 'true'\n const name = 'Items'\n if (tableOnly) {\n return <StandaloneQueryWrapper sql={query} name={name} />\n }\n\n return (\n <QueryWrapperPlotNav\n sql={query}\n hideSqlEditorControl={!showQuery}\n name={name}\n defaultShowPlots={false}\n tableConfiguration={{}}\n />\n )\n}\n"],"mappings":";;;;AASA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,UAAO,cAAW,iBAAc,GAClC,IAAY,MAAc,QAC1B,IAAY,MAAc,QAC1B,IAAO;CAKb,OAJI,IACK,kBAAC,GAAD;EAAwB,KAAK;EAAa;CAAO,CAAA,IAIxD,kBAAC,GAAD;EACE,KAAK;EACL,sBAAsB,CAAC;EACjB;EACN,kBAAkB;EAClB,oBAAoB,CAAC;CACtB,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownTableOfContents.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownTableOfContents.tsx"],"sourcesContent":["import { stripHTML } from '../MarkdownUtils'\n\nconst TOC_CLASS = {\n 1: 'toc-indent1',\n 2: 'toc-indent2',\n 3: 'toc-indent3',\n 4: 'toc-indent4',\n 5: 'toc-indent5',\n 6: 'toc-indent6',\n}\n\ntype MarkdownTableOfContentsProps = {\n originalMarkup: string\n}\n\nexport default function MarkdownTableOfContents(\n props: MarkdownTableOfContentsProps,\n) {\n const { originalMarkup } = props\n const elements: any[] = []\n const TOC_HEADER_REGEX_WITH_ID =\n /<h([1-6]) id=\"(.*)\" .*toc=\"true\">(.*)<\\/h[1-6]>/gm\n let text = ''\n originalMarkup.replace(TOC_HEADER_REGEX_WITH_ID, (p1, p2, p3, p4) => {\n const headingText = stripHTML(p4)\n text += headingText\n elements.push(\n <div key={headingText}>\n <a\n role=\"link\"\n className={`link ${TOC_CLASS[Number(p2) as keyof typeof TOC_CLASS]}`}\n data-anchor={p3}\n >\n {headingText}\n </a>\n </div>,\n )\n return ''\n })\n return <div key={text}>{elements}</div>\n}\n"],"mappings":";;;AAEA,IAAM,IAAY;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACJ;AAMD,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,GACrB,IAAkB,EAAE,EACpB,IACJ,qDACE,IAAO;AAiBX,QAhBA,EAAe,QAAQ,IAA2B,GAAI,GAAI,GAAI,MAAO;EACnE,IAAM,IAAc,EAAU,EAAG;AAajC,SAZA,KAAQ,GACR,EAAS,KACP,kBAAC,OAAD,EAAA,UACE,kBAAC,KAAD;GACE,MAAK;GACL,WAAW,QAAQ,EAAU,OAAO,EAAG;GACvC,eAAa;aAEZ;GACC,CAAA,EACA,EARI,EAQJ,CACP,EACM;GACP,EACK,kBAAC,OAAD,EAAA,UAAiB,GAAe,EAAtB,EAAsB"}
1
+ {"version":3,"file":"MarkdownTableOfContents.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownTableOfContents.tsx"],"sourcesContent":["import { stripHTML } from '../MarkdownUtils'\n\nconst TOC_CLASS = {\n 1: 'toc-indent1',\n 2: 'toc-indent2',\n 3: 'toc-indent3',\n 4: 'toc-indent4',\n 5: 'toc-indent5',\n 6: 'toc-indent6',\n}\n\ntype MarkdownTableOfContentsProps = {\n originalMarkup: string\n}\n\nexport default function MarkdownTableOfContents(\n props: MarkdownTableOfContentsProps,\n) {\n const { originalMarkup } = props\n const elements: any[] = []\n const TOC_HEADER_REGEX_WITH_ID =\n /<h([1-6]) id=\"(.*)\" .*toc=\"true\">(.*)<\\/h[1-6]>/gm\n let text = ''\n originalMarkup.replace(TOC_HEADER_REGEX_WITH_ID, (p1, p2, p3, p4) => {\n const headingText = stripHTML(p4)\n text += headingText\n elements.push(\n <div key={headingText}>\n <a\n role=\"link\"\n className={`link ${TOC_CLASS[Number(p2) as keyof typeof TOC_CLASS]}`}\n data-anchor={p3}\n >\n {headingText}\n </a>\n </div>,\n )\n return ''\n })\n return <div key={text}>{elements}</div>\n}\n"],"mappings":";;;AAEA,IAAM,IAAY;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL;AAMA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,GACrB,IAAkB,CAAC,GACnB,IACJ,qDACE,IAAO;CAiBX,OAhBA,EAAe,QAAQ,IAA2B,GAAI,GAAI,GAAI,MAAO;EACnE,IAAM,IAAc,EAAU,CAAE;EAahC,OAZA,KAAQ,GACR,EAAS,KACP,kBAAC,OAAD,EAAA,UACE,kBAAC,KAAD;GACE,MAAK;GACL,WAAW,QAAQ,EAAU,OAAO,CAAE;GACtC,eAAa;aAEZ;EACA,CAAA,EACA,GARK,CAQL,CACP,GACO;CACT,CAAC,GACM,kBAAC,OAAD,EAAA,UAAiB,EAAc,GAArB,CAAqB;AACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownUserOrTeamBadge.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownUserOrTeamBadge.tsx"],"sourcesContent":["import { useGetUserGroupHeaderWithAlias } from '@/synapse-queries'\nimport UserOrTeamBadge from '../../UserOrTeamBadge/UserOrTeamBadge'\n\nexport type MarkdownUserOrTeamBadgeProps = {\n alias: string\n}\n\nexport default function MarkdownUserOrTeamBadge(\n props: MarkdownUserOrTeamBadgeProps,\n) {\n const { alias } = props\n const { data: userGroupHeader } = useGetUserGroupHeaderWithAlias([alias])\n\n return userGroupHeader ? (\n <UserOrTeamBadge principalId={userGroupHeader[0].ownerId} />\n ) : (\n <></>\n )\n}\n"],"mappings":";;;;;AAOA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,GACZ,EAAE,MAAM,MAAoB,EAA+B,CAAC,EAAM,CAAC;AAEzE,QAAO,IACL,kBAAC,GAAD,EAAiB,aAAa,EAAgB,GAAG,SAAW,CAAA,GAE5D,kBAAA,GAAA,EAAK,CAAA"}
1
+ {"version":3,"file":"MarkdownUserOrTeamBadge.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownUserOrTeamBadge.tsx"],"sourcesContent":["import { useGetUserGroupHeaderWithAlias } from '@/synapse-queries'\nimport UserOrTeamBadge from '../../UserOrTeamBadge/UserOrTeamBadge'\n\nexport type MarkdownUserOrTeamBadgeProps = {\n alias: string\n}\n\nexport default function MarkdownUserOrTeamBadge(\n props: MarkdownUserOrTeamBadgeProps,\n) {\n const { alias } = props\n const { data: userGroupHeader } = useGetUserGroupHeaderWithAlias([alias])\n\n return userGroupHeader ? (\n <UserOrTeamBadge principalId={userGroupHeader[0].ownerId} />\n ) : (\n <></>\n )\n}\n"],"mappings":";;;;;AAOA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,aAAU,GACZ,EAAE,MAAM,MAAoB,EAA+B,CAAC,CAAK,CAAC;CAExE,OAAO,IACL,kBAAC,GAAD,EAAiB,aAAa,EAAgB,GAAG,QAAU,CAAA,IAE3D,kBAAA,GAAA,CAAI,CAAA;AAER"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownVideo.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownVideo.tsx"],"sourcesContent":["import SynapseVideo, { SynapseVideoProps } from '../../widgets/SynapseVideo'\n\nexport type MarkdownVideoProps = SynapseVideoProps['params']\n\nexport default function MarkdownVideo(props: MarkdownVideoProps) {\n return <SynapseVideo params={props} />\n}\n"],"mappings":";;;AAIA,SAAwB,EAAc,GAA2B;AAC/D,QAAO,kBAAC,GAAD,EAAc,QAAQ,GAAS,CAAA"}
1
+ {"version":3,"file":"MarkdownVideo.js","names":[],"sources":["../../../../src/components/Markdown/widget/MarkdownVideo.tsx"],"sourcesContent":["import SynapseVideo, { SynapseVideoProps } from '../../widgets/SynapseVideo'\n\nexport type MarkdownVideoProps = SynapseVideoProps['params']\n\nexport default function MarkdownVideo(props: MarkdownVideoProps) {\n return <SynapseVideo params={props} />\n}\n"],"mappings":";;;AAIA,SAAwB,EAAc,GAA2B;CAC/D,OAAO,kBAAC,GAAD,EAAc,QAAQ,EAAQ,CAAA;AACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MissingQueryResultsWarning.js","names":[],"sources":["../../../src/components/MissingQueryResultsWarning/MissingQueryResultsWarning.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { SynapseConstants } from '@/utils'\nimport { isEntityRefCollectionView } from '@/utils/functions/EntityTypeUtils'\nimport { WarningSharp } from '@mui/icons-material'\nimport { Typography } from '@mui/material'\nimport { QueryBundleRequest, Table } from '@sage-bionetworks/synapse-types'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\n\nconst DATASETS_CURRENT_VERSION_HELP =\n 'Files may be unavailable because you do not have permission to see them, they have been deleted, or the Dataset has been misconfigured.'\n\n// Help text for snapshot does not indicate that files were deleted, because the deleted file would have been captured in the snapshot\nconst DATASETS_SNAPSHOT_HELP =\n 'Files may be unavailable because you do not have permission to see them or the Dataset was misconfigured.'\n\nexport type MissingQueryResultsWarningProps = {\n entity: Table\n versionNumber?: number\n}\n\n/**\n * If possible, this component will render a warning message if results may be missing from the query due to user permissions or\n * entities being deleted. If not possible, it will render an empty fragment.\n */\nfunction MissingQueryResultsWarning({\n entity,\n}: MissingQueryResultsWarningProps) {\n // Currently, Datasets and Dataset collections are the only table type for which we can reliably get this info.\n // Other cases will need a new service, tracked by PLFM-7046\n const isMissingResultsCalculable = entity && isEntityRefCollectionView(entity)\n\n const request: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: {\n sql: `SELECT * FROM ${entity.id!}${\n !entity.isLatestVersion && entity.versionNumber\n ? `.${entity.versionNumber}`\n : ''\n }`,\n },\n entityId: entity.id!,\n partMask: SynapseConstants.BUNDLE_MASK_QUERY_COUNT,\n }\n\n const { data: queryResult } = useGetQueryResultBundleWithAsyncStatus(\n request,\n {\n enabled: isMissingResultsCalculable,\n },\n )\n if (isMissingResultsCalculable && queryResult && entity) {\n const totalVisibleResults = queryResult.responseBody!.queryCount!\n const totalResults = entity.items?.length ?? 0\n\n if (totalVisibleResults >= totalResults) {\n // All the results are visible, so there is no need to show a warning.\n // SWC-6727 / PLFM-8326 - `totalVisibleResults` should never be greater than `totalResults`, but in case it is (e.g. stale cache),\n // don't show the warning.\n return <></>\n }\n\n const difference = totalResults - totalVisibleResults\n\n let helpMessage = ''\n\n if (entity.isLatestVersion) {\n helpMessage = DATASETS_CURRENT_VERSION_HELP\n } else {\n helpMessage = DATASETS_SNAPSHOT_HELP\n }\n\n return (\n <Typography\n component={'div'}\n className=\"SRC-centerContent\"\n style={{\n marginLeft: 10,\n }}\n variant=\"smallText1\"\n color=\"textSecondary\"\n >\n <WarningSharp\n className=\"SRC-color-warning\"\n style={{ fontSize: '16px' }}\n />\n {difference.toLocaleString() + ' Unavailable'}\n <HelpPopover\n className=\"SRC-margin-left-5\"\n markdownText={helpMessage}\n placement=\"right\"\n ></HelpPopover>\n </Typography>\n )\n } else {\n return <></>\n }\n}\n\nexport default MissingQueryResultsWarning\n"],"mappings":";;;;;;;;;;AAQA,IAAM,IACJ,2IAGI,IACJ;AAWF,SAAS,EAA2B,EAClC,aACkC;CAGlC,IAAM,IAA6B,KAAU,EAA0B,EAAO,EAexE,EAAE,MAAM,MAAgB,EAC5B;EAbA,cAAc;EACd,OAAO,EACL,KAAK,iBAAiB,EAAO,KAC3B,CAAC,EAAO,mBAAmB,EAAO,gBAC9B,IAAI,EAAO,kBACX,MAEP;EACD,UAAU,EAAO;EACjB,UAAU;EAIV,EACA,EACE,SAAS,GACV,CACF;AACD,KAAI,KAA8B,KAAe,GAAQ;EACvD,IAAM,IAAsB,EAAY,aAAc,YAChD,IAAe,EAAO,OAAO,UAAU;AAE7C,MAAI,KAAuB,EAIzB,QAAO,kBAAA,GAAA,EAAK,CAAA;EAGd,IAAM,IAAa,IAAe,GAE9B,IAAc;AAQlB,SANA,AAGE,IAHE,EAAO,kBACK,IAEA,GAId,kBAAC,GAAD;GACE,WAAW;GACX,WAAU;GACV,OAAO,EACL,YAAY,IACb;GACD,SAAQ;GACR,OAAM;aAPR;IASE,kBAAC,GAAD;KACE,WAAU;KACV,OAAO,EAAE,UAAU,QAAQ;KAC3B,CAAA;IACD,EAAW,gBAAgB,GAAG;IAC/B,kBAAC,GAAD;KACE,WAAU;KACV,cAAc;KACd,WAAU;KACG,CAAA;IACJ;;OAGf,QAAO,kBAAA,GAAA,EAAK,CAAA"}
1
+ {"version":3,"file":"MissingQueryResultsWarning.js","names":[],"sources":["../../../src/components/MissingQueryResultsWarning/MissingQueryResultsWarning.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { SynapseConstants } from '@/utils'\nimport { isEntityRefCollectionView } from '@/utils/functions/EntityTypeUtils'\nimport { WarningSharp } from '@mui/icons-material'\nimport { Typography } from '@mui/material'\nimport { QueryBundleRequest, Table } from '@sage-bionetworks/synapse-types'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\n\nconst DATASETS_CURRENT_VERSION_HELP =\n 'Files may be unavailable because you do not have permission to see them, they have been deleted, or the Dataset has been misconfigured.'\n\n// Help text for snapshot does not indicate that files were deleted, because the deleted file would have been captured in the snapshot\nconst DATASETS_SNAPSHOT_HELP =\n 'Files may be unavailable because you do not have permission to see them or the Dataset was misconfigured.'\n\nexport type MissingQueryResultsWarningProps = {\n entity: Table\n versionNumber?: number\n}\n\n/**\n * If possible, this component will render a warning message if results may be missing from the query due to user permissions or\n * entities being deleted. If not possible, it will render an empty fragment.\n */\nfunction MissingQueryResultsWarning({\n entity,\n}: MissingQueryResultsWarningProps) {\n // Currently, Datasets and Dataset collections are the only table type for which we can reliably get this info.\n // Other cases will need a new service, tracked by PLFM-7046\n const isMissingResultsCalculable = entity && isEntityRefCollectionView(entity)\n\n const request: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: {\n sql: `SELECT * FROM ${entity.id!}${\n !entity.isLatestVersion && entity.versionNumber\n ? `.${entity.versionNumber}`\n : ''\n }`,\n },\n entityId: entity.id!,\n partMask: SynapseConstants.BUNDLE_MASK_QUERY_COUNT,\n }\n\n const { data: queryResult } = useGetQueryResultBundleWithAsyncStatus(\n request,\n {\n enabled: isMissingResultsCalculable,\n },\n )\n if (isMissingResultsCalculable && queryResult && entity) {\n const totalVisibleResults = queryResult.responseBody!.queryCount!\n const totalResults = entity.items?.length ?? 0\n\n if (totalVisibleResults >= totalResults) {\n // All the results are visible, so there is no need to show a warning.\n // SWC-6727 / PLFM-8326 - `totalVisibleResults` should never be greater than `totalResults`, but in case it is (e.g. stale cache),\n // don't show the warning.\n return <></>\n }\n\n const difference = totalResults - totalVisibleResults\n\n let helpMessage = ''\n\n if (entity.isLatestVersion) {\n helpMessage = DATASETS_CURRENT_VERSION_HELP\n } else {\n helpMessage = DATASETS_SNAPSHOT_HELP\n }\n\n return (\n <Typography\n component={'div'}\n className=\"SRC-centerContent\"\n style={{\n marginLeft: 10,\n }}\n variant=\"smallText1\"\n color=\"textSecondary\"\n >\n <WarningSharp\n className=\"SRC-color-warning\"\n style={{ fontSize: '16px' }}\n />\n {difference.toLocaleString() + ' Unavailable'}\n <HelpPopover\n className=\"SRC-margin-left-5\"\n markdownText={helpMessage}\n placement=\"right\"\n ></HelpPopover>\n </Typography>\n )\n } else {\n return <></>\n }\n}\n\nexport default MissingQueryResultsWarning\n"],"mappings":";;;;;;;;;;AAQA,IAAM,IACJ,2IAGI,IACJ;AAWF,SAAS,EAA2B,EAClC,aACkC;CAGlC,IAAM,IAA6B,KAAU,EAA0B,CAAM,GAevE,EAAE,MAAM,MAAgB,EAC5B;EAbA,cAAc;EACd,OAAO,EACL,KAAK,iBAAiB,EAAO,KAC3B,CAAC,EAAO,mBAAmB,EAAO,gBAC9B,IAAI,EAAO,kBACX,KAER;EACA,UAAU,EAAO;EACjB,UAAU;CAIV,GACA,EACE,SAAS,EACX,CACF;CACA,IAAI,KAA8B,KAAe,GAAQ;EACvD,IAAM,IAAsB,EAAY,aAAc,YAChD,IAAe,EAAO,OAAO,UAAU;EAE7C,IAAI,KAAuB,GAIzB,OAAO,kBAAA,GAAA,CAAI,CAAA;EAGb,IAAM,IAAa,IAAe,GAE9B,IAAc;EAQlB,OANA,AAGE,IAHE,EAAO,kBACK,IAEA,GAId,kBAAC,GAAD;GACE,WAAW;GACX,WAAU;GACV,OAAO,EACL,YAAY,GACd;GACA,SAAQ;GACR,OAAM;aAPR;IASE,kBAAC,GAAD;KACE,WAAU;KACV,OAAO,EAAE,UAAU,OAAO;IAC3B,CAAA;IACA,EAAW,eAAe,IAAI;IAC/B,kBAAC,GAAD;KACE,WAAU;KACV,cAAc;KACd,WAAU;IACE,CAAA;GACJ;;CAEhB,OACE,OAAO,kBAAA,GAAA,CAAI,CAAA;AAEf"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalDownload.FormSchema.js","names":[],"sources":["../../../src/components/ModalDownload/ModalDownload.FormSchema.ts"],"sourcesContent":["import { UiSchema } from '@rjsf/utils'\nimport { JSONSchema7 } from 'json-schema'\n\nexport const writeHeaderOption = 'First line is the columns names.'\nexport const includeRowIdAndRowVersionOption =\n 'Include row metadata (Row Id and Row Version).'\nexport const csvOption = 'Comma Separated Values (CSV)'\nexport const tsvOption = 'Tab Separated Values (TSV)'\n\n// Step 1\nconst stepOneFormSchema: JSONSchema7 = {\n type: 'object',\n properties: {\n 'File Type': {\n type: 'string',\n oneOf: [\n {\n const: csvOption,\n title: csvOption,\n },\n {\n const: tsvOption,\n title: tsvOption,\n },\n ],\n },\n Contents: {\n type: 'array',\n title: 'Contents',\n items: {\n type: 'string',\n enum: [writeHeaderOption, includeRowIdAndRowVersionOption],\n },\n uniqueItems: true,\n },\n },\n}\n\nconst stepOneFormUISchema: UiSchema = {\n 'File Type': {\n 'ui:widget': 'radio',\n },\n Contents: {\n 'ui:widget': 'checkboxes',\n },\n}\n\n// Step 2\nconst stepTwoFormSchema: JSONSchema7 = {\n description:\n 'File is ready for download. Select the download button to download the file.',\n type: 'object',\n}\n\nconst stepTwoFormUISchema: UiSchema = {}\n\nexport const formSchemaArray = [stepOneFormSchema, stepTwoFormSchema]\nexport const formSchemaUIArray = [stepOneFormUISchema, stepTwoFormUISchema]\n"],"mappings":";AAGA,IAAa,IAAoB,oCACpB,IACX,kDACW,IAAY,gCACZ,IAAY,8BAGnB,IAAiC;CACrC,MAAM;CACN,YAAY;EACV,aAAa;GACX,MAAM;GACN,OAAO,CACL;IACE,OAAO;IACP,OAAO;IACR,EACD;IACE,OAAO;IACP,OAAO;IACR,CACF;GACF;EACD,UAAU;GACR,MAAM;GACN,OAAO;GACP,OAAO;IACL,MAAM;IACN,MAAM,CAAC,GAAmB,EAAgC;IAC3D;GACD,aAAa;GACd;EACF;CACF,EAEK,IAAgC;CACpC,aAAa,EACX,aAAa,SACd;CACD,UAAU,EACR,aAAa,cACd;CACF,EAGK,IAAiC;CACrC,aACE;CACF,MAAM;CACP,EAEK,IAAgC,EAAE,EAE3B,IAAkB,CAAC,GAAmB,EAAkB,EACxD,IAAoB,CAAC,GAAqB,EAAoB"}
1
+ {"version":3,"file":"ModalDownload.FormSchema.js","names":[],"sources":["../../../src/components/ModalDownload/ModalDownload.FormSchema.ts"],"sourcesContent":["import { UiSchema } from '@rjsf/utils'\nimport { JSONSchema7 } from 'json-schema'\n\nexport const writeHeaderOption = 'First line is the columns names.'\nexport const includeRowIdAndRowVersionOption =\n 'Include row metadata (Row Id and Row Version).'\nexport const csvOption = 'Comma Separated Values (CSV)'\nexport const tsvOption = 'Tab Separated Values (TSV)'\n\n// Step 1\nconst stepOneFormSchema: JSONSchema7 = {\n type: 'object',\n properties: {\n 'File Type': {\n type: 'string',\n oneOf: [\n {\n const: csvOption,\n title: csvOption,\n },\n {\n const: tsvOption,\n title: tsvOption,\n },\n ],\n },\n Contents: {\n type: 'array',\n title: 'Contents',\n items: {\n type: 'string',\n enum: [writeHeaderOption, includeRowIdAndRowVersionOption],\n },\n uniqueItems: true,\n },\n },\n}\n\nconst stepOneFormUISchema: UiSchema = {\n 'File Type': {\n 'ui:widget': 'radio',\n },\n Contents: {\n 'ui:widget': 'checkboxes',\n },\n}\n\n// Step 2\nconst stepTwoFormSchema: JSONSchema7 = {\n description:\n 'File is ready for download. Select the download button to download the file.',\n type: 'object',\n}\n\nconst stepTwoFormUISchema: UiSchema = {}\n\nexport const formSchemaArray = [stepOneFormSchema, stepTwoFormSchema]\nexport const formSchemaUIArray = [stepOneFormUISchema, stepTwoFormUISchema]\n"],"mappings":";AAGA,IAAa,IAAoB,oCACpB,IACX,kDACW,IAAY,gCACZ,IAAY,8BAGnB,IAAiC;CACrC,MAAM;CACN,YAAY;EACV,aAAa;GACX,MAAM;GACN,OAAO,CACL;IACE,OAAO;IACP,OAAO;GACT,GACA;IACE,OAAO;IACP,OAAO;GACT,CACF;EACF;EACA,UAAU;GACR,MAAM;GACN,OAAO;GACP,OAAO;IACL,MAAM;IACN,MAAM,CAAC,GAAmB,CAA+B;GAC3D;GACA,aAAa;EACf;CACF;AACF,GAEM,IAAgC;CACpC,aAAa,EACX,aAAa,QACf;CACA,UAAU,EACR,aAAa,aACf;AACF,GAGM,IAAiC;CACrC,aACE;CACF,MAAM;AACR,GAEM,IAAgC,CAAC,GAE1B,IAAkB,CAAC,GAAmB,CAAiB,GACvD,IAAoB,CAAC,GAAqB,CAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalDownload.js","names":[],"sources":["../../../src/components/ModalDownload/ModalDownload.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { Button } from '@mui/material'\nimport Form, { IChangeEvent } from '@rjsf/core'\nimport validator from '@rjsf/validator-ajv8'\nimport {\n DownloadFromTableRequest,\n DownloadFromTableResult,\n QueryBundleRequest,\n SortItem,\n} from '@sage-bionetworks/synapse-types'\nimport { Component, ContextType, CSSProperties, Fragment } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport SynapseFormCheckboxesWidget from '../SynapseForm/SynapseFormCheckboxesWidget'\nimport SynapseFormCheckboxWidget from '../SynapseForm/SynapseFormCheckboxWidget'\nimport SynapseFormRadioWidget from '../SynapseForm/SynapseFormRadioWidget'\nimport {\n csvOption,\n formSchemaArray,\n formSchemaUIArray,\n includeRowIdAndRowVersionOption,\n writeHeaderOption,\n} from './ModalDownload.FormSchema'\n\ntype ModalDownloadState = {\n isLoading: boolean\n step: number\n data?: DownloadFromTableResult\n formData: Record<string, unknown>\n}\n\nexport type ModalDownloadProps = {\n onClose: (...args: any[]) => void\n includeEntityEtag?: boolean\n queryBundleRequest?: QueryBundleRequest // either the query bundle request needs to be provided, or getLastQueryRequest\n getLastQueryRequest?: () => QueryBundleRequest\n offset?: number\n limit?: number\n sort?: SortItem[]\n}\n\nexport class ModalDownload extends Component<\n ModalDownloadProps,\n ModalDownloadState\n> {\n static contextType = SynapseContext\n declare context: NonNullable<ContextType<typeof SynapseContext>>\n\n constructor(props: ModalDownloadProps) {\n super(props)\n this.state = {\n isLoading: false,\n step: 0,\n formData: {\n 'File Type': csvOption,\n Contents: [writeHeaderOption, includeRowIdAndRowVersionOption],\n },\n }\n }\n\n handleSubmit = (event: IChangeEvent) => {\n if (this.state.step === 0) {\n this.handleDownloadSetup(event)\n } else {\n this.onDownload()\n }\n }\n\n handleDownloadSetup = (event: IChangeEvent) => {\n this.setState({\n isLoading: true,\n })\n const { formData } = event\n const fileType = formData['File Type']\n const contents = formData.Contents as string[]\n const { queryBundleRequest, getLastQueryRequest } = this.props\n const separator = fileType === csvOption ? ',' : '\\t'\n const writeHeader = contents.includes(writeHeaderOption)\n const includeRowIdAndRowVersion = contents.includes(\n includeRowIdAndRowVersionOption,\n )\n const queryRequest = queryBundleRequest ?? getLastQueryRequest!()\n const sql = queryRequest.query.sql\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryRequest.query.additionalFilters,\n }\n SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n this.context.accessToken,\n )\n .then(data => {\n this.setState({\n isLoading: false,\n step: 1,\n data,\n })\n })\n .catch(err => {\n console.log('Error getDownloadFromTableRequest: ', err)\n })\n }\n\n onDownload = () => {\n const { data } = this.state\n // data will always be defined if calling this function\n SynapseClient.getFileHandleByIdURL(\n data!.resultsFileHandleId,\n this.context.accessToken,\n ).then(url => {\n window.location.href = url\n this.props.onClose()\n })\n }\n\n handleChange = (event: IChangeEvent) => {\n const { formData } = event\n this.setState({\n formData,\n })\n }\n\n render() {\n const spinnerStyle: CSSProperties = {\n height: 50,\n width: 50,\n backgroundSize: 50,\n }\n return (\n <DialogBase\n open={true}\n onCancel={this.props.onClose}\n title=\"Download query results\"\n content={\n <>\n <Form\n validator={validator}\n id=\"modal-download-form\"\n schema={formSchemaArray[this.state.step]}\n uiSchema={formSchemaUIArray[this.state.step]}\n onChange={this.handleChange}\n formData={this.state.formData}\n onSubmit={this.handleSubmit}\n widgets={{\n CheckboxWidget: SynapseFormCheckboxWidget,\n CheckboxesWidget: SynapseFormCheckboxesWidget,\n RadioWidget: SynapseFormRadioWidget,\n }}\n >\n {this.state.isLoading && (\n <div className=\"SRC-centerAndJustifyContent\">\n <div className=\"SRC-center-text\">\n <p> Creating the File </p>\n <div style={spinnerStyle} className=\"spinner\" />\n <p> Loading... </p>\n </div>\n </div>\n )}\n <Fragment />\n </Form>\n </>\n }\n actions={\n <>\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={this.props.onClose}\n >\n Cancel\n </Button>\n <Button\n form=\"modal-download-form\"\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n >\n {this.state.step === 0 ? 'Next' : 'Download'}\n </Button>\n </>\n }\n />\n )\n }\n}\n\nexport default ModalDownload\n"],"mappings":";;;;;;;;;;;;;;AA0CA,IAAa,IAAb,cAAmC,EAGjC;CACA,OAAO,cAAc;CAGrB,YAAY,GAA2B;AAErC,EADA,MAAM,EAAM,EACZ,KAAK,QAAQ;GACX,WAAW;GACX,MAAM;GACN,UAAU;IACR,aAAa;IACb,UAAU,CAAC,GAAmB,EAAgC;IAC/D;GACF;;CAGH,gBAAgB,MAAwB;AACtC,EAAI,KAAK,MAAM,SAAS,IACtB,KAAK,oBAAoB,EAAM,GAE/B,KAAK,YAAY;;CAIrB,uBAAuB,MAAwB;AAC7C,OAAK,SAAS,EACZ,WAAW,IACZ,CAAC;EACF,IAAM,EAAE,gBAAa,GACf,IAAW,EAAS,cACpB,IAAW,EAAS,UACpB,EAAE,uBAAoB,2BAAwB,KAAK,OACnD,IAAY,MAAA,iCAAyB,MAAM,KAC3C,IAAc,EAAS,SAAS,EAAkB,EAClD,IAA4B,EAAS,SACzC,EACD,EACK,IAAe,KAAsB,GAAsB,EAC3D,IAAM,EAAa,MAAM,KACzB,IAAqD;GACzD;GACA,UAAU,EAA8B,EAAI;GAC5C,gBAAgB,EAAa,MAAM;GACnC,cACE;GACF;GACA;GACA,oBAAoB,EAAE,cAAW;GACjC,mBAAmB,EAAa,MAAM;GACvC;AACD,IAAc,0BACZ,GACA,KAAK,QAAQ,YACd,CACE,MAAK,MAAQ;AACZ,QAAK,SAAS;IACZ,WAAW;IACX,MAAM;IACN;IACD,CAAC;IACF,CACD,OAAM,MAAO;AACZ,WAAQ,IAAI,uCAAuC,EAAI;IACvD;;CAGN,mBAAmB;EACjB,IAAM,EAAE,YAAS,KAAK;AAEtB,IAAc,qBACZ,EAAM,qBACN,KAAK,QAAQ,YACd,CAAC,MAAK,MAAO;AAEZ,GADA,OAAO,SAAS,OAAO,GACvB,KAAK,MAAM,SAAS;IACpB;;CAGJ,gBAAgB,MAAwB;EACtC,IAAM,EAAE,gBAAa;AACrB,OAAK,SAAS,EACZ,aACD,CAAC;;CAGJ,SAAS;AAMP,SACE,kBAAC,GAAD;GACE,MAAM;GACN,UAAU,KAAK,MAAM;GACrB,OAAM;GACN,SACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;IACa;IACX,IAAG;IACH,QAAQ,EAAgB,KAAK,MAAM;IACnC,UAAU,EAAkB,KAAK,MAAM;IACvC,UAAU,KAAK;IACf,UAAU,KAAK,MAAM;IACrB,UAAU,KAAK;IACf,SAAS;KACP,gBAAgB;KAChB,kBAAkB;KAClB,aAAa;KACd;cAZH,CAcG,KAAK,MAAM,aACV,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,KAAD,EAAA,UAAG,uBAAuB,CAAA;OAC1B,kBAAC,OAAD;QAAK,OAAO;SA7B1B,QAAQ;SACR,OAAO;SACP,gBAAgB;SA2BU;QAAc,WAAU;QAAY,CAAA;OAChD,kBAAC,KAAD,EAAA,UAAG,gBAAgB,CAAA;OACf;;KACF,CAAA,EAER,kBAAC,GAAD,EAAY,CAAA,CACP;OACN,CAAA;GAEL,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IACE,SAAQ;IACR,OAAM;IACN,SAAS,KAAK,MAAM;cACrB;IAEQ,CAAA,EACT,kBAAC,GAAD;IACE,MAAK;IACL,MAAK;IACL,SAAQ;IACR,OAAM;cAEL,KAAK,MAAM,SAAS,IAAI,SAAS;IAC3B,CAAA,CACR,EAAA,CAAA;GAEL,CAAA"}
1
+ {"version":3,"file":"ModalDownload.js","names":[],"sources":["../../../src/components/ModalDownload/ModalDownload.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { SynapseContext } from '@/utils/context/SynapseContext'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { Button } from '@mui/material'\nimport Form, { IChangeEvent } from '@rjsf/core'\nimport validator from '@rjsf/validator-ajv8'\nimport {\n DownloadFromTableRequest,\n DownloadFromTableResult,\n QueryBundleRequest,\n SortItem,\n} from '@sage-bionetworks/synapse-types'\nimport { Component, ContextType, CSSProperties, Fragment } from 'react'\nimport { DialogBase } from '../DialogBase'\nimport SynapseFormCheckboxesWidget from '../SynapseForm/SynapseFormCheckboxesWidget'\nimport SynapseFormCheckboxWidget from '../SynapseForm/SynapseFormCheckboxWidget'\nimport SynapseFormRadioWidget from '../SynapseForm/SynapseFormRadioWidget'\nimport {\n csvOption,\n formSchemaArray,\n formSchemaUIArray,\n includeRowIdAndRowVersionOption,\n writeHeaderOption,\n} from './ModalDownload.FormSchema'\n\ntype ModalDownloadState = {\n isLoading: boolean\n step: number\n data?: DownloadFromTableResult\n formData: Record<string, unknown>\n}\n\nexport type ModalDownloadProps = {\n onClose: (...args: any[]) => void\n includeEntityEtag?: boolean\n queryBundleRequest?: QueryBundleRequest // either the query bundle request needs to be provided, or getLastQueryRequest\n getLastQueryRequest?: () => QueryBundleRequest\n offset?: number\n limit?: number\n sort?: SortItem[]\n}\n\nexport class ModalDownload extends Component<\n ModalDownloadProps,\n ModalDownloadState\n> {\n static contextType = SynapseContext\n declare context: NonNullable<ContextType<typeof SynapseContext>>\n\n constructor(props: ModalDownloadProps) {\n super(props)\n this.state = {\n isLoading: false,\n step: 0,\n formData: {\n 'File Type': csvOption,\n Contents: [writeHeaderOption, includeRowIdAndRowVersionOption],\n },\n }\n }\n\n handleSubmit = (event: IChangeEvent) => {\n if (this.state.step === 0) {\n this.handleDownloadSetup(event)\n } else {\n this.onDownload()\n }\n }\n\n handleDownloadSetup = (event: IChangeEvent) => {\n this.setState({\n isLoading: true,\n })\n const { formData } = event\n const fileType = formData['File Type']\n const contents = formData.Contents as string[]\n const { queryBundleRequest, getLastQueryRequest } = this.props\n const separator = fileType === csvOption ? ',' : '\\t'\n const writeHeader = contents.includes(writeHeaderOption)\n const includeRowIdAndRowVersion = contents.includes(\n includeRowIdAndRowVersionOption,\n )\n const queryRequest = queryBundleRequest ?? getLastQueryRequest!()\n const sql = queryRequest.query.sql\n const downloadFromTableRequest: DownloadFromTableRequest = {\n sql,\n entityId: parseEntityIdFromSqlStatement(sql),\n selectedFacets: queryRequest.query.selectedFacets,\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n writeHeader,\n includeRowIdAndRowVersion,\n csvTableDescriptor: { separator },\n additionalFilters: queryRequest.query.additionalFilters,\n }\n SynapseClient.createTableCsvForDownload(\n downloadFromTableRequest,\n this.context.accessToken,\n )\n .then(data => {\n this.setState({\n isLoading: false,\n step: 1,\n data,\n })\n })\n .catch(err => {\n console.log('Error getDownloadFromTableRequest: ', err)\n })\n }\n\n onDownload = () => {\n const { data } = this.state\n // data will always be defined if calling this function\n SynapseClient.getFileHandleByIdURL(\n data!.resultsFileHandleId,\n this.context.accessToken,\n ).then(url => {\n window.location.href = url\n this.props.onClose()\n })\n }\n\n handleChange = (event: IChangeEvent) => {\n const { formData } = event\n this.setState({\n formData,\n })\n }\n\n render() {\n const spinnerStyle: CSSProperties = {\n height: 50,\n width: 50,\n backgroundSize: 50,\n }\n return (\n <DialogBase\n open={true}\n onCancel={this.props.onClose}\n title=\"Download query results\"\n content={\n <>\n <Form\n validator={validator}\n id=\"modal-download-form\"\n schema={formSchemaArray[this.state.step]}\n uiSchema={formSchemaUIArray[this.state.step]}\n onChange={this.handleChange}\n formData={this.state.formData}\n onSubmit={this.handleSubmit}\n widgets={{\n CheckboxWidget: SynapseFormCheckboxWidget,\n CheckboxesWidget: SynapseFormCheckboxesWidget,\n RadioWidget: SynapseFormRadioWidget,\n }}\n >\n {this.state.isLoading && (\n <div className=\"SRC-centerAndJustifyContent\">\n <div className=\"SRC-center-text\">\n <p> Creating the File </p>\n <div style={spinnerStyle} className=\"spinner\" />\n <p> Loading... </p>\n </div>\n </div>\n )}\n <Fragment />\n </Form>\n </>\n }\n actions={\n <>\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={this.props.onClose}\n >\n Cancel\n </Button>\n <Button\n form=\"modal-download-form\"\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n >\n {this.state.step === 0 ? 'Next' : 'Download'}\n </Button>\n </>\n }\n />\n )\n }\n}\n\nexport default ModalDownload\n"],"mappings":";;;;;;;;;;;;;;AA0CA,IAAa,IAAb,cAAmC,EAGjC;CACA,OAAO,cAAc;CAGrB,YAAY,GAA2B;EAErC,AADA,MAAM,CAAK,GACX,KAAK,QAAQ;GACX,WAAW;GACX,MAAM;GACN,UAAU;IACR,aAAa;IACb,UAAU,CAAC,GAAmB,CAA+B;GAC/D;EACF;CACF;CAEA,gBAAgB,MAAwB;EACtC,AAAI,KAAK,MAAM,SAAS,IACtB,KAAK,oBAAoB,CAAK,IAE9B,KAAK,WAAW;CAEpB;CAEA,uBAAuB,MAAwB;EAC7C,KAAK,SAAS,EACZ,WAAW,GACb,CAAC;EACD,IAAM,EAAE,gBAAa,GACf,IAAW,EAAS,cACpB,IAAW,EAAS,UACpB,EAAE,uBAAoB,2BAAwB,KAAK,OACnD,IAAY,MAAA,iCAAyB,MAAM,KAC3C,IAAc,EAAS,SAAS,CAAiB,GACjD,IAA4B,EAAS,SACzC,CACF,GACM,IAAe,KAAsB,EAAqB,GAC1D,IAAM,EAAa,MAAM,KACzB,IAAqD;GACzD;GACA,UAAU,EAA8B,CAAG;GAC3C,gBAAgB,EAAa,MAAM;GACnC,cACE;GACF;GACA;GACA,oBAAoB,EAAE,aAAU;GAChC,mBAAmB,EAAa,MAAM;EACxC;EACA,EAAc,0BACZ,GACA,KAAK,QAAQ,WACf,EACG,MAAK,MAAQ;GACZ,KAAK,SAAS;IACZ,WAAW;IACX,MAAM;IACN;GACF,CAAC;EACH,CAAC,EACA,OAAM,MAAO;GACZ,QAAQ,IAAI,uCAAuC,CAAG;EACxD,CAAC;CACL;CAEA,mBAAmB;EACjB,IAAM,EAAE,YAAS,KAAK;EAEtB,EAAc,qBACZ,EAAM,qBACN,KAAK,QAAQ,WACf,EAAE,MAAK,MAAO;GAEZ,AADA,OAAO,SAAS,OAAO,GACvB,KAAK,MAAM,QAAQ;EACrB,CAAC;CACH;CAEA,gBAAgB,MAAwB;EACtC,IAAM,EAAE,gBAAa;EACrB,KAAK,SAAS,EACZ,YACF,CAAC;CACH;CAEA,SAAS;EAMP,OACE,kBAAC,GAAD;GACE,MAAM;GACN,UAAU,KAAK,MAAM;GACrB,OAAM;GACN,SACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;IACa;IACX,IAAG;IACH,QAAQ,EAAgB,KAAK,MAAM;IACnC,UAAU,EAAkB,KAAK,MAAM;IACvC,UAAU,KAAK;IACf,UAAU,KAAK,MAAM;IACrB,UAAU,KAAK;IACf,SAAS;KACP,gBAAgB;KAChB,kBAAkB;KAClB,aAAa;IACf;cAZF,CAcG,KAAK,MAAM,aACV,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,KAAD,EAAA,UAAG,sBAAsB,CAAA;OACzB,kBAAC,OAAD;QAAK,OAAO;SA7B1B,QAAQ;SACR,OAAO;SACP,gBAAgB;QA2BU;QAAc,WAAU;OAAW,CAAA;OAC/C,kBAAC,KAAD,EAAA,UAAG,eAAe,CAAA;MACf;;IACF,CAAA,GAEP,kBAAC,GAAD,CAAW,CAAA,CACP;MACN,CAAA;GAEJ,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IACE,SAAQ;IACR,OAAM;IACN,SAAS,KAAK,MAAM;cACrB;GAEO,CAAA,GACR,kBAAC,GAAD;IACE,MAAK;IACL,MAAK;IACL,SAAQ;IACR,OAAM;cAEL,KAAK,MAAM,SAAS,IAAI,SAAS;GAC5B,CAAA,CACR,EAAA,CAAA;EAEL,CAAA;CAEL;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"MuiContainer.js","names":[],"sources":["../../src/components/MuiContainer.tsx"],"sourcesContent":["import { StyledComponent } from '@emotion/styled'\nimport { Box, BoxProps, styled } from '@mui/material'\n\n/**\n * Drop in MUI substitute class for Bootstrap Container component\n */\nexport const MuiContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'MuiContainer',\n})(({ theme }) => ({\n paddingRight: 15,\n paddingLeft: 15,\n marginRight: 'auto',\n marginLeft: 'auto',\n\n // Full width for (xs, extra-small: 0px or larger) and (sm, small: 600px or larger)\n [theme.breakpoints.up('md')]: {\n // medium: 960px or larger\n width: 920,\n },\n [theme.breakpoints.up('lg')]: {\n // large: 1280px or larger\n width: 1170,\n },\n [theme.breakpoints.up('xl')]: {\n // extra-large: 1920px or larger\n width: 1366,\n },\n}))\n\nexport default MuiContainer\n"],"mappings":";;AAMA,IAAa,IAA0C,EAAO,GAAK,EACjE,OAAO,gBACR,CAAC,EAAE,EAAE,gBAAa;CACjB,cAAc;CACd,aAAa;CACb,aAAa;CACb,YAAY;EAGX,EAAM,YAAY,GAAG,KAAK,GAAG,EAE5B,OAAO,KACR;EACA,EAAM,YAAY,GAAG,KAAK,GAAG,EAE5B,OAAO,MACR;EACA,EAAM,YAAY,GAAG,KAAK,GAAG,EAE5B,OAAO,MACR;CACF,EAAE"}
1
+ {"version":3,"file":"MuiContainer.js","names":[],"sources":["../../src/components/MuiContainer.tsx"],"sourcesContent":["import { StyledComponent } from '@emotion/styled'\nimport { Box, BoxProps, styled } from '@mui/material'\n\n/**\n * Drop in MUI substitute class for Bootstrap Container component\n */\nexport const MuiContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'MuiContainer',\n})(({ theme }) => ({\n paddingRight: 15,\n paddingLeft: 15,\n marginRight: 'auto',\n marginLeft: 'auto',\n\n // Full width for (xs, extra-small: 0px or larger) and (sm, small: 600px or larger)\n [theme.breakpoints.up('md')]: {\n // medium: 960px or larger\n width: 920,\n },\n [theme.breakpoints.up('lg')]: {\n // large: 1280px or larger\n width: 1170,\n },\n [theme.breakpoints.up('xl')]: {\n // extra-large: 1920px or larger\n width: 1366,\n },\n}))\n\nexport default MuiContainer\n"],"mappings":";;AAMA,IAAa,IAA0C,EAAO,GAAK,EACjE,OAAO,eACT,CAAC,GAAG,EAAE,gBAAa;CACjB,cAAc;CACd,aAAa;CACb,aAAa;CACb,YAAY;EAGX,EAAM,YAAY,GAAG,IAAI,IAAI,EAE5B,OAAO,IACT;EACC,EAAM,YAAY,GAAG,IAAI,IAAI,EAE5B,OAAO,KACT;EACC,EAAM,YAAY,GAAG,IAAI,IAAI,EAE5B,OAAO,KACT;AACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthAclEditorModal.js","names":[],"sources":["../../../src/components/OAuthClientAclEditor/OAuthAclEditorModal.tsx"],"sourcesContent":["import { noop } from 'lodash-es'\nimport { useRef } from 'react'\nimport { displayToast } from '../ToastMessage'\nimport {\n OAuthClientAclEditor,\n OAuthClientAclEditorHandle,\n} from './OAuthClientAclEditor'\nimport { DialogBase } from '../DialogBase'\nimport { Button } from '@mui/material'\n\nexport type OAuthAclEditorModalProps = {\n clientId: string\n open: boolean\n onUpdateSuccess?: () => void\n onClose: () => void\n}\n\nexport default function OAuthAclEditorModal(\n props: OAuthAclEditorModalProps,\n): React.ReactNode {\n const { clientId, open, onUpdateSuccess = noop, onClose } = props\n const ref = useRef<OAuthClientAclEditorHandle>(null)\n return (\n <>\n <DialogBase\n open={open}\n title=\"OAuth Client Sharing Settings\"\n onCancel={onClose}\n maxWidth={'md'}\n content={\n <OAuthClientAclEditor\n ref={ref}\n clientId={clientId}\n onSaveComplete={() => {\n displayToast(\n 'Permissions were successfully saved to Synapse',\n 'info',\n )\n onUpdateSuccess()\n onClose()\n }}\n />\n }\n actions={\n <>\n <Button\n variant=\"outlined\"\n onClick={() => {\n onClose()\n }}\n >\n Cancel\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n ref.current?.save()\n }}\n >\n Save\n </Button>\n </>\n }\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAiBA,SAAwB,EACtB,GACiB;CACjB,IAAM,EAAE,aAAU,SAAM,qBAAkB,GAAM,eAAY,GACtD,IAAM,EAAmC,KAAK;AACpD,QACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACQ;EACN,OAAM;EACN,UAAU;EACV,UAAU;EACV,SACE,kBAAC,GAAD;GACO;GACK;GACV,sBAAsB;AAMpB,IALA,EACE,kDACA,OACD,EACD,GAAiB,EACjB,GAAS;;GAEX,CAAA;EAEJ,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAQ;GACR,eAAe;AACb,OAAS;;aAEZ;GAEQ,CAAA,EACT,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,eAAe;AACb,MAAI,SAAS,MAAM;;aAEtB;GAEQ,CAAA,CACR,EAAA,CAAA;EAEL,CAAA,EACD,CAAA"}
1
+ {"version":3,"file":"OAuthAclEditorModal.js","names":[],"sources":["../../../src/components/OAuthClientAclEditor/OAuthAclEditorModal.tsx"],"sourcesContent":["import { noop } from 'lodash-es'\nimport { useRef } from 'react'\nimport { displayToast } from '../ToastMessage'\nimport {\n OAuthClientAclEditor,\n OAuthClientAclEditorHandle,\n} from './OAuthClientAclEditor'\nimport { DialogBase } from '../DialogBase'\nimport { Button } from '@mui/material'\n\nexport type OAuthAclEditorModalProps = {\n clientId: string\n open: boolean\n onUpdateSuccess?: () => void\n onClose: () => void\n}\n\nexport default function OAuthAclEditorModal(\n props: OAuthAclEditorModalProps,\n): React.ReactNode {\n const { clientId, open, onUpdateSuccess = noop, onClose } = props\n const ref = useRef<OAuthClientAclEditorHandle>(null)\n return (\n <>\n <DialogBase\n open={open}\n title=\"OAuth Client Sharing Settings\"\n onCancel={onClose}\n maxWidth={'md'}\n content={\n <OAuthClientAclEditor\n ref={ref}\n clientId={clientId}\n onSaveComplete={() => {\n displayToast(\n 'Permissions were successfully saved to Synapse',\n 'info',\n )\n onUpdateSuccess()\n onClose()\n }}\n />\n }\n actions={\n <>\n <Button\n variant=\"outlined\"\n onClick={() => {\n onClose()\n }}\n >\n Cancel\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n ref.current?.save()\n }}\n >\n Save\n </Button>\n </>\n }\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAiBA,SAAwB,EACtB,GACiB;CACjB,IAAM,EAAE,aAAU,SAAM,qBAAkB,GAAM,eAAY,GACtD,IAAM,EAAmC,IAAI;CACnD,OACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;EACQ;EACN,OAAM;EACN,UAAU;EACV,UAAU;EACV,SACE,kBAAC,GAAD;GACO;GACK;GACV,sBAAsB;IAMpB,AALA,EACE,kDACA,MACF,GACA,EAAgB,GAChB,EAAQ;GACV;EACD,CAAA;EAEH,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAQ;GACR,eAAe;IACb,EAAQ;GACV;aACD;EAEO,CAAA,GACR,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,eAAe;IACb,EAAI,SAAS,KAAK;GACpB;aACD;EAEO,CAAA,CACR,EAAA,CAAA;CAEL,CAAA,EACD,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthClientAclEditor.js","names":[],"sources":["../../../src/components/OAuthClientAclEditor/OAuthClientAclEditor.tsx"],"sourcesContent":["import {\n useGetOAuthClientACL,\n useUpdateOAuthClientACL,\n} from '@/synapse-queries'\nimport {\n getAccessTypeFromPermissionLevel,\n PermissionLevel,\n} from '@/utils/PermissionLevelToAccessType'\nimport { Alert, Stack } from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n consolidateResourceAccessList,\n convertResourceAccessSetToSRC,\n updateACLWithSRCResourceAccessList,\n} from '@/utils/functions/AccessControlListUtils'\nimport { isEqual } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { AclEditor } from '../AclEditor/AclEditor'\nimport useUpdateAcl from '../AclEditor/useUpdateAcl'\nimport { AccessControlList } from '@sage-bionetworks/synapse-client'\n\nconst availablePermissionLevels: PermissionLevel[] = [\n 'CAN_ADMINISTER_OAUTH_CLIENT',\n]\n\nexport type OAuthClientAclEditorHandle = {\n /* Allow the parent component to trigger saving the ACL, so this may be embedded in an arbitrary modal. */\n save: () => void\n}\n\nexport type OAuthClientAclEditorProps = {\n clientId: string\n onSaveComplete: (saveSuccessful: boolean) => void\n}\n\nexport const OAuthClientAclEditor = forwardRef(function OAuthClientAclEditor(\n props: OAuthClientAclEditorProps,\n ref: ForwardedRef<OAuthClientAclEditorHandle>,\n) {\n const { clientId, onSaveComplete } = props\n const [error, setError] = useState<string | null>(null)\n\n const onMutationSuccess = () => {\n setError(null)\n onSaveComplete(true)\n }\n\n const onMutationError = (error: SynapseClientError) => {\n setError(error.reason)\n onSaveComplete(false)\n }\n\n const { data: originalAcl, isLoading: isLoadingOriginalAcl } =\n useGetOAuthClientACL(clientId, {\n // Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation\n staleTime: Infinity,\n })\n\n const consolidatedOriginalResourceAccess = useMemo(\n () =>\n consolidateResourceAccessList(\n convertResourceAccessSetToSRC(originalAcl?.resourceAccess),\n ),\n [originalAcl],\n )\n\n const {\n resourceAccessList,\n setResourceAccessList,\n addResourceAccessItem,\n updateResourceAccessItem,\n removeResourceAccessItem,\n resetDirtyState,\n } = useUpdateAcl({\n onChange: () => setError(null),\n onError: setError,\n })\n\n // set resourceAccessList when the fetched acl changes\n useEffect(() => {\n if (originalAcl) {\n resetDirtyState()\n setResourceAccessList(consolidatedOriginalResourceAccess)\n }\n }, [\n originalAcl,\n consolidatedOriginalResourceAccess,\n resetDirtyState,\n setResourceAccessList,\n ])\n\n const { mutate: updateAcl } = useUpdateOAuthClientACL({\n onSuccess: () => onMutationSuccess(),\n onError: (error: SynapseClientError) => onMutationError(error),\n })\n\n useImperativeHandle(ref, () => {\n return {\n save() {\n const updatedAcl: AccessControlList =\n updateACLWithSRCResourceAccessList(originalAcl, resourceAccessList)\n const aclIsUnchanged =\n (originalAcl === null && updatedAcl == null) ||\n // ignore properties that will change when the ACL is saved (etag, modifiedOn)\n (isEqual(consolidatedOriginalResourceAccess, resourceAccessList) &&\n originalAcl?.id === updatedAcl?.id)\n\n if (aclIsUnchanged) {\n // noop\n onSaveComplete(true)\n } else {\n updateAcl(updatedAcl)\n }\n },\n }\n }, [\n clientId,\n originalAcl,\n consolidatedOriginalResourceAccess,\n resourceAccessList,\n onSaveComplete,\n updateAcl,\n ])\n\n return (\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <AclEditor\n resourceAccessList={resourceAccessList}\n availablePermissionLevels={availablePermissionLevels}\n isLoading={isLoadingOriginalAcl}\n canEdit={true}\n emptyText={/* This should never happen */ ''}\n onAddPrincipalToAcl={id =>\n addResourceAccessItem(\n id,\n getAccessTypeFromPermissionLevel('CAN_ADMINISTER_OAUTH_CLIENT'),\n )\n }\n updateResourceAccessItem={updateResourceAccessItem}\n removeResourceAccessItem={removeResourceAccessItem}\n showAddRemovePublicButton={false}\n showNotifyCheckbox={false}\n isInherited={false}\n />\n {error && <Alert severity=\"error\">{error}</Alert>}\n </Stack>\n )\n})\n"],"mappings":";;;;;;;;;;;AA4BA,IAAM,IAA+C,CACnD,8BACD,EAYY,IAAuB,EAAW,SAC7C,GACA,GACA;CACA,IAAM,EAAE,aAAU,sBAAmB,GAC/B,CAAC,GAAO,KAAY,EAAwB,KAAK,EAEjD,UAA0B;AAE9B,EADA,EAAS,KAAK,EACd,EAAe,GAAK;IAGhB,KAAmB,MAA8B;AAErD,EADA,EAAS,EAAM,OAAO,EACtB,EAAe,GAAM;IAGjB,EAAE,MAAM,GAAa,WAAW,MACpC,EAAqB,GAAU,EAE7B,WAAW,UACZ,CAAC,EAEE,IAAqC,QAEvC,EACE,EAA8B,GAAa,eAAe,CAC3D,EACH,CAAC,EAAY,CACd,EAEK,EACJ,uBACA,0BACA,0BACA,6BACA,6BACA,uBACE,EAAa;EACf,gBAAgB,EAAS,KAAK;EAC9B,SAAS;EACV,CAAC;AAGF,SAAgB;AACd,EAAI,MACF,GAAiB,EACjB,EAAsB,EAAmC;IAE1D;EACD;EACA;EACA;EACA;EACD,CAAC;CAEF,IAAM,EAAE,QAAQ,MAAc,EAAwB;EACpD,iBAAiB,GAAmB;EACpC,UAAU,MAA8B,EAAgB,EAAM;EAC/D,CAAC;AA8BF,QA5BA,EAAoB,UACX,EACL,OAAO;EACL,IAAM,IACJ,EAAmC,GAAa,EAAmB;AAOrE,EALG,MAAgB,QAAQ,KAAc,QAEtC,EAAQ,GAAoC,EAAmB,IAC9D,GAAa,OAAO,GAAY,KAIlC,EAAe,GAAK,GAEpB,EAAU,EAAW;IAG1B,GACA;EACD;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EAGA,kBAAC,GAAD;EACE,WAAU;EACV,IAAI,EACF,KAAK,QACN;YAJH,CAME,kBAAC,GAAD;GACsB;GACO;GAC3B,WAAW;GACX,SAAS;GACT,WAA0C;GAC1C,sBAAqB,MACnB,EACE,GACA,EAAiC,8BAA8B,CAChE;GAEuB;GACA;GAC1B,2BAA2B;GAC3B,oBAAoB;GACpB,aAAa;GACb,CAAA,EACD,KAAS,kBAAC,GAAD;GAAO,UAAS;aAAS;GAAc,CAAA,CAC3C;;EAEV"}
1
+ {"version":3,"file":"OAuthClientAclEditor.js","names":[],"sources":["../../../src/components/OAuthClientAclEditor/OAuthClientAclEditor.tsx"],"sourcesContent":["import {\n useGetOAuthClientACL,\n useUpdateOAuthClientACL,\n} from '@/synapse-queries'\nimport {\n getAccessTypeFromPermissionLevel,\n PermissionLevel,\n} from '@/utils/PermissionLevelToAccessType'\nimport { Alert, Stack } from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n consolidateResourceAccessList,\n convertResourceAccessSetToSRC,\n updateACLWithSRCResourceAccessList,\n} from '@/utils/functions/AccessControlListUtils'\nimport { isEqual } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { AclEditor } from '../AclEditor/AclEditor'\nimport useUpdateAcl from '../AclEditor/useUpdateAcl'\nimport { AccessControlList } from '@sage-bionetworks/synapse-client'\n\nconst availablePermissionLevels: PermissionLevel[] = [\n 'CAN_ADMINISTER_OAUTH_CLIENT',\n]\n\nexport type OAuthClientAclEditorHandle = {\n /* Allow the parent component to trigger saving the ACL, so this may be embedded in an arbitrary modal. */\n save: () => void\n}\n\nexport type OAuthClientAclEditorProps = {\n clientId: string\n onSaveComplete: (saveSuccessful: boolean) => void\n}\n\nexport const OAuthClientAclEditor = forwardRef(function OAuthClientAclEditor(\n props: OAuthClientAclEditorProps,\n ref: ForwardedRef<OAuthClientAclEditorHandle>,\n) {\n const { clientId, onSaveComplete } = props\n const [error, setError] = useState<string | null>(null)\n\n const onMutationSuccess = () => {\n setError(null)\n onSaveComplete(true)\n }\n\n const onMutationError = (error: SynapseClientError) => {\n setError(error.reason)\n onSaveComplete(false)\n }\n\n const { data: originalAcl, isLoading: isLoadingOriginalAcl } =\n useGetOAuthClientACL(clientId, {\n // Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation\n staleTime: Infinity,\n })\n\n const consolidatedOriginalResourceAccess = useMemo(\n () =>\n consolidateResourceAccessList(\n convertResourceAccessSetToSRC(originalAcl?.resourceAccess),\n ),\n [originalAcl],\n )\n\n const {\n resourceAccessList,\n setResourceAccessList,\n addResourceAccessItem,\n updateResourceAccessItem,\n removeResourceAccessItem,\n resetDirtyState,\n } = useUpdateAcl({\n onChange: () => setError(null),\n onError: setError,\n })\n\n // set resourceAccessList when the fetched acl changes\n useEffect(() => {\n if (originalAcl) {\n resetDirtyState()\n setResourceAccessList(consolidatedOriginalResourceAccess)\n }\n }, [\n originalAcl,\n consolidatedOriginalResourceAccess,\n resetDirtyState,\n setResourceAccessList,\n ])\n\n const { mutate: updateAcl } = useUpdateOAuthClientACL({\n onSuccess: () => onMutationSuccess(),\n onError: (error: SynapseClientError) => onMutationError(error),\n })\n\n useImperativeHandle(ref, () => {\n return {\n save() {\n const updatedAcl: AccessControlList =\n updateACLWithSRCResourceAccessList(originalAcl, resourceAccessList)\n const aclIsUnchanged =\n (originalAcl === null && updatedAcl == null) ||\n // ignore properties that will change when the ACL is saved (etag, modifiedOn)\n (isEqual(consolidatedOriginalResourceAccess, resourceAccessList) &&\n originalAcl?.id === updatedAcl?.id)\n\n if (aclIsUnchanged) {\n // noop\n onSaveComplete(true)\n } else {\n updateAcl(updatedAcl)\n }\n },\n }\n }, [\n clientId,\n originalAcl,\n consolidatedOriginalResourceAccess,\n resourceAccessList,\n onSaveComplete,\n updateAcl,\n ])\n\n return (\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <AclEditor\n resourceAccessList={resourceAccessList}\n availablePermissionLevels={availablePermissionLevels}\n isLoading={isLoadingOriginalAcl}\n canEdit={true}\n emptyText={/* This should never happen */ ''}\n onAddPrincipalToAcl={id =>\n addResourceAccessItem(\n id,\n getAccessTypeFromPermissionLevel('CAN_ADMINISTER_OAUTH_CLIENT'),\n )\n }\n updateResourceAccessItem={updateResourceAccessItem}\n removeResourceAccessItem={removeResourceAccessItem}\n showAddRemovePublicButton={false}\n showNotifyCheckbox={false}\n isInherited={false}\n />\n {error && <Alert severity=\"error\">{error}</Alert>}\n </Stack>\n )\n})\n"],"mappings":";;;;;;;;;;;AA4BA,IAAM,IAA+C,CACnD,6BACF,GAYa,IAAuB,EAAW,SAC7C,GACA,GACA;CACA,IAAM,EAAE,aAAU,sBAAmB,GAC/B,CAAC,GAAO,KAAY,EAAwB,IAAI,GAEhD,UAA0B;EAE9B,AADA,EAAS,IAAI,GACb,EAAe,EAAI;CACrB,GAEM,KAAmB,MAA8B;EAErD,AADA,EAAS,EAAM,MAAM,GACrB,EAAe,EAAK;CACtB,GAEM,EAAE,MAAM,GAAa,WAAW,MACpC,EAAqB,GAAU,EAE7B,WAAW,SACb,CAAC,GAEG,IAAqC,QAEvC,EACE,EAA8B,GAAa,cAAc,CAC3D,GACF,CAAC,CAAW,CACd,GAEM,EACJ,uBACA,0BACA,0BACA,6BACA,6BACA,uBACE,EAAa;EACf,gBAAgB,EAAS,IAAI;EAC7B,SAAS;CACX,CAAC;CAGD,QAAgB;EACd,AAAI,MACF,EAAgB,GAChB,EAAsB,CAAkC;CAE5D,GAAG;EACD;EACA;EACA;EACA;CACF,CAAC;CAED,IAAM,EAAE,QAAQ,MAAc,EAAwB;EACpD,iBAAiB,EAAkB;EACnC,UAAU,MAA8B,EAAgB,CAAK;CAC/D,CAAC;CA8BD,OA5BA,EAAoB,UACX,EACL,OAAO;EACL,IAAM,IACJ,EAAmC,GAAa,CAAkB;EAOpE,AALG,MAAgB,QAAQ,KAAc,QAEtC,EAAQ,GAAoC,CAAkB,KAC7D,GAAa,OAAO,GAAY,KAIlC,EAAe,EAAI,IAEnB,EAAU,CAAU;CAExB,EACF,IACC;EACD;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAGC,kBAAC,GAAD;EACE,WAAU;EACV,IAAI,EACF,KAAK,OACP;YAJF,CAME,kBAAC,GAAD;GACsB;GACO;GAC3B,WAAW;GACX,SAAS;GACT,WAA0C;GAC1C,sBAAqB,MACnB,EACE,GACA,EAAiC,6BAA6B,CAChE;GAEwB;GACA;GAC1B,2BAA2B;GAC3B,oBAAoB;GACpB,aAAa;EACd,CAAA,GACA,KAAS,kBAAC,GAAD;GAAO,UAAS;aAAS;EAAa,CAAA,CAC3C;;AAEX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateOAuthClient.js","names":[],"sources":["../../../src/components/OAuthClientManagement/CreateOAuthClient.tsx"],"sourcesContent":["import {\n useCreateOAuthClient,\n useDeleteOAuthClient,\n useUpdateOAuthClient,\n} from '@/synapse-queries'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { useDebouncedEffect } from '@/utils/hooks'\nimport DeleteTwoToneIcon from '@mui/icons-material/DeleteTwoTone'\nimport {\n Alert,\n Box,\n Button,\n GridLegacy as Grid,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n Typography,\n} from '@mui/material'\nimport { OAuthClient } from '@sage-bionetworks/synapse-client/generated/models/OAuthClient'\nimport { OIDCSigningAlgorithm } from '@sage-bionetworks/synapse-client/generated/models/OIDCSigningAlgorithm'\nimport { ChangeEvent, useEffect, useMemo, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { WarningDialog } from '../SynapseForm/WarningDialog'\nimport { displayToast } from '../ToastMessage/ToastMessage'\n\nexport const defaultUserInfoSignedResponseAlgorithm = 'JSON'\nexport const warningHeader = 'Are you absolutely sure?'\nexport const warningBody =\n 'Editing this detail will render your client invalid and will require you to resubmit verification. This action cannot be undone.'\nconst INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\nconst GRID_NARROW = 12\nconst GRID_WIDE = 6\nconst GRID_ROW_SPACING = 1\nconst GRID_COL_SPACING = 2\n\nexport type CreateOAuthModalProps = {\n isShowingModal: boolean\n isEdit: boolean\n onClose: () => void\n setIsShowingConfirmModal: (a: boolean) => void\n isShowingConfirmModal: boolean\n client?: OAuthClient\n setIsShowingModal: (a: boolean) => void\n}\n\nexport function CreateOAuthModal({\n isShowingModal = false,\n isEdit,\n onClose,\n client,\n setIsShowingConfirmModal,\n isShowingConfirmModal,\n setIsShowingModal,\n}: CreateOAuthModalProps) {\n const { synapseClient } = useSynapseContext()\n const [clientName, setClientName] = useState('')\n const [redirectUris, setRedirectUris] = useState([{ uri: '' }])\n const [policyUri, setPolicyUri] = useState<string>('')\n const [clientUri, setClientUri] = useState<string>('')\n const [sectorUri, setSectorUri] = useState<string>('')\n const [tosUri, setTosUri] = useState<string>('')\n const [userinfoSignedResponseAlg, setUserinfoSignedResponseAlg] = useState<\n 'JSON' | OIDCSigningAlgorithm\n >(defaultUserInfoSignedResponseAlgorithm)\n const [warnTrigger, setWarnTrigger] = useState(false)\n const [isDelete, setIsDelete] = useState<boolean>(false)\n const [updatedClient, setUpdatedClient] = useState<OAuthClient>()\n const [error, setError] = useState<SynapseClientError>()\n\n // Return the OAuth Client definition based on the current client-side UI state\n const oAuthClient: OAuthClient = useMemo(() => {\n return {\n client_id: client?.client_id,\n client_name: clientName,\n redirect_uris: redirectUris?.map(str => str.uri) ?? [''],\n policy_uri: policyUri,\n client_uri: clientUri,\n sector_identifier_uri: sectorUri,\n userinfo_signed_response_alg:\n userinfoSignedResponseAlg === defaultUserInfoSignedResponseAlgorithm\n ? undefined\n : userinfoSignedResponseAlg,\n tos_uri: tosUri,\n etag: client?.etag,\n }\n }, [\n client?.client_id,\n client?.etag,\n clientName,\n clientUri,\n policyUri,\n redirectUris,\n sectorUri,\n userinfoSignedResponseAlg,\n tosUri,\n ])\n\n useEffect(() => {\n setClientName(client?.client_name ?? '')\n setRedirectUris(\n client?.redirect_uris?.map((str: string) => ({ uri: str })) ?? [\n { uri: '' },\n ],\n )\n setPolicyUri(client?.policy_uri ?? '')\n setClientUri(client?.client_uri ?? '')\n setSectorUri(client?.sector_identifier_uri ?? '')\n setUserinfoSignedResponseAlg(\n client?.userinfo_signed_response_alg ??\n defaultUserInfoSignedResponseAlgorithm,\n )\n setTosUri(client?.tos_uri ?? '')\n }, [isShowingModal, client])\n\n useDebouncedEffect(\n () => {\n if (oAuthClient.client_id) {\n // SWC-6365: use the pre-check service to determine if we need to show a warning on edit\n synapseClient.openIDConnectServicesClient\n .putAuthV1Oauth2ClientIdVerificationPrecheck({\n id: oAuthClient.client_id,\n oAuthClient: oAuthClient,\n })\n .then(precheckResult => {\n setWarnTrigger(precheckResult.reverificationRequired!)\n })\n }\n },\n [oAuthClient, synapseClient.openIDConnectServicesClient],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n const hide = () => {\n setClientName('')\n setRedirectUris([{ uri: '' }])\n setPolicyUri('')\n setClientUri('')\n setSectorUri('')\n setUserinfoSignedResponseAlg(defaultUserInfoSignedResponseAlgorithm)\n setTosUri('')\n onClose()\n }\n\n const hideConfirmModal = () => {\n setIsShowingConfirmModal(false)\n setIsDelete(false)\n }\n\n const { mutate: createClient } = useCreateOAuthClient({\n onSuccess: () => {\n displayToast('Successfully created', 'success')\n setError(undefined)\n hide()\n },\n onError: err => {\n setError(err)\n },\n })\n\n const { mutate: updateClient, isPending: updateIsPending } =\n useUpdateOAuthClient({\n onSuccess: () => {\n displayToast('Successfully saved', 'success')\n setError(undefined)\n hide()\n },\n onError: err => {\n setError(err)\n setIsShowingModal(true)\n },\n })\n\n const { mutate: deleteClient } = useDeleteOAuthClient({\n onSuccess: () => {\n displayToast('Successfully deleted', 'success')\n hide()\n },\n onError: error => {\n displayToast(error.reason, 'danger')\n },\n })\n\n const onCreateClient = () => {\n try {\n setUpdatedClient(oAuthClient)\n if (warnTrigger === true) {\n setIsShowingConfirmModal(true)\n } else {\n if (isEdit) {\n updateClient(oAuthClient)\n } else {\n createClient(oAuthClient)\n }\n }\n } catch (err) {\n displayToast(err.reason as string, 'danger')\n }\n }\n\n const handleRedirectUriAdd = () => {\n if (redirectUris) {\n setRedirectUris([...redirectUris, { uri: '' }])\n }\n }\n\n const handleRedirectUriRemove = (index: number) => {\n if (redirectUris) {\n const list = [...redirectUris]\n list.splice(index, 1)\n setRedirectUris(list)\n }\n }\n\n const handleUriChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,\n index: number,\n ) => {\n if (redirectUris) {\n const { name, value } = e.target\n const list = [...redirectUris]\n list[index][name as 'uri'] = value\n setRedirectUris(list)\n }\n }\n\n const dangerLabelSx = {\n color: isEdit ? 'error.main' : undefined,\n '&.Mui-focused': {\n color: isEdit ? 'error.main' : undefined,\n },\n }\n\n const sectorIdentifierURIInput = (\n <TextField\n onChange={e => setSectorUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={sectorUri}\n id=\"sectorURI\"\n label=\"Sector Identifier URI\"\n margin=\"normal\"\n fullWidth\n slotProps={{\n inputLabel: { sx: dangerLabelSx },\n }}\n />\n )\n\n const redirectURIInputs = (\n <>\n {redirectUris?.map((singleUri, idx) => (\n <div key={idx}>\n <TextField\n required={idx === 0}\n label={idx === 0 && 'Redirect URI(s)'}\n name=\"uri\"\n fullWidth\n id={`redirect-uri-${idx}`}\n onChange={e => handleUriChange(e, idx)}\n value={singleUri.uri}\n placeholder=\"https://\"\n type=\"text\"\n margin={idx === 0 ? 'normal' : 'dense'}\n slotProps={{\n input: {\n endAdornment: redirectUris.length > 1 && (\n <InputAdornment position=\"end\">\n <IconButton onClick={() => handleRedirectUriRemove(idx)}>\n <DeleteTwoToneIcon sx={{ color: 'error.main' }} />\n </IconButton>\n </InputAdornment>\n ),\n },\n\n inputLabel: { sx: dangerLabelSx },\n }}\n />\n {redirectUris.length - 1 === idx && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleRedirectUriAdd}\n disabled={singleUri.uri.length === 0}\n sx={{ my: '10px' }}\n >\n Add URI\n </Button>\n )}\n </div>\n ))}\n </>\n )\n\n const content = (\n <>\n {updateIsPending && (\n <div className={'SRC-center-text'}>\n <SynapseSpinner size={40} />\n </div>\n )}\n {!updateIsPending && (\n <>\n <Typography\n variant=\"body1\"\n sx={{\n mb: '10px',\n }}\n >\n To protect you and your users, your consent screen and application\n will need to be verified by Sage Bionetworks. Before your consent\n screen and application are verified by Sage Bionetworks, you can\n still test your application with limitations.\n </Typography>\n\n {isEdit && (\n <Typography sx={{ mt: '16px' }} variant=\"label\">\n Client ID: {client?.client_id}\n </Typography>\n )}\n <Grid\n container\n rowSpacing={GRID_ROW_SPACING}\n columnSpacing={GRID_COL_SPACING}\n >\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Client Name\"\n required\n onChange={e => setClientName(e.target.value)}\n placeholder=\"Client Name\"\n type=\"text\"\n value={clientName}\n id=\"clientName\"\n margin=\"normal\"\n fullWidth\n />\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Client Homepage\"\n onChange={e => setClientUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={clientUri}\n id=\"clientUri\"\n fullWidth\n margin=\"normal\"\n />\n </Grid>\n {!isEdit && (\n <>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {redirectURIInputs}\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {sectorIdentifierURIInput}\n </Grid>\n </>\n )}\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Link to Privacy Policy\"\n onChange={e => setPolicyUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={policyUri}\n fullWidth\n margin=\"normal\"\n />\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Links to Terms of Service\"\n onChange={e => setTosUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={tosUri}\n fullWidth\n margin=\"normal\"\n />\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"User Info Signed Response Algorithm\"\n value={userinfoSignedResponseAlg}\n onChange={e =>\n setUserinfoSignedResponseAlg(\n e.target.value as OIDCSigningAlgorithm,\n )\n }\n select\n fullWidth\n margin=\"normal\"\n >\n <MenuItem value={defaultUserInfoSignedResponseAlgorithm}>\n JSON\n </MenuItem>\n <MenuItem value={OIDCSigningAlgorithm.RS256}>JWT</MenuItem>\n </TextField>\n </Grid>\n </Grid>\n {isEdit && (\n <Box\n sx={{\n mt: '10px',\n padding: 1,\n backgroundColor: 'rgb(178, 36, 42, 0.03)',\n }}\n >\n <Typography sx={{ my: 1 }} color=\"error\" variant=\"headline3\">\n DANGER ZONE\n </Typography>\n <Typography variant=\"smallText1\">\n Editing the following information will render your client\n invalid and will require you to create it again and resubmit\n verification if needed.\n </Typography>\n <Grid\n container\n rowSpacing={GRID_ROW_SPACING}\n columnSpacing={GRID_COL_SPACING}\n >\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {redirectURIInputs}\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {sectorIdentifierURIInput}\n </Grid>\n </Grid>\n\n <Button\n onClick={() => {\n setIsDelete(true)\n setIsShowingConfirmModal(true)\n }}\n color=\"error\"\n variant=\"text\"\n startIcon={<DeleteTwoToneIcon />}\n sx={{ padding: 0, mb: 1 }}\n >\n DELETE CLIENT\n </Button>\n </Box>\n )}\n </>\n )}\n {error && <Alert severity=\"error\">{error?.reason}</Alert>}\n </>\n )\n\n return (\n <>\n <ConfirmationDialog\n open={isShowingModal && !isShowingConfirmModal}\n onCancel={() => {\n hide()\n setError(undefined)\n }}\n maxWidth=\"md\"\n title={isEdit ? 'Client Details' : 'Create New OAuth Client'}\n content={content}\n onConfirm={onCreateClient}\n confirmButtonProps={{ children: 'Save' }}\n />\n <WarningDialog\n open={isShowingConfirmModal}\n title={warningHeader}\n content={warningBody}\n onCancel={hideConfirmModal}\n onConfirm={() => {\n if (isDelete) {\n deleteClient(client?.client_id!)\n } else {\n updateClient(updatedClient!)\n }\n hideConfirmModal()\n }}\n confirmButtonColor=\"error\"\n confirmButtonText=\"Yes, Continue\"\n />\n </>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreateOAuthClient.js","names":[],"sources":["../../../src/components/OAuthClientManagement/CreateOAuthClient.tsx"],"sourcesContent":["import {\n useCreateOAuthClient,\n useDeleteOAuthClient,\n useUpdateOAuthClient,\n} from '@/synapse-queries'\nimport { SynapseClientError, useSynapseContext } from '@/utils'\nimport { useDebouncedEffect } from '@/utils/hooks'\nimport DeleteTwoToneIcon from '@mui/icons-material/DeleteTwoTone'\nimport {\n Alert,\n Box,\n Button,\n GridLegacy as Grid,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n Typography,\n} from '@mui/material'\nimport { OAuthClient } from '@sage-bionetworks/synapse-client/generated/models/OAuthClient'\nimport { OIDCSigningAlgorithm } from '@sage-bionetworks/synapse-client/generated/models/OIDCSigningAlgorithm'\nimport { ChangeEvent, useEffect, useMemo, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { WarningDialog } from '../SynapseForm/WarningDialog'\nimport { displayToast } from '../ToastMessage/ToastMessage'\n\nexport const defaultUserInfoSignedResponseAlgorithm = 'JSON'\nexport const warningHeader = 'Are you absolutely sure?'\nexport const warningBody =\n 'Editing this detail will render your client invalid and will require you to resubmit verification. This action cannot be undone.'\nconst INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\nconst GRID_NARROW = 12\nconst GRID_WIDE = 6\nconst GRID_ROW_SPACING = 1\nconst GRID_COL_SPACING = 2\n\nexport type CreateOAuthModalProps = {\n isShowingModal: boolean\n isEdit: boolean\n onClose: () => void\n setIsShowingConfirmModal: (a: boolean) => void\n isShowingConfirmModal: boolean\n client?: OAuthClient\n setIsShowingModal: (a: boolean) => void\n}\n\nexport function CreateOAuthModal({\n isShowingModal = false,\n isEdit,\n onClose,\n client,\n setIsShowingConfirmModal,\n isShowingConfirmModal,\n setIsShowingModal,\n}: CreateOAuthModalProps) {\n const { synapseClient } = useSynapseContext()\n const [clientName, setClientName] = useState('')\n const [redirectUris, setRedirectUris] = useState([{ uri: '' }])\n const [policyUri, setPolicyUri] = useState<string>('')\n const [clientUri, setClientUri] = useState<string>('')\n const [sectorUri, setSectorUri] = useState<string>('')\n const [tosUri, setTosUri] = useState<string>('')\n const [userinfoSignedResponseAlg, setUserinfoSignedResponseAlg] = useState<\n 'JSON' | OIDCSigningAlgorithm\n >(defaultUserInfoSignedResponseAlgorithm)\n const [warnTrigger, setWarnTrigger] = useState(false)\n const [isDelete, setIsDelete] = useState<boolean>(false)\n const [updatedClient, setUpdatedClient] = useState<OAuthClient>()\n const [error, setError] = useState<SynapseClientError>()\n\n // Return the OAuth Client definition based on the current client-side UI state\n const oAuthClient: OAuthClient = useMemo(() => {\n return {\n client_id: client?.client_id,\n client_name: clientName,\n redirect_uris: redirectUris?.map(str => str.uri) ?? [''],\n policy_uri: policyUri,\n client_uri: clientUri,\n sector_identifier_uri: sectorUri,\n userinfo_signed_response_alg:\n userinfoSignedResponseAlg === defaultUserInfoSignedResponseAlgorithm\n ? undefined\n : userinfoSignedResponseAlg,\n tos_uri: tosUri,\n etag: client?.etag,\n }\n }, [\n client?.client_id,\n client?.etag,\n clientName,\n clientUri,\n policyUri,\n redirectUris,\n sectorUri,\n userinfoSignedResponseAlg,\n tosUri,\n ])\n\n useEffect(() => {\n setClientName(client?.client_name ?? '')\n setRedirectUris(\n client?.redirect_uris?.map((str: string) => ({ uri: str })) ?? [\n { uri: '' },\n ],\n )\n setPolicyUri(client?.policy_uri ?? '')\n setClientUri(client?.client_uri ?? '')\n setSectorUri(client?.sector_identifier_uri ?? '')\n setUserinfoSignedResponseAlg(\n client?.userinfo_signed_response_alg ??\n defaultUserInfoSignedResponseAlgorithm,\n )\n setTosUri(client?.tos_uri ?? '')\n }, [isShowingModal, client])\n\n useDebouncedEffect(\n () => {\n if (oAuthClient.client_id) {\n // SWC-6365: use the pre-check service to determine if we need to show a warning on edit\n synapseClient.openIDConnectServicesClient\n .putAuthV1Oauth2ClientIdVerificationPrecheck({\n id: oAuthClient.client_id,\n oAuthClient: oAuthClient,\n })\n .then(precheckResult => {\n setWarnTrigger(precheckResult.reverificationRequired!)\n })\n }\n },\n [oAuthClient, synapseClient.openIDConnectServicesClient],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n const hide = () => {\n setClientName('')\n setRedirectUris([{ uri: '' }])\n setPolicyUri('')\n setClientUri('')\n setSectorUri('')\n setUserinfoSignedResponseAlg(defaultUserInfoSignedResponseAlgorithm)\n setTosUri('')\n onClose()\n }\n\n const hideConfirmModal = () => {\n setIsShowingConfirmModal(false)\n setIsDelete(false)\n }\n\n const { mutate: createClient } = useCreateOAuthClient({\n onSuccess: () => {\n displayToast('Successfully created', 'success')\n setError(undefined)\n hide()\n },\n onError: err => {\n setError(err)\n },\n })\n\n const { mutate: updateClient, isPending: updateIsPending } =\n useUpdateOAuthClient({\n onSuccess: () => {\n displayToast('Successfully saved', 'success')\n setError(undefined)\n hide()\n },\n onError: err => {\n setError(err)\n setIsShowingModal(true)\n },\n })\n\n const { mutate: deleteClient } = useDeleteOAuthClient({\n onSuccess: () => {\n displayToast('Successfully deleted', 'success')\n hide()\n },\n onError: error => {\n displayToast(error.reason, 'danger')\n },\n })\n\n const onCreateClient = () => {\n try {\n setUpdatedClient(oAuthClient)\n if (warnTrigger === true) {\n setIsShowingConfirmModal(true)\n } else {\n if (isEdit) {\n updateClient(oAuthClient)\n } else {\n createClient(oAuthClient)\n }\n }\n } catch (err) {\n displayToast(err.reason as string, 'danger')\n }\n }\n\n const handleRedirectUriAdd = () => {\n if (redirectUris) {\n setRedirectUris([...redirectUris, { uri: '' }])\n }\n }\n\n const handleRedirectUriRemove = (index: number) => {\n if (redirectUris) {\n const list = [...redirectUris]\n list.splice(index, 1)\n setRedirectUris(list)\n }\n }\n\n const handleUriChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,\n index: number,\n ) => {\n if (redirectUris) {\n const { name, value } = e.target\n const list = [...redirectUris]\n list[index][name as 'uri'] = value\n setRedirectUris(list)\n }\n }\n\n const dangerLabelSx = {\n color: isEdit ? 'error.main' : undefined,\n '&.Mui-focused': {\n color: isEdit ? 'error.main' : undefined,\n },\n }\n\n const sectorIdentifierURIInput = (\n <TextField\n onChange={e => setSectorUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={sectorUri}\n id=\"sectorURI\"\n label=\"Sector Identifier URI\"\n margin=\"normal\"\n fullWidth\n slotProps={{\n inputLabel: { sx: dangerLabelSx },\n }}\n />\n )\n\n const redirectURIInputs = (\n <>\n {redirectUris?.map((singleUri, idx) => (\n <div key={idx}>\n <TextField\n required={idx === 0}\n label={idx === 0 && 'Redirect URI(s)'}\n name=\"uri\"\n fullWidth\n id={`redirect-uri-${idx}`}\n onChange={e => handleUriChange(e, idx)}\n value={singleUri.uri}\n placeholder=\"https://\"\n type=\"text\"\n margin={idx === 0 ? 'normal' : 'dense'}\n slotProps={{\n input: {\n endAdornment: redirectUris.length > 1 && (\n <InputAdornment position=\"end\">\n <IconButton onClick={() => handleRedirectUriRemove(idx)}>\n <DeleteTwoToneIcon sx={{ color: 'error.main' }} />\n </IconButton>\n </InputAdornment>\n ),\n },\n\n inputLabel: { sx: dangerLabelSx },\n }}\n />\n {redirectUris.length - 1 === idx && (\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleRedirectUriAdd}\n disabled={singleUri.uri.length === 0}\n sx={{ my: '10px' }}\n >\n Add URI\n </Button>\n )}\n </div>\n ))}\n </>\n )\n\n const content = (\n <>\n {updateIsPending && (\n <div className={'SRC-center-text'}>\n <SynapseSpinner size={40} />\n </div>\n )}\n {!updateIsPending && (\n <>\n <Typography\n variant=\"body1\"\n sx={{\n mb: '10px',\n }}\n >\n To protect you and your users, your consent screen and application\n will need to be verified by Sage Bionetworks. Before your consent\n screen and application are verified by Sage Bionetworks, you can\n still test your application with limitations.\n </Typography>\n\n {isEdit && (\n <Typography sx={{ mt: '16px' }} variant=\"label\">\n Client ID: {client?.client_id}\n </Typography>\n )}\n <Grid\n container\n rowSpacing={GRID_ROW_SPACING}\n columnSpacing={GRID_COL_SPACING}\n >\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Client Name\"\n required\n onChange={e => setClientName(e.target.value)}\n placeholder=\"Client Name\"\n type=\"text\"\n value={clientName}\n id=\"clientName\"\n margin=\"normal\"\n fullWidth\n />\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Client Homepage\"\n onChange={e => setClientUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={clientUri}\n id=\"clientUri\"\n fullWidth\n margin=\"normal\"\n />\n </Grid>\n {!isEdit && (\n <>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {redirectURIInputs}\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {sectorIdentifierURIInput}\n </Grid>\n </>\n )}\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Link to Privacy Policy\"\n onChange={e => setPolicyUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={policyUri}\n fullWidth\n margin=\"normal\"\n />\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"Links to Terms of Service\"\n onChange={e => setTosUri(e.target.value)}\n placeholder=\"https://\"\n type=\"text\"\n value={tosUri}\n fullWidth\n margin=\"normal\"\n />\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n <TextField\n label=\"User Info Signed Response Algorithm\"\n value={userinfoSignedResponseAlg}\n onChange={e =>\n setUserinfoSignedResponseAlg(\n e.target.value as OIDCSigningAlgorithm,\n )\n }\n select\n fullWidth\n margin=\"normal\"\n >\n <MenuItem value={defaultUserInfoSignedResponseAlgorithm}>\n JSON\n </MenuItem>\n <MenuItem value={OIDCSigningAlgorithm.RS256}>JWT</MenuItem>\n </TextField>\n </Grid>\n </Grid>\n {isEdit && (\n <Box\n sx={{\n mt: '10px',\n padding: 1,\n backgroundColor: 'rgb(178, 36, 42, 0.03)',\n }}\n >\n <Typography sx={{ my: 1 }} color=\"error\" variant=\"headline3\">\n DANGER ZONE\n </Typography>\n <Typography variant=\"smallText1\">\n Editing the following information will render your client\n invalid and will require you to create it again and resubmit\n verification if needed.\n </Typography>\n <Grid\n container\n rowSpacing={GRID_ROW_SPACING}\n columnSpacing={GRID_COL_SPACING}\n >\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {redirectURIInputs}\n </Grid>\n <Grid item md={GRID_WIDE} xs={GRID_NARROW}>\n {sectorIdentifierURIInput}\n </Grid>\n </Grid>\n\n <Button\n onClick={() => {\n setIsDelete(true)\n setIsShowingConfirmModal(true)\n }}\n color=\"error\"\n variant=\"text\"\n startIcon={<DeleteTwoToneIcon />}\n sx={{ padding: 0, mb: 1 }}\n >\n DELETE CLIENT\n </Button>\n </Box>\n )}\n </>\n )}\n {error && <Alert severity=\"error\">{error?.reason}</Alert>}\n </>\n )\n\n return (\n <>\n <ConfirmationDialog\n open={isShowingModal && !isShowingConfirmModal}\n onCancel={() => {\n hide()\n setError(undefined)\n }}\n maxWidth=\"md\"\n title={isEdit ? 'Client Details' : 'Create New OAuth Client'}\n content={content}\n onConfirm={onCreateClient}\n confirmButtonProps={{ children: 'Save' }}\n />\n <WarningDialog\n open={isShowingConfirmModal}\n title={warningHeader}\n content={warningBody}\n onCancel={hideConfirmModal}\n onConfirm={() => {\n if (isDelete) {\n deleteClient(client?.client_id!)\n } else {\n updateClient(updatedClient!)\n }\n hideConfirmModal()\n }}\n confirmButtonColor=\"error\"\n confirmButtonText=\"Yes, Continue\"\n />\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA2BA,IAAa,IAAyC,QACzC,IAAgB,4BAChB,IACX,oIACI,KAAiC,KACjC,IAAc,IACd,IAAY,GACZ,IAAmB,GACnB,IAAmB;AAYzB,SAAgB,EAAiB,EAC/B,oBAAiB,IACjB,WACA,aACA,WACA,6BACA,0BACA,yBACwB;CACxB,IAAM,EAAE,qBAAkB,EAAkB,GACtC,CAAC,GAAY,KAAiB,EAAS,EAAE,GACzC,CAAC,GAAc,KAAmB,EAAS,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GACxD,CAAC,GAAW,KAAgB,EAAiB,EAAE,GAC/C,CAAC,GAAW,KAAgB,EAAiB,EAAE,GAC/C,CAAC,GAAW,KAAgB,EAAiB,EAAE,GAC/C,CAAC,GAAQ,KAAa,EAAiB,EAAE,GACzC,CAAC,GAA2B,KAAgC,EAEhE,CAAsC,GAClC,CAAC,IAAa,MAAkB,EAAS,EAAK,GAC9C,CAAC,IAAU,KAAe,EAAkB,EAAK,GACjD,CAAC,IAAe,MAAoB,EAAsB,GAC1D,CAAC,GAAO,KAAY,EAA6B,GAGjD,IAA2B,UACxB;EACL,WAAW,GAAQ;EACnB,aAAa;EACb,eAAe,GAAc,KAAI,MAAO,EAAI,GAAG,KAAK,CAAC,EAAE;EACvD,YAAY;EACZ,YAAY;EACZ,uBAAuB;EACvB,8BACE,MAAA,SACI,KAAA,IACA;EACN,SAAS;EACT,MAAM,GAAQ;CAChB,IACC;EACD,GAAQ;EACR,GAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAmBD,AAjBA,SAAgB;EAcd,AAbA,EAAc,GAAQ,eAAe,EAAE,GACvC,EACE,GAAQ,eAAe,KAAK,OAAiB,EAAE,KAAK,EAAI,EAAE,KAAK,CAC7D,EAAE,KAAK,GAAG,CACZ,CACF,GACA,EAAa,GAAQ,cAAc,EAAE,GACrC,EAAa,GAAQ,cAAc,EAAE,GACrC,EAAa,GAAQ,yBAAyB,EAAE,GAChD,EACE,GAAQ,gCAAA,MAEV,GACA,EAAU,GAAQ,WAAW,EAAE;CACjC,GAAG,CAAC,GAAgB,CAAM,CAAC,GAE3B,QACQ;EACJ,AAAI,EAAY,aAEd,EAAc,4BACX,4CAA4C;GAC3C,IAAI,EAAY;GACH;EACf,CAAC,EACA,MAAK,MAAkB;GACtB,GAAe,EAAe,sBAAuB;EACvD,CAAC;CAEP,GACA,CAAC,GAAa,EAAc,2BAA2B,GACvD,EACF;CAEA,IAAM,UAAa;EAQjB,AAPA,EAAc,EAAE,GAChB,EAAgB,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAC7B,EAAa,EAAE,GACf,EAAa,EAAE,GACf,EAAa,EAAE,GACf,EAA6B,CAAsC,GACnE,EAAU,EAAE,GACZ,GAAQ;CACV,GAEM,UAAyB;EAE7B,AADA,EAAyB,EAAK,GAC9B,EAAY,EAAK;CACnB,GAEM,EAAE,QAAQ,OAAiB,EAAqB;EACpD,iBAAiB;GAGf,AAFA,EAAa,wBAAwB,SAAS,GAC9C,EAAS,KAAA,CAAS,GAClB,EAAK;EACP;EACA,UAAS,MAAO;GACd,EAAS,CAAG;EACd;CACF,CAAC,GAEK,EAAE,QAAQ,GAAc,WAAW,MACvC,GAAqB;EACnB,iBAAiB;GAGf,AAFA,EAAa,sBAAsB,SAAS,GAC5C,EAAS,KAAA,CAAS,GAClB,EAAK;EACP;EACA,UAAS,MAAO;GAEd,AADA,EAAS,CAAG,GACZ,GAAkB,EAAI;EACxB;CACF,CAAC,GAEG,EAAE,QAAQ,MAAiB,GAAqB;EACpD,iBAAiB;GAEf,AADA,EAAa,wBAAwB,SAAS,GAC9C,EAAK;EACP;EACA,UAAS,MAAS;GAChB,EAAa,EAAM,QAAQ,QAAQ;EACrC;CACF,CAAC,GAEK,WAAuB;EAC3B,IAAI;GAEF,AADA,GAAiB,CAAW,GACxB,OAAgB,KAClB,EAAyB,EAAI,IAEzB,IACF,EAAa,CAAW,IAExB,GAAa,CAAW;EAG9B,SAAS,GAAK;GACZ,EAAa,EAAI,QAAkB,QAAQ;EAC7C;CACF,GAEM,WAA6B;EACjC,AAAI,KACF,EAAgB,CAAC,GAAG,GAAc,EAAE,KAAK,GAAG,CAAC,CAAC;CAElD,GAEM,MAA2B,MAAkB;EACjD,IAAI,GAAc;GAChB,IAAM,IAAO,CAAC,GAAG,CAAY;GAE7B,AADA,EAAK,OAAO,GAAO,CAAC,GACpB,EAAgB,CAAI;EACtB;CACF,GAEM,MACJ,GACA,MACG;EACH,IAAI,GAAc;GAChB,IAAM,EAAE,SAAM,aAAU,EAAE,QACpB,IAAO,CAAC,GAAG,CAAY;GAE7B,AADA,EAAK,GAAO,KAAiB,GAC7B,EAAgB,CAAI;EACtB;CACF,GAEM,IAAgB;EACpB,OAAO,IAAS,eAAe,KAAA;EAC/B,iBAAiB,EACf,OAAO,IAAS,eAAe,KAAA,EACjC;CACF,GAEM,IACJ,kBAAC,GAAD;EACE,WAAU,MAAK,EAAa,EAAE,OAAO,KAAK;EAC1C,aAAY;EACZ,MAAK;EACL,OAAO;EACP,IAAG;EACH,OAAM;EACN,QAAO;EACP,WAAA;EACA,WAAW,EACT,YAAY,EAAE,IAAI,EAAc,EAClC;CACD,CAAA,GAGG,IACJ,kBAAA,GAAA,EAAA,UACG,GAAc,KAAK,GAAW,MAC7B,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,UAAU,MAAQ;EAClB,OAAO,MAAQ,KAAK;EACpB,MAAK;EACL,WAAA;EACA,IAAI,gBAAgB;EACpB,WAAU,MAAK,GAAgB,GAAG,CAAG;EACrC,OAAO,EAAU;EACjB,aAAY;EACZ,MAAK;EACL,QAAQ,MAAQ,IAAI,WAAW;EAC/B,WAAW;GACT,OAAO,EACL,cAAc,EAAa,SAAS,KAClC,kBAAC,IAAD;IAAgB,UAAS;cACvB,kBAAC,IAAD;KAAY,eAAe,GAAwB,CAAG;eACpD,kBAAC,GAAD,EAAmB,IAAI,EAAE,OAAO,aAAa,EAAI,CAAA;IACvC,CAAA;GACE,CAAA,EAEpB;GAEA,YAAY,EAAE,IAAI,EAAc;EAClC;CACD,CAAA,GACA,EAAa,SAAS,MAAM,KAC3B,kBAAC,GAAD;EACE,SAAQ;EACR,OAAM;EACN,SAAS;EACT,UAAU,EAAU,IAAI,WAAW;EACnC,IAAI,EAAE,IAAI,OAAO;YAClB;CAEO,CAAA,CAEP,EAAA,GArCK,CAqCL,CACN,EACD,CAAA,GAGE,KACJ,kBAAA,GAAA,EAAA,UAAA;EACG,KACC,kBAAC,OAAD;GAAK,WAAW;aACd,kBAAC,GAAD,EAAgB,MAAM,GAAK,CAAA;EACxB,CAAA;EAEN,CAAC,KACA,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI,EACF,IAAI,OACN;cACD;GAKW,CAAA;GAEX,KACC,kBAAC,GAAD;IAAY,IAAI,EAAE,IAAI,OAAO;IAAG,SAAQ;cAAxC,CAAgD,eAClC,GAAQ,SACV;;GAEd,kBAAC,GAAD;IACE,WAAA;IACA,YAAY;IACZ,eAAe;cAHjB;KAKE,kBAAC,GAAD;MAAM,MAAA;MAAK,IAAI;MAAW,IAAI;gBAC5B,kBAAC,GAAD;OACE,OAAM;OACN,UAAA;OACA,WAAU,MAAK,EAAc,EAAE,OAAO,KAAK;OAC3C,aAAY;OACZ,MAAK;OACL,OAAO;OACP,IAAG;OACH,QAAO;OACP,WAAA;MACD,CAAA;KACG,CAAA;KACN,kBAAC,GAAD;MAAM,MAAA;MAAK,IAAI;MAAW,IAAI;gBAC5B,kBAAC,GAAD;OACE,OAAM;OACN,WAAU,MAAK,EAAa,EAAE,OAAO,KAAK;OAC1C,aAAY;OACZ,MAAK;OACL,OAAO;OACP,IAAG;OACH,WAAA;OACA,QAAO;MACR,CAAA;KACG,CAAA;KACL,CAAC,KACA,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;MAAM,MAAA;MAAK,IAAI;MAAW,IAAI;gBAC3B;KACG,CAAA,GACN,kBAAC,GAAD;MAAM,MAAA;MAAK,IAAI;MAAW,IAAI;gBAC3B;KACG,CAAA,CACN,EAAA,CAAA;KAEJ,kBAAC,GAAD;MAAM,MAAA;MAAK,IAAI;MAAW,IAAI;gBAC5B,kBAAC,GAAD;OACE,OAAM;OACN,WAAU,MAAK,EAAa,EAAE,OAAO,KAAK;OAC1C,aAAY;OACZ,MAAK;OACL,OAAO;OACP,WAAA;OACA,QAAO;MACR,CAAA;KACG,CAAA;KACN,kBAAC,GAAD;MAAM,MAAA;MAAK,IAAI;MAAW,IAAI;gBAC5B,kBAAC,GAAD;OACE,OAAM;OACN,WAAU,MAAK,EAAU,EAAE,OAAO,KAAK;OACvC,aAAY;OACZ,MAAK;OACL,OAAO;OACP,WAAA;OACA,QAAO;MACR,CAAA;KACG,CAAA;KACN,kBAAC,GAAD;MAAM,MAAA;MAAK,IAAI;MAAW,IAAI;gBAC5B,kBAAC,GAAD;OACE,OAAM;OACN,OAAO;OACP,WAAU,MACR,EACE,EAAE,OAAO,KACX;OAEF,QAAA;OACA,WAAA;OACA,QAAO;iBAVT,CAYE,kBAAC,GAAD;QAAU,OAAA;kBAA+C;OAE/C,CAAA,GACV,kBAAC,GAAD;QAAU,OAAO,GAAqB;kBAAO;OAAa,CAAA,CACjD;;KACP,CAAA;IACF;;GACL,KACC,kBAAC,IAAD;IACE,IAAI;KACF,IAAI;KACJ,SAAS;KACT,iBAAiB;IACnB;cALF;KAOE,kBAAC,GAAD;MAAY,IAAI,EAAE,IAAI,EAAE;MAAG,OAAM;MAAQ,SAAQ;gBAAY;KAEjD,CAAA;KACZ,kBAAC,GAAD;MAAY,SAAQ;gBAAa;KAIrB,CAAA;KACZ,kBAAC,GAAD;MACE,WAAA;MACA,YAAY;MACZ,eAAe;gBAHjB,CAKE,kBAAC,GAAD;OAAM,MAAA;OAAK,IAAI;OAAW,IAAI;iBAC3B;MACG,CAAA,GACN,kBAAC,GAAD;OAAM,MAAA;OAAK,IAAI;OAAW,IAAI;iBAC3B;MACG,CAAA,CACF;;KAEN,kBAAC,GAAD;MACE,eAAe;OAEb,AADA,EAAY,EAAI,GAChB,EAAyB,EAAI;MAC/B;MACA,OAAM;MACN,SAAQ;MACR,WAAW,kBAAC,GAAD,CAAoB,CAAA;MAC/B,IAAI;OAAE,SAAS;OAAG,IAAI;MAAE;gBACzB;KAEO,CAAA;IACL;;EAEP,EAAA,CAAA;EAEH,KAAS,kBAAC,IAAD;GAAO,UAAS;aAAS,GAAO;EAAc,CAAA;CACxD,EAAA,CAAA;CAGJ,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,IAAD;EACE,MAAM,KAAkB,CAAC;EACzB,gBAAgB;GAEd,AADA,EAAK,GACL,EAAS,KAAA,CAAS;EACpB;EACA,UAAS;EACT,OAAO,IAAS,mBAAmB;EAC1B;EACT,WAAW;EACX,oBAAoB,EAAE,UAAU,OAAO;CACxC,CAAA,GACD,kBAAC,IAAD;EACE,MAAM;EACN,OAAO;EACP,SAAS;EACT,UAAU;EACV,iBAAiB;GAMf,AALI,KACF,EAAa,GAAQ,SAAU,IAE/B,EAAa,EAAc,GAE7B,EAAiB;EACnB;EACA,oBAAmB;EACnB,mBAAkB;CACnB,CAAA,CACD,EAAA,CAAA;AAEN"}