synapse-react-client 4.0.18 → 4.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1609) hide show
  1. package/dist/SWC.index.d.ts +3 -1
  2. package/dist/SWC.index.d.ts.map +1 -1
  3. package/dist/SWC.index.js +3 -1
  4. package/dist/SWC.index.js.map +1 -1
  5. package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
  6. package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
  7. package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
  8. package/dist/assets/GoogleIcon.js.map +1 -1
  9. package/dist/assets/GoogleIcon24.js.map +1 -1
  10. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  11. package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
  12. package/dist/assets/homepage/aacr.js.map +1 -1
  13. package/dist/assets/homepage/cri.js.map +1 -1
  14. package/dist/assets/homepage/ctf.js.map +1 -1
  15. package/dist/assets/homepage/egress.js.map +1 -1
  16. package/dist/assets/homepage/facebook.js.map +1 -1
  17. package/dist/assets/homepage/fisma.js.map +1 -1
  18. package/dist/assets/homepage/gff.js.map +1 -1
  19. package/dist/assets/homepage/github.js.map +1 -1
  20. package/dist/assets/homepage/gray.js.map +1 -1
  21. package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
  22. package/dist/assets/homepage/instagram.js.map +1 -1
  23. package/dist/assets/homepage/linkedin.js.map +1 -1
  24. package/dist/assets/homepage/ml-commons.js.map +1 -1
  25. package/dist/assets/homepage/nih-aging.js.map +1 -1
  26. package/dist/assets/homepage/nih-heart.js.map +1 -1
  27. package/dist/assets/homepage/nih-nci.js.map +1 -1
  28. package/dist/assets/homepage/nih-nimh.js.map +1 -1
  29. package/dist/assets/homepage/ntap.js.map +1 -1
  30. package/dist/assets/homepage/plan-item.js.map +1 -1
  31. package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
  32. package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
  33. package/dist/assets/homepage/python.js.map +1 -1
  34. package/dist/assets/homepage/r.js.map +1 -1
  35. package/dist/assets/homepage/research-credit-feature.js.map +1 -1
  36. package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
  37. package/dist/assets/homepage/sloan.js.map +1 -1
  38. package/dist/assets/homepage/twitter.js.map +1 -1
  39. package/dist/assets/homepage/users.js.map +1 -1
  40. package/dist/assets/homepage/youtube.js.map +1 -1
  41. package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
  42. package/dist/assets/icons/AccessPending.js.map +1 -1
  43. package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
  44. package/dist/assets/icons/AddAd.js.map +1 -1
  45. package/dist/assets/icons/AddToList.js.map +1 -1
  46. package/dist/assets/icons/Alert.js.map +1 -1
  47. package/dist/assets/icons/Arrow.js.map +1 -1
  48. package/dist/assets/icons/AwardScroll.js.map +1 -1
  49. package/dist/assets/icons/Baseline.js.map +1 -1
  50. package/dist/assets/icons/Cavatica.js.map +1 -1
  51. package/dist/assets/icons/CertifiedUser.js.map +1 -1
  52. package/dist/assets/icons/Challenge.js.map +1 -1
  53. package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
  54. package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
  55. package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
  56. package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
  57. package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
  58. package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
  59. package/dist/assets/icons/ClappingHands.js.map +1 -1
  60. package/dist/assets/icons/CloudWarning.js.map +1 -1
  61. package/dist/assets/icons/CommunicateFindings.js.map +1 -1
  62. package/dist/assets/icons/CreateVersion.js.map +1 -1
  63. package/dist/assets/icons/DNA_Two.js.map +1 -1
  64. package/dist/assets/icons/Data2.js.map +1 -1
  65. package/dist/assets/icons/DoubleQuotes.js.map +1 -1
  66. package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
  67. package/dist/assets/icons/FileWithShield.js.map +1 -1
  68. package/dist/assets/icons/FileWithShield2.js.map +1 -1
  69. package/dist/assets/icons/FrontHand.js.map +1 -1
  70. package/dist/assets/icons/HandWithMoney.js.map +1 -1
  71. package/dist/assets/icons/IconCopy.js.map +1 -1
  72. package/dist/assets/icons/IconMinus.js.map +1 -1
  73. package/dist/assets/icons/IconPlus.js.map +1 -1
  74. package/dist/assets/icons/Java.js.map +1 -1
  75. package/dist/assets/icons/MintDoi.js.map +1 -1
  76. package/dist/assets/icons/MultiFile.js.map +1 -1
  77. package/dist/assets/icons/MultiFile2.js.map +1 -1
  78. package/dist/assets/icons/NoData.js.map +1 -1
  79. package/dist/assets/icons/NoSearchResults.js.map +1 -1
  80. package/dist/assets/icons/ORCIDIcon.js.map +1 -1
  81. package/dist/assets/icons/OpenBook.js.map +1 -1
  82. package/dist/assets/icons/Podium.js.map +1 -1
  83. package/dist/assets/icons/Python.js.map +1 -1
  84. package/dist/assets/icons/QueryStructuredData.js.map +1 -1
  85. package/dist/assets/icons/RLogo.js.map +1 -1
  86. package/dist/assets/icons/RecordProvenance.js.map +1 -1
  87. package/dist/assets/icons/RosetteRibbon.js.map +1 -1
  88. package/dist/assets/icons/SageFullLogo.js.map +1 -1
  89. package/dist/assets/icons/SearchImage.js.map +1 -1
  90. package/dist/assets/icons/ShareYourResearch.js.map +1 -1
  91. package/dist/assets/icons/Sort.js.map +1 -1
  92. package/dist/assets/icons/StarTrophy.js.map +1 -1
  93. package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
  94. package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
  95. package/dist/assets/icons/SynapseLogoName.js.map +1 -1
  96. package/dist/assets/icons/TasksIcon.js.map +1 -1
  97. package/dist/assets/icons/Terminal.js.map +1 -1
  98. package/dist/assets/icons/ThreeStars.js.map +1 -1
  99. package/dist/assets/icons/UnpackagableFile.js.map +1 -1
  100. package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
  101. package/dist/assets/icons/ValidatedProfile.js.map +1 -1
  102. package/dist/assets/icons/account-certified.js.map +1 -1
  103. package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
  104. package/dist/assets/icons/account-validated.js.map +1 -1
  105. package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
  106. package/dist/assets/icons/chart2.js.map +1 -1
  107. package/dist/assets/icons/columns.js.map +1 -1
  108. package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
  109. package/dist/assets/icons/computationalTool.js.map +1 -1
  110. package/dist/assets/icons/dataReuse.js.map +1 -1
  111. package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
  112. package/dist/assets/icons/emailWithNotification.js.map +1 -1
  113. package/dist/assets/icons/error_page/maintenance.js.map +1 -1
  114. package/dist/assets/icons/error_page/no-access.js.map +1 -1
  115. package/dist/assets/icons/error_page/unavailable.js.map +1 -1
  116. package/dist/assets/icons/file.js.map +1 -1
  117. package/dist/assets/icons/inSilicoModel.js.map +1 -1
  118. package/dist/assets/icons/institution.js.map +1 -1
  119. package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
  120. package/dist/assets/icons/modelSystem.js.map +1 -1
  121. package/dist/assets/icons/mouse.js.map +1 -1
  122. package/dist/assets/icons/organizations.js.map +1 -1
  123. package/dist/assets/icons/person.js.map +1 -1
  124. package/dist/assets/icons/spatialProfiling.js.map +1 -1
  125. package/dist/assets/icons/standardDataModel.js.map +1 -1
  126. package/dist/assets/icons/study-active.js.map +1 -1
  127. package/dist/assets/icons/study-complete.js.map +1 -1
  128. package/dist/assets/icons/subscribe_plus.js.map +1 -1
  129. package/dist/assets/icons/synapse-logo.js.map +1 -1
  130. package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
  131. package/dist/assets/icons/translational.js.map +1 -1
  132. package/dist/assets/icons/tree_horizontal.js.map +1 -1
  133. package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
  134. package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
  135. package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
  136. package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
  137. package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
  138. package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
  139. package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
  140. package/dist/assets/illustrations/docker_illustration.js.map +1 -1
  141. package/dist/assets/illustrations/donation_illustration.js.map +1 -1
  142. package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
  143. package/dist/assets/illustrations/files_illustration.js.map +1 -1
  144. package/dist/assets/illustrations/following_illustration.js.map +1 -1
  145. package/dist/assets/illustrations/index.js.map +1 -1
  146. package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
  147. package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
  148. package/dist/assets/illustrations/projects_illustration.js.map +1 -1
  149. package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
  150. package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
  151. package/dist/assets/illustrations/tables_illustration.js.map +1 -1
  152. package/dist/assets/illustrations/teams_illustration.js.map +1 -1
  153. package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
  154. package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
  155. package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
  156. package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
  157. package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
  158. package/dist/assets/logos/other/pluto-logo.js.map +1 -1
  159. package/dist/assets/logos/other/terra-logo.js.map +1 -1
  160. package/dist/assets/mui_components/AccessManagement.js.map +1 -1
  161. package/dist/assets/mui_components/AccountCertified.js.map +1 -1
  162. package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
  163. package/dist/assets/mui_components/AccountValidated.js.map +1 -1
  164. package/dist/assets/mui_components/ActionKey.js.map +1 -1
  165. package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
  166. package/dist/assets/mui_components/Chromatin.js.map +1 -1
  167. package/dist/assets/mui_components/Clinical.js.map +1 -1
  168. package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
  169. package/dist/assets/mui_components/Data.js.map +1 -1
  170. package/dist/assets/mui_components/DataLocked.js.map +1 -1
  171. package/dist/assets/mui_components/DataReuse.js.map +1 -1
  172. package/dist/assets/mui_components/Dataset.js.map +1 -1
  173. package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
  174. package/dist/assets/mui_components/Docker.js.map +1 -1
  175. package/dist/assets/mui_components/GeneExpression.js.map +1 -1
  176. package/dist/assets/mui_components/GeneVariants.js.map +1 -1
  177. package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
  178. package/dist/assets/mui_components/Imaging.js.map +1 -1
  179. package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
  180. package/dist/assets/mui_components/Kinomics.js.map +1 -1
  181. package/dist/assets/mui_components/LineGraph.js.map +1 -1
  182. package/dist/assets/mui_components/ModelSystem.js.map +1 -1
  183. package/dist/assets/mui_components/Other.js.map +1 -1
  184. package/dist/assets/mui_components/PackagableFile.js.map +1 -1
  185. package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
  186. package/dist/assets/mui_components/Proteomics.js.map +1 -1
  187. package/dist/assets/mui_components/Rat.js.map +1 -1
  188. package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
  189. package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
  190. package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
  191. package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
  192. package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
  193. package/dist/assets/sustainability/dialPosition1.js.map +1 -1
  194. package/dist/assets/sustainability/dialPosition2.js.map +1 -1
  195. package/dist/assets/sustainability/dialPosition3.js.map +1 -1
  196. package/dist/assets/sustainability/dialPosition4.js.map +1 -1
  197. package/dist/assets/themed_icons/Active.js.map +1 -1
  198. package/dist/assets/themed_icons/Chart.js.map +1 -1
  199. package/dist/assets/themed_icons/Close.js.map +1 -1
  200. package/dist/assets/themed_icons/Collapse.js.map +1 -1
  201. package/dist/assets/themed_icons/Columns.js.map +1 -1
  202. package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
  203. package/dist/assets/themed_icons/Database.js.map +1 -1
  204. package/dist/assets/themed_icons/Download.js.map +1 -1
  205. package/dist/assets/themed_icons/Expand.js.map +1 -1
  206. package/dist/assets/themed_icons/Explore.js.map +1 -1
  207. package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
  208. package/dist/assets/themed_icons/Filter.js.map +1 -1
  209. package/dist/assets/themed_icons/Program.js.map +1 -1
  210. package/dist/assets/themed_icons/Project.js.map +1 -1
  211. package/dist/assets/themed_icons/Publication.js.map +1 -1
  212. package/dist/assets/themed_icons/Search.js.map +1 -1
  213. package/dist/assets/themed_icons/Settings.js.map +1 -1
  214. package/dist/assets/themed_icons/SortDown.js.map +1 -1
  215. package/dist/assets/themed_icons/SortUp.js.map +1 -1
  216. package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
  217. package/dist/assets/themed_icons/Study.js.map +1 -1
  218. package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
  219. package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
  220. package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
  221. package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
  222. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
  223. package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
  224. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  225. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  226. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
  227. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  228. package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
  229. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  230. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  231. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  232. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  233. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  234. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  235. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
  236. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  237. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
  238. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
  239. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  240. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  241. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
  242. package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
  243. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  244. package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
  245. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
  246. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  247. package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
  248. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  249. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  250. package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
  251. package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
  252. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  253. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  254. package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
  255. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  256. package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
  257. package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
  258. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  259. package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
  260. package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
  261. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  262. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  263. package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
  264. package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
  265. package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
  266. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
  267. package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
  268. package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
  269. package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
  270. package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
  271. package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
  272. package/dist/components/AddToDownloadListV2.js.map +1 -1
  273. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  274. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  275. package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
  276. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  277. package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
  278. package/dist/components/Authentication/LoginForm.js.map +1 -1
  279. package/dist/components/Authentication/LoginMethod.js.map +1 -1
  280. package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
  281. package/dist/components/Authentication/Logout.js.map +1 -1
  282. package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
  283. package/dist/components/Authentication/PasswordField.js.map +1 -1
  284. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  285. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  286. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  287. package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
  288. package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
  289. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  290. package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
  291. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  292. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  293. package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
  294. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  295. package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
  296. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
  297. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  298. package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
  299. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  300. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  301. package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
  302. package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
  303. package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
  304. package/dist/components/CardDeck/CardDeck.js.map +1 -1
  305. package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
  306. package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
  307. package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
  308. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  309. package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
  310. package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
  311. package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
  312. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  313. package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
  314. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  315. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  316. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
  317. package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
  318. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  319. package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
  320. package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
  321. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  322. package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
  323. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  324. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
  325. package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
  326. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  327. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  328. package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
  329. package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
  330. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  331. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  332. package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
  333. package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
  334. package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
  335. package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
  336. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  337. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  338. package/dist/components/CitationPopover/useCitation.js.map +1 -1
  339. package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
  340. package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
  341. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  342. package/dist/components/ComponentCollapse.js.map +1 -1
  343. package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  344. package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
  345. package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
  346. package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
  347. package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
  348. package/dist/components/CopyToClipboardIcon.js.map +1 -1
  349. package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
  350. package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
  351. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  352. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
  353. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  354. package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
  355. package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
  356. package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
  357. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  358. package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
  359. package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
  360. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  361. package/dist/components/DataExplorer/DataExplorer.css +1 -0
  362. package/dist/components/DataExplorer/DataExplorer.d.ts +13 -0
  363. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -0
  364. package/dist/components/DataExplorer/DataExplorer.js +116 -0
  365. package/dist/components/DataExplorer/DataExplorer.js.map +1 -0
  366. package/dist/components/DataExplorer/DataExplorer.module.js +22 -0
  367. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -0
  368. package/dist/components/DataExplorer/DataExplorer.module.scss +156 -0
  369. package/dist/components/DataGrid/DataGrid.js +72 -72
  370. package/dist/components/DataGrid/DataGrid.js.map +1 -1
  371. package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
  372. package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
  373. package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
  374. package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
  375. package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
  376. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
  377. package/dist/components/DataGrid/StartGridSession.js.map +1 -1
  378. package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
  379. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  380. package/dist/components/DataGrid/SynapseGrid.js +219 -211
  381. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  382. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  383. package/dist/components/DataGrid/columns/AutocompleteColumn.js +106 -102
  384. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  385. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
  386. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +97 -89
  387. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  388. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  389. package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
  390. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +19 -8
  391. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -1
  392. package/dist/components/DataGrid/columns/useGridAutocompleteState.js +64 -43
  393. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  394. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  395. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  396. package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
  397. package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
  398. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  399. package/dist/components/DataGrid/components/UploadCsvToGridDialog.d.ts.map +1 -1
  400. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +9 -9
  401. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  402. package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
  403. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  404. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
  405. package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
  406. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  407. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.d.ts.map +1 -1
  408. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +8 -1
  409. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  410. package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
  411. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  412. package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
  413. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  414. package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
  415. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
  416. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  417. package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
  418. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  419. package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
  420. package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
  421. package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
  422. package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
  423. package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
  424. package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
  425. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  426. package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
  427. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  428. package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
  429. package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
  430. package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
  431. package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
  432. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  433. package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
  434. package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
  435. package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
  436. package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
  437. package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
  438. package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
  439. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  440. package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
  441. package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
  442. package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
  443. package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
  444. package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
  445. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  446. package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
  447. package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
  448. package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
  449. package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
  450. package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
  451. package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
  452. package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
  453. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  454. package/dist/components/DatasetJsonLdScript.js.map +1 -1
  455. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  456. package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
  457. package/dist/components/DialogBase.js.map +1 -1
  458. package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
  459. package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
  460. package/dist/components/DirectDownloadButton.js.map +1 -1
  461. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
  462. package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
  463. package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
  464. package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
  465. package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
  466. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  467. package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
  468. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  469. package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
  470. package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
  471. package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
  472. package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
  473. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  474. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  475. package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
  476. package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
  477. package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
  478. package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
  479. package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
  480. package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
  481. package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
  482. package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
  483. package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
  484. package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
  485. package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
  486. package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
  487. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  488. package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
  489. package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
  490. package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
  491. package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
  492. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
  493. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  494. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  495. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  496. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
  497. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  498. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  499. package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
  500. package/dist/components/EntityFinder/EntityFinder.js +134 -136
  501. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  502. package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
  503. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  504. package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
  505. package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
  506. package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
  507. package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
  508. package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
  509. package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
  510. package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
  511. package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
  512. package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
  513. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  514. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
  515. package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
  516. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
  517. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
  518. package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
  519. package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
  520. package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
  521. package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
  522. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
  523. package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
  524. package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
  525. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
  526. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
  527. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
  528. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
  529. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
  530. package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
  531. package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
  532. package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
  533. package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
  534. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  535. package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
  536. package/dist/components/EntityForm/EntityForm.js.map +1 -1
  537. package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
  538. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  539. package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
  540. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  541. package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
  542. package/dist/components/EntityIcon.js.map +1 -1
  543. package/dist/components/EntityLink.js.map +1 -1
  544. package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
  545. package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
  546. package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
  547. package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
  548. package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
  549. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  550. package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
  551. package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
  552. package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
  553. package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
  554. package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
  555. package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
  556. package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
  557. package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
  558. package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
  559. package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
  560. package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
  561. package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
  562. package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
  563. package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
  564. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  565. package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
  566. package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
  567. package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
  568. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
  569. package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
  570. package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
  571. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
  572. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  573. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  574. package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
  575. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  576. package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
  577. package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
  578. package/dist/components/Evaluation/input_models/models.js.map +1 -1
  579. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  580. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  581. package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
  582. package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
  583. package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
  584. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  585. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  586. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  587. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  588. package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
  589. package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
  590. package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
  591. package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
  592. package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
  593. package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
  594. package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
  595. package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
  596. package/dist/components/FilePreview/EntityPreview.js.map +1 -1
  597. package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
  598. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  599. package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
  600. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  601. package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
  602. package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
  603. package/dist/components/FileUpload/FileUpload.js.map +1 -1
  604. package/dist/components/Forum/DiscussionReply.js.map +1 -1
  605. package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
  606. package/dist/components/Forum/DiscussionThread.js.map +1 -1
  607. package/dist/components/Forum/ForumPage.js.map +1 -1
  608. package/dist/components/Forum/ForumTable.js.map +1 -1
  609. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  610. package/dist/components/Forum/SubscribersModal.js.map +1 -1
  611. package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
  612. package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
  613. package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
  614. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  615. package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
  616. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  617. package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
  618. package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
  619. package/dist/components/GenericCard/GenericCard.js.map +1 -1
  620. package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
  621. package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
  622. package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
  623. package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
  624. package/dist/components/GenericCard/Linkify.js.map +1 -1
  625. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  626. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  627. package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
  628. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  629. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  630. package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
  631. package/dist/components/Goals/Goals.Desktop.js.map +1 -1
  632. package/dist/components/Goals/Goals.Mobile.js.map +1 -1
  633. package/dist/components/Goals/Goals.js +25 -27
  634. package/dist/components/Goals/Goals.js.map +1 -1
  635. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  636. package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
  637. package/dist/components/GoalsV2/GoalsV2.js +14 -16
  638. package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
  639. package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
  640. package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
  641. package/dist/components/GoalsV3/GoalsV3.js +14 -16
  642. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  643. package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
  644. package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
  645. package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
  646. package/dist/components/HasAccess/AccessIcon.js +10 -10
  647. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  648. package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
  649. package/dist/components/HasAccess/useHasAccess.js.map +1 -1
  650. package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
  651. package/dist/components/HeaderCard.js.map +1 -1
  652. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  653. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  654. package/dist/components/IDUReport/IDUReport.js.map +1 -1
  655. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  656. package/dist/components/Icon/Icon.js.map +1 -1
  657. package/dist/components/IconList.js.map +1 -1
  658. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  659. package/dist/components/IconSvgButton.js.map +1 -1
  660. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
  661. package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
  662. package/dist/components/ImageFromSynapseTable.js.map +1 -1
  663. package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
  664. package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
  665. package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
  666. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  667. package/dist/components/JsonLdScript.js.map +1 -1
  668. package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
  669. package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
  670. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
  671. package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
  672. package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
  673. package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
  674. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  675. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  676. package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
  677. package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
  678. package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
  679. package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
  680. package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
  681. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  682. package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
  683. package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
  684. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  685. package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
  686. package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
  687. package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
  688. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  689. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  690. package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
  691. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  692. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  693. package/dist/components/Markdown/MarkdownSynapse.js +75 -106
  694. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  695. package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
  696. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  697. package/dist/components/Markdown/MarkdownUtils.js +38 -37
  698. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  699. package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
  700. package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
  701. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  702. package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
  703. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  704. package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
  705. package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
  706. package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
  707. package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
  708. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  709. package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
  710. package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
  711. package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
  712. package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
  713. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  714. package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
  715. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  716. package/dist/components/MuiContainer.js.map +1 -1
  717. package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
  718. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  719. package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
  720. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  721. package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
  722. package/dist/components/PageProgress/PageProgress.js.map +1 -1
  723. package/dist/components/Plot/BarPlot.js.map +1 -1
  724. package/dist/components/Plot/DotPlot.js.map +1 -1
  725. package/dist/components/Plot/Plot.d.ts +12 -1
  726. package/dist/components/Plot/Plot.d.ts.map +1 -1
  727. package/dist/components/Plot/Plot.js +5 -1
  728. package/dist/components/Plot/Plot.js.map +1 -1
  729. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  730. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  731. package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
  732. package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
  733. package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
  734. package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
  735. package/dist/components/Plot/ThemesPlot.js.map +1 -1
  736. package/dist/components/Plot/UpsetPlot.js.map +1 -1
  737. package/dist/components/Plot/index.d.ts +3 -1
  738. package/dist/components/Plot/index.d.ts.map +1 -1
  739. package/dist/components/Plot/index.js +2 -1
  740. package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
  741. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  742. package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
  743. package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
  744. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
  745. package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
  746. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  747. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  748. package/dist/components/PortalList/PortalCard.js.map +1 -1
  749. package/dist/components/PortalList/PortalList.js.map +1 -1
  750. package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
  751. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
  752. package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
  753. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  754. package/dist/components/Programs/Programs.Desktop.js.map +1 -1
  755. package/dist/components/Programs/Programs.Mobile.js.map +1 -1
  756. package/dist/components/Programs/Programs.js.map +1 -1
  757. package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
  758. package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
  759. package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
  760. package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
  761. package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
  762. package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
  763. package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
  764. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  765. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  766. package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
  767. package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
  768. package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
  769. package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
  770. package/dist/components/QueryContext/QueryContext.js.map +1 -1
  771. package/dist/components/QueryCount/QueryCount.js.map +1 -1
  772. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  773. package/dist/components/QuerySortSelector.js.map +1 -1
  774. package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
  775. package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
  776. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
  777. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +67 -65
  778. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  779. package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
  780. package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
  781. package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
  782. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  783. package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
  784. package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
  785. package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
  786. package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
  787. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  788. package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
  789. package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
  790. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  791. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  792. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
  793. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -1
  794. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  795. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +1 -0
  796. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  797. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  798. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  799. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  800. package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
  801. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
  802. package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
  803. package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
  804. package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
  805. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  806. package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
  807. package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
  808. package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
  809. package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
  810. package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
  811. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  812. package/dist/components/Resources/Resources.Mobile.js.map +1 -1
  813. package/dist/components/Resources/Resources.js +8 -11
  814. package/dist/components/Resources/Resources.js.map +1 -1
  815. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  816. package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
  817. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  818. package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
  819. package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
  820. package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
  821. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  822. package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
  823. package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
  824. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  825. package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
  826. package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
  827. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  828. package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
  829. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts +1 -1
  830. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts.map +1 -1
  831. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js +1 -0
  832. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  833. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  834. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
  835. package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
  836. package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
  837. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  838. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  839. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  840. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  841. package/dist/components/ShowMore/ShowMore.js.map +1 -1
  842. package/dist/components/SignInButton.js.map +1 -1
  843. package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
  844. package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
  845. package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
  846. package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
  847. package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
  848. package/dist/components/SmartLink/SmartButton.js.map +1 -1
  849. package/dist/components/SmartLink/SmartLink.js.map +1 -1
  850. package/dist/components/SmartLink/useSmartLink.js.map +1 -1
  851. package/dist/components/SourceAppImage.js.map +1 -1
  852. package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
  853. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
  854. package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
  855. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts +1 -1
  856. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts.map +1 -1
  857. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  858. package/dist/components/StatisticsPlot.js.map +1 -1
  859. package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
  860. package/dist/components/StorybookComponentWrapper.js.map +1 -1
  861. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
  862. package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
  863. package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
  864. package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
  865. package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
  866. package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
  867. package/dist/components/SubscriptionPage/Topic.js.map +1 -1
  868. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
  869. package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
  870. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  871. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  872. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
  873. package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
  874. package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
  875. package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
  876. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  877. package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
  878. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  879. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  880. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  881. package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
  882. package/dist/components/SynapseChat/useChatState.js.map +1 -1
  883. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  884. package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
  885. package/dist/components/SynapseForm/DataDebug.js.map +1 -1
  886. package/dist/components/SynapseForm/Header.js.map +1 -1
  887. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  888. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  889. package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
  890. package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
  891. package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
  892. package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
  893. package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
  894. package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
  895. package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
  896. package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
  897. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  898. package/dist/components/SynapseForm/types.js.map +1 -1
  899. package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
  900. package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
  901. package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
  902. package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
  903. package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
  904. package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
  905. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  906. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
  907. package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
  908. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
  909. package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
  910. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  911. package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
  912. package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
  913. package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
  914. package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
  915. package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
  916. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  917. package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
  918. package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
  919. package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
  920. package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
  921. package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
  922. package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
  923. package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
  924. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  925. package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
  926. package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
  927. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
  928. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  929. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  930. package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
  931. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  932. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
  933. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  934. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  935. package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
  936. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  937. package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
  938. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  939. package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
  940. package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
  941. package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
  942. package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
  943. package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
  944. package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
  945. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  946. package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
  947. package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
  948. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
  949. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  950. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  951. package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
  952. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  953. package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
  954. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  955. package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
  956. package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
  957. package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
  958. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
  959. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
  960. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
  961. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
  962. package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
  963. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  964. package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
  965. package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
  966. package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
  967. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  968. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  969. package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
  970. package/dist/components/SynapseTable/TablePagination.js.map +1 -1
  971. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  972. package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
  973. package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
  974. package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
  975. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  976. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
  977. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  978. package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
  979. package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
  980. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
  981. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
  982. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
  983. package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
  984. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  985. package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
  986. package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
  987. package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
  988. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  989. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  990. package/dist/components/SynapseTable/useTableSort.js.map +1 -1
  991. package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
  992. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +12 -12
  993. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  994. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
  995. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
  996. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js +4 -4
  997. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
  998. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  999. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
  1000. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  1001. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  1002. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +32 -32
  1003. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  1004. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  1005. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
  1006. package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
  1007. package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
  1008. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  1009. package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
  1010. package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
  1011. package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
  1012. package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
  1013. package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
  1014. package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
  1015. package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
  1016. package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
  1017. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  1018. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  1019. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  1020. package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
  1021. package/dist/components/TanStackTable/TableBody.js.map +1 -1
  1022. package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
  1023. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  1024. package/dist/components/TeamBadge.js.map +1 -1
  1025. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  1026. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  1027. package/dist/components/TemplateComponent.js.map +1 -1
  1028. package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
  1029. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  1030. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
  1031. package/dist/components/TextField/TextField.js.map +1 -1
  1032. package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
  1033. package/dist/components/TextToComponentCollapse.js.map +1 -1
  1034. package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
  1035. package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
  1036. package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
  1037. package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
  1038. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  1039. package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
  1040. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  1041. package/dist/components/TotalQueryResults.js.map +1 -1
  1042. package/dist/components/UserCard/Avatar.js.map +1 -1
  1043. package/dist/components/UserCard/UserBadge.js.map +1 -1
  1044. package/dist/components/UserCard/UserCard.js.map +1 -1
  1045. package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
  1046. package/dist/components/UserCard/UserCardLarge.js.map +1 -1
  1047. package/dist/components/UserCard/UserCardMedium.js.map +1 -1
  1048. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  1049. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  1050. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
  1051. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
  1052. package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
  1053. package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
  1054. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  1055. package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
  1056. package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
  1057. package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
  1058. package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
  1059. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  1060. package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
  1061. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  1062. package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
  1063. package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
  1064. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  1065. package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
  1066. package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
  1067. package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
  1068. package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
  1069. package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
  1070. package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
  1071. package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
  1072. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  1073. package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
  1074. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  1075. package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
  1076. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  1077. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  1078. package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
  1079. package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
  1080. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  1081. package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
  1082. package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
  1083. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  1084. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  1085. package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
  1086. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
  1087. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  1088. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
  1089. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  1090. package/dist/components/doi/DoiFormSchemas.js.map +1 -1
  1091. package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
  1092. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
  1093. package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
  1094. package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
  1095. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  1096. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  1097. package/dist/components/download_list/index.js.map +1 -1
  1098. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  1099. package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
  1100. package/dist/components/entity/metadata/EntityModal.js.map +1 -1
  1101. package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
  1102. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  1103. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  1104. package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
  1105. package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
  1106. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  1107. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
  1108. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  1109. package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
  1110. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  1111. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  1112. package/dist/components/error/ErrorBanner.js.map +1 -1
  1113. package/dist/components/error/ErrorChip.js.map +1 -1
  1114. package/dist/components/error/ErrorPage.js +24 -24
  1115. package/dist/components/error/ErrorPage.js.map +1 -1
  1116. package/dist/components/error/RouteErrorBoundary.js.map +1 -1
  1117. package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
  1118. package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
  1119. package/dist/components/favorites/FavoriteButton.js.map +1 -1
  1120. package/dist/components/favorites/FavoritesPage.js.map +1 -1
  1121. package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
  1122. package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
  1123. package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
  1124. package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
  1125. package/dist/components/home_page/ExpandableContent.js.map +1 -1
  1126. package/dist/components/index.js +48 -47
  1127. package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
  1128. package/dist/components/layout/SWCHeader.js.map +1 -1
  1129. package/dist/components/layout/SWCPageLayout.js.map +1 -1
  1130. package/dist/components/menu/ComplexMenu.js.map +1 -1
  1131. package/dist/components/menu/DropdownMenu.js.map +1 -1
  1132. package/dist/components/row_renderers/Dataset.js.map +1 -1
  1133. package/dist/components/row_renderers/Funder.js.map +1 -1
  1134. package/dist/components/row_renderers/ObservationCard.js.map +1 -1
  1135. package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
  1136. package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
  1137. package/dist/components/styled/HoverPopover.js.map +1 -1
  1138. package/dist/components/styled/InlineBadge.js.map +1 -1
  1139. package/dist/components/styled/InputSizedButton.js.map +1 -1
  1140. package/dist/components/styled/LargeButton.js.map +1 -1
  1141. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  1142. package/dist/components/styled/LightTooltip.js.map +1 -1
  1143. package/dist/components/styled/StyledFormControl.js.map +1 -1
  1144. package/dist/components/styled/StyledPopover.js.map +1 -1
  1145. package/dist/components/styled/StyledTableContainer.js.map +1 -1
  1146. package/dist/components/styled/WideButton.js.map +1 -1
  1147. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts +18 -0
  1148. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts.map +1 -0
  1149. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +113 -0
  1150. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -0
  1151. package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
  1152. package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts +5 -5
  1153. package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts.map +1 -1
  1154. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +27 -76
  1155. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  1156. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts +19 -0
  1157. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts.map +1 -0
  1158. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +41 -0
  1159. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -0
  1160. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts +12 -0
  1161. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts.map +1 -0
  1162. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js +25 -0
  1163. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -0
  1164. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts +18 -0
  1165. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts.map +1 -0
  1166. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js +55 -0
  1167. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -0
  1168. package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts +19 -0
  1169. package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts.map +1 -0
  1170. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js +35 -0
  1171. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -0
  1172. package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts +22 -0
  1173. package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts.map +1 -0
  1174. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +32 -0
  1175. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -0
  1176. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts +14 -0
  1177. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts.map +1 -0
  1178. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js +23 -0
  1179. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -0
  1180. package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
  1181. package/dist/components/trash/TrashCanList.js.map +1 -1
  1182. package/dist/components/utils/Blocker.js.map +1 -1
  1183. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  1184. package/dist/components/utils/VisibilityObserver.js.map +1 -1
  1185. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  1186. package/dist/components/widgets/EntityColumnImage.js.map +1 -1
  1187. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  1188. package/dist/components/widgets/ImageFileHandle.js.map +1 -1
  1189. package/dist/components/widgets/LoginAwareButton.js.map +1 -1
  1190. package/dist/components/widgets/Range.js.map +1 -1
  1191. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  1192. package/dist/components/widgets/SynapseImage.js.map +1 -1
  1193. package/dist/components/widgets/SynapseVideo.js.map +1 -1
  1194. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  1195. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  1196. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  1197. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  1198. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  1199. package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
  1200. package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
  1201. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
  1202. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  1203. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
  1204. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  1205. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  1206. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  1207. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
  1208. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  1209. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  1210. package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
  1211. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  1212. package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
  1213. package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
  1214. package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
  1215. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  1216. package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
  1217. package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  1218. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
  1219. package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
  1220. package/dist/features/curator/GridPage/GridPage.js.map +1 -1
  1221. package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
  1222. package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
  1223. package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
  1224. package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
  1225. package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
  1226. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  1227. package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
  1228. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
  1229. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
  1230. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
  1231. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  1232. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  1233. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
  1234. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  1235. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  1236. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -34
  1237. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  1238. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  1239. package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
  1240. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  1241. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
  1242. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
  1243. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  1244. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
  1245. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  1246. package/dist/features/entity/metadata-task/utils/constants.d.ts +11 -3
  1247. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  1248. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  1249. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  1250. package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
  1251. package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
  1252. package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
  1253. package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
  1254. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  1255. package/dist/index.js +54 -53
  1256. package/dist/index.js.map +1 -1
  1257. package/dist/mocks/MockAccessApprovals.js.map +1 -1
  1258. package/dist/mocks/MockSynapseContext.js.map +1 -1
  1259. package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
  1260. package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
  1261. package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
  1262. package/dist/mocks/challenge/mockChallenge.js.map +1 -1
  1263. package/dist/mocks/chat/mockChat.js.map +1 -1
  1264. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  1265. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  1266. package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
  1267. package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
  1268. package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
  1269. package/dist/mocks/discussion/mock_discussion.js.map +1 -1
  1270. package/dist/mocks/doi/MockDoi.js.map +1 -1
  1271. package/dist/mocks/entity/index.js.map +1 -1
  1272. package/dist/mocks/entity/mockDataset.js.map +1 -1
  1273. package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
  1274. package/dist/mocks/entity/mockEntity.js.map +1 -1
  1275. package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
  1276. package/dist/mocks/entity/mockFileEntity.js.map +1 -1
  1277. package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
  1278. package/dist/mocks/entity/mockFileView.js.map +1 -1
  1279. package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
  1280. package/dist/mocks/entity/mockProject.js.map +1 -1
  1281. package/dist/mocks/entity/mockProjectView.js.map +1 -1
  1282. package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
  1283. package/dist/mocks/entity/mockRootEntity.js.map +1 -1
  1284. package/dist/mocks/entity/mockTableEntity.js.map +1 -1
  1285. package/dist/mocks/faker/fakerUtils.js.map +1 -1
  1286. package/dist/mocks/faker/generateDiscussion.js.map +1 -1
  1287. package/dist/mocks/faker/generateEvaluation.js.map +1 -1
  1288. package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
  1289. package/dist/mocks/faker/generateSubscription.js.map +1 -1
  1290. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  1291. package/dist/mocks/mockCertificationQuiz.js.map +1 -1
  1292. package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
  1293. package/dist/mocks/mockFileViewQuery.js.map +1 -1
  1294. package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
  1295. package/dist/mocks/mockQueryResponseData.js.map +1 -1
  1296. package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
  1297. package/dist/mocks/mockSchema.js.map +1 -1
  1298. package/dist/mocks/mockSearchQueryData.js.map +1 -1
  1299. package/dist/mocks/mockShortIo.js.map +1 -1
  1300. package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
  1301. package/dist/mocks/mockSubscription.js.map +1 -1
  1302. package/dist/mocks/mockWiki.js.map +1 -1
  1303. package/dist/mocks/mockWikiPageKey.js.map +1 -1
  1304. package/dist/mocks/mock_drug_tool_data.js.map +1 -1
  1305. package/dist/mocks/mock_file_handle.js.map +1 -1
  1306. package/dist/mocks/mock_file_statistics.js.map +1 -1
  1307. package/dist/mocks/mock_has_access_data.js.map +1 -1
  1308. package/dist/mocks/mock_upload_destination.js.map +1 -1
  1309. package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
  1310. package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
  1311. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  1312. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  1313. package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
  1314. package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
  1315. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  1316. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  1317. package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
  1318. package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
  1319. package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
  1320. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  1321. package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
  1322. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  1323. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  1324. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  1325. package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
  1326. package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
  1327. package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
  1328. package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
  1329. package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
  1330. package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
  1331. package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
  1332. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  1333. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  1334. package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
  1335. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  1336. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  1337. package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
  1338. package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
  1339. package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
  1340. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  1341. package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
  1342. package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
  1343. package/dist/mocks/msw/handlers.js.map +1 -1
  1344. package/dist/mocks/msw/server.d.ts +1 -1
  1345. package/dist/mocks/msw/server.d.ts.map +1 -1
  1346. package/dist/mocks/msw/server.js.map +1 -1
  1347. package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
  1348. package/dist/mocks/oauth/MockClient.js.map +1 -1
  1349. package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
  1350. package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
  1351. package/dist/mocks/provenance/mockActivity.js.map +1 -1
  1352. package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
  1353. package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
  1354. package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
  1355. package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
  1356. package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
  1357. package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
  1358. package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
  1359. package/dist/mocks/query/mock_query_data.js.map +1 -1
  1360. package/dist/mocks/query/syn16787123.js.map +1 -1
  1361. package/dist/mocks/query/syn17328596.js.map +1 -1
  1362. package/dist/mocks/query/syn51735464.js.map +1 -1
  1363. package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
  1364. package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
  1365. package/dist/mocks/team/mockTeam.js.map +1 -1
  1366. package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
  1367. package/dist/mocks/user/mock_user_profile.js.map +1 -1
  1368. package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
  1369. package/dist/ror-client/index.js.map +1 -1
  1370. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  1371. package/dist/stories/ToastDemo.js.map +1 -1
  1372. package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
  1373. package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
  1374. package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
  1375. package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
  1376. package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
  1377. package/dist/synapse-client/HttpClient.js.map +1 -1
  1378. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  1379. package/dist/synapse-client/SynapseClient.js +61 -69
  1380. package/dist/synapse-client/SynapseClient.js.map +1 -1
  1381. package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
  1382. package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
  1383. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  1384. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  1385. package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
  1386. package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
  1387. package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
  1388. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  1389. package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
  1390. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
  1391. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  1392. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  1393. package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
  1394. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  1395. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  1396. package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
  1397. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  1398. package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
  1399. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  1400. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  1401. package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
  1402. package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
  1403. package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
  1404. package/dist/synapse-queries/doi/useDOI.js.map +1 -1
  1405. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  1406. package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
  1407. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  1408. package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
  1409. package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
  1410. package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
  1411. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  1412. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  1413. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  1414. package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
  1415. package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
  1416. package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
  1417. package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
  1418. package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
  1419. package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
  1420. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  1421. package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
  1422. package/dist/synapse-queries/entity/useSchema.js.map +1 -1
  1423. package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
  1424. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  1425. package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
  1426. package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
  1427. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  1428. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  1429. package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
  1430. package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
  1431. package/dist/synapse-queries/forum/useForum.js.map +1 -1
  1432. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  1433. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  1434. package/dist/synapse-queries/github/useGithub.js.map +1 -1
  1435. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  1436. package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
  1437. package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
  1438. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  1439. package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
  1440. package/dist/synapse-queries/message/useMessage.js.map +1 -1
  1441. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  1442. package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
  1443. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  1444. package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
  1445. package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
  1446. package/dist/synapse-queries/ror/index.js.map +1 -1
  1447. package/dist/synapse-queries/search/useSearch.js.map +1 -1
  1448. package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
  1449. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  1450. package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
  1451. package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
  1452. package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
  1453. package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
  1454. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  1455. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  1456. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  1457. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  1458. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  1459. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  1460. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  1461. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  1462. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  1463. package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
  1464. package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
  1465. package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
  1466. package/dist/synapse-queries/user/useProjects.js.map +1 -1
  1467. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  1468. package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
  1469. package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
  1470. package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
  1471. package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
  1472. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  1473. package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
  1474. package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
  1475. package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
  1476. package/dist/testutils/LocationTracker.js.map +1 -1
  1477. package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
  1478. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  1479. package/dist/testutils/TestingLibraryUtils.js +18 -16
  1480. package/dist/testutils/TestingLibraryUtils.js.map +1 -1
  1481. package/dist/testutils/muiDatePickerMock.js.map +1 -1
  1482. package/dist/testutils/vitest.setup.js.map +1 -1
  1483. package/dist/theme/DefaultTheme.js.map +1 -1
  1484. package/dist/theme/ThemeProvider.js.map +1 -1
  1485. package/dist/theme/mergeTheme.js.map +1 -1
  1486. package/dist/theme/palette/Palettes.js.map +1 -1
  1487. package/dist/theme/spreadSx.js.map +1 -1
  1488. package/dist/theme/typography/Link.js.map +1 -1
  1489. package/dist/theme/typography/Typography.js.map +1 -1
  1490. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1491. package/dist/utils/APIConstants.js.map +1 -1
  1492. package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
  1493. package/dist/utils/AppUtils/AppUtils.js +11 -11
  1494. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  1495. package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
  1496. package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
  1497. package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
  1498. package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
  1499. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  1500. package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
  1501. package/dist/utils/ContentTypeUtils.js.map +1 -1
  1502. package/dist/utils/OrientationBannerConstants.js.map +1 -1
  1503. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  1504. package/dist/utils/SynapseConstants.js.map +1 -1
  1505. package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
  1506. package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
  1507. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  1508. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  1509. package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
  1510. package/dist/utils/context/AridhiaContext.js.map +1 -1
  1511. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  1512. package/dist/utils/context/FullContextProvider.js.map +1 -1
  1513. package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
  1514. package/dist/utils/context/SynapseContext.js.map +1 -1
  1515. package/dist/utils/featureflag/FeatureFlags.d.ts +2 -1
  1516. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  1517. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  1518. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  1519. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  1520. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  1521. package/dist/utils/functions/DateFormatter.js.map +1 -1
  1522. package/dist/utils/functions/DateTimeUtils.js.map +1 -1
  1523. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  1524. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  1525. package/dist/utils/functions/GridApiUtils.js.map +1 -1
  1526. package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
  1527. package/dist/utils/functions/IsExternalLink.js.map +1 -1
  1528. package/dist/utils/functions/ObjectUtils.js.map +1 -1
  1529. package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
  1530. package/dist/utils/functions/RealmUtils.js.map +1 -1
  1531. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  1532. package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
  1533. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  1534. package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
  1535. package/dist/utils/functions/SqlFunctions.js.map +1 -1
  1536. package/dist/utils/functions/StringUtils.js.map +1 -1
  1537. package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
  1538. package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
  1539. package/dist/utils/functions/colorPalette.js.map +1 -1
  1540. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  1541. package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
  1542. package/dist/utils/functions/generateCsrfToken.js.map +1 -1
  1543. package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
  1544. package/dist/utils/functions/getEndpoint.js +3 -3
  1545. package/dist/utils/functions/getEndpoint.js.map +1 -1
  1546. package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
  1547. package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
  1548. package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
  1549. package/dist/utils/functions/getUserData.js.map +1 -1
  1550. package/dist/utils/functions/queryUtils.js.map +1 -1
  1551. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  1552. package/dist/utils/functions/unCamelCase.js.map +1 -1
  1553. package/dist/utils/hooks/useConfirmItems.js.map +1 -1
  1554. package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
  1555. package/dist/utils/hooks/useCookiePreferences.js +24 -23
  1556. package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
  1557. package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
  1558. package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
  1559. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  1560. package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
  1561. package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
  1562. package/dist/utils/hooks/useGetGoalData.js +2 -4
  1563. package/dist/utils/hooks/useGetGoalData.js.map +1 -1
  1564. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  1565. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  1566. package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
  1567. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  1568. package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
  1569. package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
  1570. package/dist/utils/hooks/useIsBot.js.map +1 -1
  1571. package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
  1572. package/dist/utils/hooks/useListState.js.map +1 -1
  1573. package/dist/utils/hooks/useLogin.js.map +1 -1
  1574. package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
  1575. package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
  1576. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  1577. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  1578. package/dist/utils/hooks/useOverlay.js.map +1 -1
  1579. package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
  1580. package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
  1581. package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
  1582. package/dist/utils/hooks/useSet.js.map +1 -1
  1583. package/dist/utils/hooks/useShowDesktop.js.map +1 -1
  1584. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  1585. package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
  1586. package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
  1587. package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
  1588. package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
  1589. package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
  1590. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  1591. package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
  1592. package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
  1593. package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
  1594. package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
  1595. package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
  1596. package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
  1597. package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
  1598. package/dist/utils/html/TargetEnum.js.map +1 -1
  1599. package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
  1600. package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
  1601. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  1602. package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
  1603. package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
  1604. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  1605. package/dist/utils/jsonschema/getType.js.map +1 -1
  1606. package/dist/utils/searchDefaults.js.map +1 -1
  1607. package/dist/utils/slots/SlotUtils.js.map +1 -1
  1608. package/dist/utils/types/IsType.js.map +1 -1
  1609. package/package.json +67 -66
@@ -1 +1 @@
1
- {"version":3,"file":"RecentPublicationsGrid.js","names":[],"sources":["../../../src/components/RecentPublicationsGrid/RecentPublicationsGrid.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/index'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Box, Chip, Link as MuiLink, Skeleton, Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nexport type RecentPublicationsGridProps = {\n sql: string\n buttonLink?: string\n buttonLinkText?: string\n summaryText?: string\n}\n\ntype PublicationCardProps = {\n pub: Row\n isLoading: boolean\n categoryColIndex: number\n titleColIndex: number\n journalColIndex: number\n publicationDateColIndex: number\n doiColIndex: number\n}\n\nconst PublicationCard = ({\n pub,\n isLoading,\n categoryColIndex: _categoryColIndex, // PORTALS-3426 - category was dropped\n titleColIndex,\n journalColIndex,\n publicationDateColIndex,\n doiColIndex,\n}: PublicationCardProps): React.ReactNode => (\n <Grid\n key={pub.rowId}\n sx={{\n height: { xs: 'auto', sm: 'initial' },\n minWidth: { xs: '280px', lg: 'initial' },\n maxWidth: { xs: '450px', lg: 'initial' },\n }}\n >\n <Box sx={{ height: '100%' }}>\n {isLoading ? (\n <Skeleton variant=\"rectangular\" height={275} width=\"100%\" />\n ) : (\n <div>\n {pub.values[journalColIndex] && (\n <Chip\n label={\n <Typography\n variant={'overline'}\n sx={{ fontSize: '14px', lineHeight: 'initial' }}\n >\n {pub.values[journalColIndex]}\n </Typography>\n }\n sx={{\n borderRadius: '3px',\n height: 'auto',\n padding: '4px 8px',\n '& .MuiChip-label': {\n padding: '0',\n display: 'block',\n whiteSpace: 'normal',\n },\n }}\n />\n )}\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'grey.1000',\n fontSize: '21px',\n padding: '20px 0px',\n }}\n >\n <MuiLink\n href={convertDoiToLink(pub.values[doiColIndex] || '')}\n target=\"_blank\"\n sx={{\n color: 'inherit',\n textDecoration: 'none',\n fontWeight: 'inherit',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {pub.values[titleColIndex]}\n </MuiLink>\n </Typography>\n <Box\n sx={{\n display: 'flex',\n gap: '8px',\n flexDirection: 'column',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n color: 'grey.700',\n fontSize: '14px',\n lineHeight: 1.35,\n paddingBottom: { xs: 0, md: '35px' },\n }}\n >\n {pub.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(pub.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Box>\n </div>\n )}\n </Box>\n </Grid>\n)\n\nfunction RecentPublicationsGrid(props: RecentPublicationsGridProps) {\n const { sql, buttonLink, buttonLinkText, summaryText } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n },\n }\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult!.queryResults.rows ?? []\n\n enum ExpectedColumns {\n CATEGORY = 'Category',\n JOURNAL = 'Journal',\n TITLE = 'Title',\n PUBLICATION_DATE = 'publicationDate',\n DOI = 'DOI',\n }\n\n const categoryColIndex = getFieldIndex(\n ExpectedColumns.CATEGORY,\n queryResultBundle,\n )\n const journalColIndex = getFieldIndex(\n ExpectedColumns.JOURNAL,\n queryResultBundle,\n )\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const doiColIndex = getFieldIndex(ExpectedColumns.DOI, queryResultBundle)\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '3fr 1fr' },\n height: { xs: 'auto', md: 'initial' },\n gap: { xs: '24px', md: '80px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box\n sx={{\n order: { xs: 1, md: 0 },\n }}\n >\n <Box\n sx={theme => ({\n display: 'grid',\n gap: '32px',\n gridTemplateColumns: {\n xs: '1fr',\n sm: 'repeat(auto-fill, minmax(280px, 1fr))',\n lg: 'repeat(auto-fill, minmax(255px, 1fr))',\n xl: 'repeat(auto-fill, minmax(322px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n '& > :nth-of-type(n+4)': {\n display: 'none',\n },\n },\n })}\n >\n {dataRows.map(pub => (\n <PublicationCard\n pub={pub}\n key={pub.rowId}\n isLoading={isLoading}\n categoryColIndex={categoryColIndex}\n titleColIndex={titleColIndex}\n journalColIndex={journalColIndex}\n publicationDateColIndex={publicationDateColIndex}\n doiColIndex={doiColIndex}\n />\n ))}\n </Box>\n </Box>\n <Box sx={{ paddingBottom: '30px' }}>\n <PortalSectionHeader\n title=\"Recently Published\"\n summaryText={summaryText}\n buttonText={buttonLinkText}\n link={buttonLink}\n reverseButtonAndText\n sx={{\n h2: { fontSize: '24px', paddingTop: '30px', width: '100%' },\n '& p': { fontSize: '16px', lineHeight: '24px' },\n }}\n />\n </Box>\n </Box>\n )\n}\n\nexport default RecentPublicationsGrid\n"],"mappings":";;;;;;;;;;;;;;AAiCA,IAAM,KAAmB,EACvB,QACA,cACA,kBAAkB,GAClB,kBACA,oBACA,4BACA,qBAEA,kBAAC,GAAD;CAEE,IAAI;EACF,QAAQ;GAAE,IAAI;GAAQ,IAAI;GAAW;EACrC,UAAU;GAAE,IAAI;GAAS,IAAI;GAAW;EACxC,UAAU;GAAE,IAAI;GAAS,IAAI;GAAW;EACzC;WAED,kBAAC,GAAD;EAAK,IAAI,EAAE,QAAQ,QAAQ;YACxB,IACC,kBAAC,GAAD;GAAU,SAAQ;GAAc,QAAQ;GAAK,OAAM;GAAS,CAAA,GAE5D,kBAAC,OAAD,EAAA,UAAA;GACG,EAAI,OAAO,MACV,kBAAC,GAAD;IACE,OACE,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MAAE,UAAU;MAAQ,YAAY;MAAW;eAE9C,EAAI,OAAO;KACD,CAAA;IAEf,IAAI;KACF,cAAc;KACd,QAAQ;KACR,SAAS;KACT,oBAAoB;MAClB,SAAS;MACT,SAAS;MACT,YAAY;MACb;KACF;IACD,CAAA;GAEJ,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,OAAO;KACP,UAAU;KACV,SAAS;KACV;cAED,kBAAC,GAAD;KACE,MAAM,EAAiB,EAAI,OAAO,MAAgB,GAAG;KACrD,QAAO;KACP,IAAI;MACF,OAAO;MACP,gBAAgB;MAChB,YAAY;MACZ,WAAW,EACT,gBAAgB,QACjB;MACF;eAEA,EAAI,OAAO;KACJ,CAAA;IACC,CAAA;GACb,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,KAAK;KACL,eAAe;KAChB;cAED,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACZ,eAAe;OAAE,IAAI;OAAG,IAAI;OAAQ;MACrC;eAEA,EAAI,OAAO,MACV,EACE,EAAM,OAAO,EAAI,OAAO,GAAyB,CAAC,EAClD,aACD;KACQ,CAAA;IACT,CAAA;GACF,EAAA,CAAA;EAEJ,CAAA;CACD,EAnFA,EAAI,MAmFJ;AAGT,SAAS,EAAuB,GAAoC;CAClE,IAAM,EAAE,QAAK,eAAY,mBAAgB,mBAAgB,GAYnD,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EARxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,EAK7C;EACA,OAAO,EACL,QACD;EAGuB,CAAmB,EAEvC,IAAW,GAAmB,YAAa,aAAa,QAAQ,EAAE,EAEnE,IAAL,yBAAA,GAAA;SACE,EAAA,WAAW,YACX,EAAA,UAAU,WACV,EAAA,QAAQ,SACR,EAAA,mBAAmB,mBACnB,EAAA,MAAM;MACP,EAEK,IAAmB,EACvB,EAAgB,UAChB,EACD,EACK,IAAkB,EACtB,EAAgB,SAChB,EACD,EACK,IAAgB,EAAc,EAAgB,OAAO,EAAkB,EACvE,IAA0B,EAC9B,EAAgB,kBAChB,EACD,EACK,IAAc,EAAc,EAAgB,KAAK,EAAkB;AAEzE,QACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,qBAAqB;IAAE,IAAI;IAAO,IAAI;IAAW;GACjD,QAAQ;IAAE,IAAI;IAAQ,IAAI;IAAW;GACrC,KAAK;IAAE,IAAI;IAAQ,IAAI;IAAQ;GAC/B,SAAS;IAAE,IAAI;IAAQ,IAAI;IAAQ;GACpC;YAPH,CASE,kBAAC,GAAD;GACE,IAAI,EACF,OAAO;IAAE,IAAI;IAAG,IAAI;IAAG,EACxB;aAED,kBAAC,GAAD;IACE,KAAI,OAAU;KACZ,SAAS;KACT,KAAK;KACL,qBAAqB;MACnB,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;MACL;MACA,EAAM,YAAY,KAAK,KAAK,GAAG,EAC9B,yBAAyB,EACvB,SAAS,QACV,EACF;KACF;cAEA,EAAS,KAAI,MACZ,kBAAC,GAAD;KACO;KAEM;KACO;KACH;KACE;KACQ;KACZ;KACb,EAPK,EAAI,MAOT,CACF;IACE,CAAA;GACF,CAAA,EACN,kBAAC,GAAD;GAAK,IAAI,EAAE,eAAe,QAAQ;aAChC,kBAAC,GAAD;IACE,OAAM;IACO;IACb,YAAY;IACZ,MAAM;IACN,sBAAA;IACA,IAAI;KACF,IAAI;MAAE,UAAU;MAAQ,YAAY;MAAQ,OAAO;MAAQ;KAC3D,OAAO;MAAE,UAAU;MAAQ,YAAY;MAAQ;KAChD;IACD,CAAA;GACE,CAAA,CACF"}
1
+ {"version":3,"file":"RecentPublicationsGrid.js","names":[],"sources":["../../../src/components/RecentPublicationsGrid/RecentPublicationsGrid.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/index'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport { convertDoiToLink } from '@/utils/functions/RegularExpressions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Box, Chip, Link as MuiLink, Skeleton, Typography } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport { QueryBundleRequest, Row } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport PortalSectionHeader from '../PortalSectionHeader'\n\nexport type RecentPublicationsGridProps = {\n sql: string\n buttonLink?: string\n buttonLinkText?: string\n summaryText?: string\n}\n\ntype PublicationCardProps = {\n pub: Row\n isLoading: boolean\n categoryColIndex: number\n titleColIndex: number\n journalColIndex: number\n publicationDateColIndex: number\n doiColIndex: number\n}\n\nconst PublicationCard = ({\n pub,\n isLoading,\n categoryColIndex: _categoryColIndex, // PORTALS-3426 - category was dropped\n titleColIndex,\n journalColIndex,\n publicationDateColIndex,\n doiColIndex,\n}: PublicationCardProps): React.ReactNode => (\n <Grid\n key={pub.rowId}\n sx={{\n height: { xs: 'auto', sm: 'initial' },\n minWidth: { xs: '280px', lg: 'initial' },\n maxWidth: { xs: '450px', lg: 'initial' },\n }}\n >\n <Box sx={{ height: '100%' }}>\n {isLoading ? (\n <Skeleton variant=\"rectangular\" height={275} width=\"100%\" />\n ) : (\n <div>\n {pub.values[journalColIndex] && (\n <Chip\n label={\n <Typography\n variant={'overline'}\n sx={{ fontSize: '14px', lineHeight: 'initial' }}\n >\n {pub.values[journalColIndex]}\n </Typography>\n }\n sx={{\n borderRadius: '3px',\n height: 'auto',\n padding: '4px 8px',\n '& .MuiChip-label': {\n padding: '0',\n display: 'block',\n whiteSpace: 'normal',\n },\n }}\n />\n )}\n <Typography\n variant=\"headline2\"\n sx={{\n color: 'grey.1000',\n fontSize: '21px',\n padding: '20px 0px',\n }}\n >\n <MuiLink\n href={convertDoiToLink(pub.values[doiColIndex] || '')}\n target=\"_blank\"\n sx={{\n color: 'inherit',\n textDecoration: 'none',\n fontWeight: 'inherit',\n '&:hover': {\n textDecoration: 'none',\n },\n }}\n >\n {pub.values[titleColIndex]}\n </MuiLink>\n </Typography>\n <Box\n sx={{\n display: 'flex',\n gap: '8px',\n flexDirection: 'column',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n color: 'grey.700',\n fontSize: '14px',\n lineHeight: 1.35,\n paddingBottom: { xs: 0, md: '35px' },\n }}\n >\n {pub.values[publicationDateColIndex] &&\n formatDate(\n dayjs(Number(pub.values[publicationDateColIndex])),\n 'MMMM, YYYY',\n )}\n </Typography>\n </Box>\n </div>\n )}\n </Box>\n </Grid>\n)\n\nfunction RecentPublicationsGrid(props: RecentPublicationsGridProps) {\n const { sql, buttonLink, buttonLinkText, summaryText } = props\n\n const entityId = parseEntityIdFromSqlStatement(sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query: {\n sql,\n },\n }\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const dataRows = queryResultBundle?.queryResult!.queryResults.rows ?? []\n\n enum ExpectedColumns {\n CATEGORY = 'Category',\n JOURNAL = 'Journal',\n TITLE = 'Title',\n PUBLICATION_DATE = 'publicationDate',\n DOI = 'DOI',\n }\n\n const categoryColIndex = getFieldIndex(\n ExpectedColumns.CATEGORY,\n queryResultBundle,\n )\n const journalColIndex = getFieldIndex(\n ExpectedColumns.JOURNAL,\n queryResultBundle,\n )\n const titleColIndex = getFieldIndex(ExpectedColumns.TITLE, queryResultBundle)\n const publicationDateColIndex = getFieldIndex(\n ExpectedColumns.PUBLICATION_DATE,\n queryResultBundle,\n )\n const doiColIndex = getFieldIndex(ExpectedColumns.DOI, queryResultBundle)\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: { xs: '1fr', md: '3fr 1fr' },\n height: { xs: 'auto', md: 'initial' },\n gap: { xs: '24px', md: '80px' },\n padding: { xs: '40px', lg: '80px' },\n }}\n >\n <Box\n sx={{\n order: { xs: 1, md: 0 },\n }}\n >\n <Box\n sx={theme => ({\n display: 'grid',\n gap: '32px',\n gridTemplateColumns: {\n xs: '1fr',\n sm: 'repeat(auto-fill, minmax(280px, 1fr))',\n lg: 'repeat(auto-fill, minmax(255px, 1fr))',\n xl: 'repeat(auto-fill, minmax(322px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n '& > :nth-of-type(n+4)': {\n display: 'none',\n },\n },\n })}\n >\n {dataRows.map(pub => (\n <PublicationCard\n pub={pub}\n key={pub.rowId}\n isLoading={isLoading}\n categoryColIndex={categoryColIndex}\n titleColIndex={titleColIndex}\n journalColIndex={journalColIndex}\n publicationDateColIndex={publicationDateColIndex}\n doiColIndex={doiColIndex}\n />\n ))}\n </Box>\n </Box>\n <Box sx={{ paddingBottom: '30px' }}>\n <PortalSectionHeader\n title=\"Recently Published\"\n summaryText={summaryText}\n buttonText={buttonLinkText}\n link={buttonLink}\n reverseButtonAndText\n sx={{\n h2: { fontSize: '24px', paddingTop: '30px', width: '100%' },\n '& p': { fontSize: '16px', lineHeight: '24px' },\n }}\n />\n </Box>\n </Box>\n )\n}\n\nexport default RecentPublicationsGrid\n"],"mappings":";;;;;;;;;;;;;;AAiCA,IAAM,KAAmB,EACvB,QACA,cACA,kBAAkB,GAClB,kBACA,oBACA,4BACA,qBAEA,kBAAC,GAAD;CAEE,IAAI;EACF,QAAQ;GAAE,IAAI;GAAQ,IAAI;EAAU;EACpC,UAAU;GAAE,IAAI;GAAS,IAAI;EAAU;EACvC,UAAU;GAAE,IAAI;GAAS,IAAI;EAAU;CACzC;WAEA,kBAAC,GAAD;EAAK,IAAI,EAAE,QAAQ,OAAO;YACvB,IACC,kBAAC,GAAD;GAAU,SAAQ;GAAc,QAAQ;GAAK,OAAM;EAAQ,CAAA,IAE3D,kBAAC,OAAD,EAAA,UAAA;GACG,EAAI,OAAO,MACV,kBAAC,GAAD;IACE,OACE,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAU;eAE7C,EAAI,OAAO;IACF,CAAA;IAEd,IAAI;KACF,cAAc;KACd,QAAQ;KACR,SAAS;KACT,oBAAoB;MAClB,SAAS;MACT,SAAS;MACT,YAAY;KACd;IACF;GACD,CAAA;GAEH,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,OAAO;KACP,UAAU;KACV,SAAS;IACX;cAEA,kBAAC,GAAD;KACE,MAAM,EAAiB,EAAI,OAAO,MAAgB,EAAE;KACpD,QAAO;KACP,IAAI;MACF,OAAO;MACP,gBAAgB;MAChB,YAAY;MACZ,WAAW,EACT,gBAAgB,OAClB;KACF;eAEC,EAAI,OAAO;IACL,CAAA;GACC,CAAA;GACZ,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,KAAK;KACL,eAAe;IACjB;cAEA,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,OAAO;MACP,UAAU;MACV,YAAY;MACZ,eAAe;OAAE,IAAI;OAAG,IAAI;MAAO;KACrC;eAEC,EAAI,OAAO,MACV,EACE,EAAM,OAAO,EAAI,OAAO,EAAwB,CAAC,GACjD,YACF;IACQ,CAAA;GACT,CAAA;EACF,EAAA,CAAA;CAEJ,CAAA;AACD,GAnFC,EAAI,KAmFL;AAGR,SAAS,EAAuB,GAAoC;CAClE,IAAM,EAAE,QAAK,eAAY,mBAAgB,mBAAgB,GAYnD,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EARxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,CAK7C;EACA,OAAO,EACL,OACF;CAGwB,CAAkB,GAEtC,IAAW,GAAmB,YAAa,aAAa,QAAQ,CAAC,GAUjE,IAAmB,EAAA,YAEvB,CACF,GACM,IAAkB,EAAA,WAEtB,CACF,GACM,IAAgB,EAAA,SAAqC,CAAiB,GACtE,IAA0B,EAAA,mBAE9B,CACF,GACM,IAAc,EAAA,OAAmC,CAAiB;CAExE,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,qBAAqB;IAAE,IAAI;IAAO,IAAI;GAAU;GAChD,QAAQ;IAAE,IAAI;IAAQ,IAAI;GAAU;GACpC,KAAK;IAAE,IAAI;IAAQ,IAAI;GAAO;GAC9B,SAAS;IAAE,IAAI;IAAQ,IAAI;GAAO;EACpC;YAPF,CASE,kBAAC,GAAD;GACE,IAAI,EACF,OAAO;IAAE,IAAI;IAAG,IAAI;GAAE,EACxB;aAEA,kBAAC,GAAD;IACE,KAAI,OAAU;KACZ,SAAS;KACT,KAAK;KACL,qBAAqB;MACnB,IAAI;MACJ,IAAI;MACJ,IAAI;MACJ,IAAI;KACN;MACC,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,yBAAyB,EACvB,SAAS,OACX,EACF;IACF;cAEC,EAAS,KAAI,MACZ,kBAAC,GAAD;KACO;KAEM;KACO;KACH;KACE;KACQ;KACZ;IACd,GAPM,EAAI,KAOV,CACF;GACE,CAAA;EACF,CAAA,GACL,kBAAC,GAAD;GAAK,IAAI,EAAE,eAAe,OAAO;aAC/B,kBAAC,GAAD;IACE,OAAM;IACO;IACb,YAAY;IACZ,MAAM;IACN,sBAAA;IACA,IAAI;KACF,IAAI;MAAE,UAAU;MAAQ,YAAY;MAAQ,OAAO;KAAO;KAC1D,OAAO;MAAE,UAAU;MAAQ,YAAY;KAAO;IAChD;GACD,CAAA;EACE,CAAA,CACF;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"RegisterPageLogoutPrompt.js","names":[],"sources":["../../../src/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.tsx"],"sourcesContent":["import SageFullLogo from '@/assets/icons/SageFullLogo'\nimport { Button, Paper, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { useApplicationSessionContext } from '@/utils'\n\nexport type RegisterPageLogoutPromptProps = {\n logo?: ReactNode\n}\n\nexport default function RegisterPageLogoutPrompt(\n props: RegisterPageLogoutPromptProps,\n) {\n const { logo = <SageFullLogo width={'100%'} /> } = props\n\n const { clearSession } = useApplicationSessionContext()\n\n return (\n <Paper\n sx={{\n width: '450px',\n px: 8,\n py: 6,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n >\n {logo}\n <Typography\n variant={'headline3'}\n sx={{\n my: 1,\n }}\n >\n Already Logged In\n </Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n my: 1,\n }}\n >\n To register an account, please log out first\n </Typography>\n <Button\n variant={'contained'}\n size={'large'}\n fullWidth\n sx={{ p: 1.5, mt: 5, fontSize: '16px' }}\n onClick={() => {\n clearSession()\n }}\n >\n Log Out\n </Button>\n </Paper>\n )\n}\n"],"mappings":";;;;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,UAAO,kBAAC,GAAD,EAAc,OAAO,QAAU,CAAA,KAAK,GAE7C,EAAE,oBAAiB,GAA8B;AAEvD,QACE,kBAAC,GAAD;EACE,IAAI;GACF,OAAO;GACP,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,eAAe;GACf,YAAY;GACb;YARH;GAUG;GACD,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,GACL;cACF;IAEY,CAAA;GACb,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,GACL;cACF;IAEY,CAAA;GACb,kBAAC,GAAD;IACE,SAAS;IACT,MAAM;IACN,WAAA;IACA,IAAI;KAAE,GAAG;KAAK,IAAI;KAAG,UAAU;KAAQ;IACvC,eAAe;AACb,QAAc;;cAEjB;IAEQ,CAAA;GACH"}
1
+ {"version":3,"file":"RegisterPageLogoutPrompt.js","names":[],"sources":["../../../src/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.tsx"],"sourcesContent":["import SageFullLogo from '@/assets/icons/SageFullLogo'\nimport { Button, Paper, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { useApplicationSessionContext } from '@/utils'\n\nexport type RegisterPageLogoutPromptProps = {\n logo?: ReactNode\n}\n\nexport default function RegisterPageLogoutPrompt(\n props: RegisterPageLogoutPromptProps,\n) {\n const { logo = <SageFullLogo width={'100%'} /> } = props\n\n const { clearSession } = useApplicationSessionContext()\n\n return (\n <Paper\n sx={{\n width: '450px',\n px: 8,\n py: 6,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n >\n {logo}\n <Typography\n variant={'headline3'}\n sx={{\n my: 1,\n }}\n >\n Already Logged In\n </Typography>\n <Typography\n variant={'smallText1'}\n sx={{\n my: 1,\n }}\n >\n To register an account, please log out first\n </Typography>\n <Button\n variant={'contained'}\n size={'large'}\n fullWidth\n sx={{ p: 1.5, mt: 5, fontSize: '16px' }}\n onClick={() => {\n clearSession()\n }}\n >\n Log Out\n </Button>\n </Paper>\n )\n}\n"],"mappings":";;;;;;AASA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,UAAO,kBAAC,GAAD,EAAc,OAAO,OAAS,CAAA,MAAM,GAE7C,EAAE,oBAAiB,EAA6B;CAEtD,OACE,kBAAC,GAAD;EACE,IAAI;GACF,OAAO;GACP,IAAI;GACJ,IAAI;GACJ,SAAS;GACT,eAAe;GACf,YAAY;EACd;YARF;GAUG;GACD,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,EACN;cACD;GAEW,CAAA;GACZ,kBAAC,GAAD;IACE,SAAS;IACT,IAAI,EACF,IAAI,EACN;cACD;GAEW,CAAA;GACZ,kBAAC,GAAD;IACE,SAAS;IACT,MAAM;IACN,WAAA;IACA,IAAI;KAAE,GAAG;KAAK,IAAI;KAAG,UAAU;IAAO;IACtC,eAAe;KACb,EAAa;IACf;cACD;GAEO,CAAA;EACH;;AAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseCard.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCard.tsx"],"sourcesContent":["import { ReleaseCardLarge } from './ReleaseCardLarge'\nimport { ReleaseCardMedium } from './ReleaseCardMedium'\nimport { ReleaseCardConfig } from './ReleaseCardTypes'\n\n/**\n * Column index values into the row values given provided in \"data\"\n * Used to define release metadata (entity id, name, date)\n * as well as statistics and button to explore data\n */\nexport type ReleaseCardSchema = Record<string, number>\n\nexport type ReleaseCardProps = {\n schema: ReleaseCardSchema\n data: (string | null)[]\n includePortalCardClass?: boolean\n releaseCardConfig: ReleaseCardConfig\n}\n\n/**\n * Specialized Release Card, initially implemented for the GENIE portal.\n * Expects columns used to define release metadata (entity id, name, date)\n * as well as statistics columns and columns for defining a button to explore data\n * as defined in the releaseCardConfig\n */\nexport function ReleaseCard(props: ReleaseCardProps) {\n const { releaseCardConfig, ...rest } = props\n switch (releaseCardConfig.cardSize) {\n case 'large':\n return (\n <ReleaseCardLarge releaseCardConfig={releaseCardConfig} {...rest} />\n )\n case 'medium':\n return (\n <ReleaseCardMedium releaseCardConfig={releaseCardConfig} {...rest} />\n )\n default:\n console.error('No size specified for ReleaseCard')\n return <div />\n }\n}\n"],"mappings":";;;;AAwBA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EAAE,sBAAmB,GAAG,MAAS;AACvC,SAAQ,EAAkB,UAA1B;EACE,KAAK,QACH,QACE,kBAAC,GAAD;GAAqC;GAAmB,GAAI;GAAQ,CAAA;EAExE,KAAK,SACH,QACE,kBAAC,GAAD;GAAsC;GAAmB,GAAI;GAAQ,CAAA;EAEzE,QAEE,QADA,QAAQ,MAAM,oCAAoC,EAC3C,kBAAC,OAAD,EAAO,CAAA"}
1
+ {"version":3,"file":"ReleaseCard.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCard.tsx"],"sourcesContent":["import { ReleaseCardLarge } from './ReleaseCardLarge'\nimport { ReleaseCardMedium } from './ReleaseCardMedium'\nimport { ReleaseCardConfig } from './ReleaseCardTypes'\n\n/**\n * Column index values into the row values given provided in \"data\"\n * Used to define release metadata (entity id, name, date)\n * as well as statistics and button to explore data\n */\nexport type ReleaseCardSchema = Record<string, number>\n\nexport type ReleaseCardProps = {\n schema: ReleaseCardSchema\n data: (string | null)[]\n includePortalCardClass?: boolean\n releaseCardConfig: ReleaseCardConfig\n}\n\n/**\n * Specialized Release Card, initially implemented for the GENIE portal.\n * Expects columns used to define release metadata (entity id, name, date)\n * as well as statistics columns and columns for defining a button to explore data\n * as defined in the releaseCardConfig\n */\nexport function ReleaseCard(props: ReleaseCardProps) {\n const { releaseCardConfig, ...rest } = props\n switch (releaseCardConfig.cardSize) {\n case 'large':\n return (\n <ReleaseCardLarge releaseCardConfig={releaseCardConfig} {...rest} />\n )\n case 'medium':\n return (\n <ReleaseCardMedium releaseCardConfig={releaseCardConfig} {...rest} />\n )\n default:\n console.error('No size specified for ReleaseCard')\n return <div />\n }\n}\n"],"mappings":";;;;AAwBA,SAAgB,EAAY,GAAyB;CACnD,IAAM,EAAE,sBAAmB,GAAG,MAAS;CACvC,QAAQ,EAAkB,UAA1B;EACE,KAAK,SACH,OACE,kBAAC,GAAD;GAAqC;GAAmB,GAAI;EAAO,CAAA;EAEvE,KAAK,UACH,OACE,kBAAC,GAAD;GAAsC;GAAmB,GAAI;EAAO,CAAA;EAExE,SAEE,OADA,QAAQ,MAAM,mCAAmC,GAC1C,kBAAC,OAAD,CAAM,CAAA;CACjB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseCardLarge.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardLarge.tsx"],"sourcesContent":["import { CalendarTodayTwoTone } from '@mui/icons-material'\nimport { Box, Button, Divider, Stack, Typography } from '@mui/material'\nimport { Fragment, useEffect, useState } from 'react'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardLargeConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport {\n formatExplorePagePathAndQueryString,\n formatReleaseCardData,\n} from './ReleaseCardUtils'\n\nfunction StatFlex({ value, label }: ReleaseCardStat) {\n return (\n <Stack\n direction=\"column\"\n sx={{\n alignItems: 'center',\n padding: { xs: '20px 10px', md: '20px 40px' },\n gap: '10px',\n // ensure that stats are aligned when multiple cards are stacked vertically\n width: { xs: 'unset', lg: '200px' },\n }}\n >\n <Typography variant=\"headline1\">{value}</Typography>\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Stack>\n )\n}\n\nexport type ReleaseCardLargeProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardLargeConfig }\n\nexport function ReleaseCardLarge({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardLargeProps) {\n const { releaseName, releaseDate, stats } = formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n const { primaryBtnConfig, secondaryBtnConfig } = releaseCardConfig\n\n const [primaryBtnPathAndQuery, setPrimaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n const [secondaryBtnPathAndQuery, setSecondaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n\n useEffect(() => {\n formatExplorePagePathAndQueryString(schema, data, primaryBtnConfig).then(\n setPrimaryBtnPathAndQuery,\n )\n\n formatExplorePagePathAndQueryString(schema, data, secondaryBtnConfig).then(\n setSecondaryBtnPathAndQuery,\n )\n }, [schema, data, primaryBtnConfig, secondaryBtnConfig])\n\n if (releaseName === null) return <></>\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n minWidth: '200px',\n }}\n >\n <Stack\n direction={{ xs: 'column', lg: 'row' }}\n sx={{\n justifyContent: 'space-between',\n gap: '20px',\n padding: '20px',\n }}\n >\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <CalendarTodayTwoTone sx={{ color: 'grey.700' }} />\n <Typography variant=\"headline1\">\n {releaseCardConfig.prependRelease && 'Release '}\n {releaseName}\n </Typography>\n </Stack>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n sx={{\n alignItems: { xs: 'flex-start', sm: 'center' },\n gap: '20px',\n }}\n >\n {primaryBtnConfig && primaryBtnPathAndQuery && (\n <Button\n component={ReactRouterLink}\n variant=\"contained\"\n color=\"primary\"\n to={primaryBtnPathAndQuery}\n >\n {primaryBtnConfig.label}\n </Button>\n )}\n {secondaryBtnConfig && secondaryBtnPathAndQuery && (\n <Button component={ReactRouterLink} to={secondaryBtnPathAndQuery}>\n {secondaryBtnConfig.label}\n </Button>\n )}\n </Stack>\n </Stack>\n <Divider /> {/* divides stacks when page is narrow */}\n <Stack\n direction=\"row\"\n sx={{\n gap: { xs: 0, lg: '10px' },\n alignItems: 'center',\n justifyContent: { xs: 'space-evenly', lg: 'unset' },\n flexWrap: { xs: 'wrap', lg: 'nowrap' },\n }}\n >\n <StatFlex {...releaseDate} />\n {stats.map(stat => {\n return (\n <Fragment key={stat.label}>\n <Divider orientation=\"vertical\" flexItem />\n <StatFlex {...stat} />\n </Fragment>\n )\n })}\n </Stack>\n </Stack>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAWA,SAAS,EAAS,EAAE,UAAO,YAA0B;AACnD,QACE,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GACF,YAAY;GACZ,SAAS;IAAE,IAAI;IAAa,IAAI;IAAa;GAC7C,KAAK;GAEL,OAAO;IAAE,IAAI;IAAS,IAAI;IAAS;GACpC;YARH,CAUE,kBAAC,GAAD;GAAY,SAAQ;aAAa;GAAmB,CAAA,EACpD,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;IACR;aAEA;GACU,CAAA,CACP;;;AASZ,SAAgB,EAAiB,EAC/B,SACA,WACA,4BAAyB,IACzB,wBACwB;CACxB,IAAM,EAAE,gBAAa,gBAAa,aAAU,EAC1C,GACA,GACA,EAAkB,uBAClB,EAAkB,YACnB,EACK,EAAE,qBAAkB,0BAAuB,GAE3C,CAAC,GAAwB,KAA6B,EAE1D,KAAK,EACD,CAAC,GAA0B,KAA+B,EAE9D,KAAK;AAcP,QAZA,QAAgB;AAKd,EAJA,EAAoC,GAAQ,GAAM,EAAiB,CAAC,KAClE,EACD,EAED,EAAoC,GAAQ,GAAM,EAAmB,CAAC,KACpE,EACD;IACA;EAAC;EAAQ;EAAM;EAAkB;EAAmB,CAAC,EAEpD,MAAgB,OAAa,kBAAA,GAAA,EAAK,CAAA,GAGpC,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI,EACF,UAAU,SACX;YAED,kBAAC,GAAD;GACE,WAAW;IAAE,IAAI;IAAU,IAAI;IAAO;GACtC,IAAI;IACF,gBAAgB;IAChB,KAAK;IACL,SAAS;IACV;aANH;IAQE,kBAAC,GAAD;KACE,WAAU;KACV,IAAI,EACF,KAAK,QACN;eAJH,CAME,kBAAC,GAAD;MACE,WAAU;MACV,IAAI;OACF,YAAY;OACZ,KAAK;OACN;gBALH,CAOE,kBAAC,GAAD,EAAsB,IAAI,EAAE,OAAO,YAAY,EAAI,CAAA,EACnD,kBAAC,GAAD;OAAY,SAAQ;iBAApB,CACG,EAAkB,kBAAkB,YACpC,EACU;SACP;SACR,kBAAC,GAAD;MACE,WAAW;OAAE,IAAI;OAAU,IAAI;OAAO;MACtC,IAAI;OACF,YAAY;QAAE,IAAI;QAAc,IAAI;QAAU;OAC9C,KAAK;OACN;gBALH,CAOG,KAAoB,KACnB,kBAAC,GAAD;OACE,WAAW;OACX,SAAQ;OACR,OAAM;OACN,IAAI;iBAEH,EAAiB;OACX,CAAA,EAEV,KAAsB,KACrB,kBAAC,GAAD;OAAQ,WAAW;OAAiB,IAAI;iBACrC,EAAmB;OACb,CAAA,CAEL;QACF;;IACR,kBAAC,GAAD,EAAW,CAAA;;IACX,kBAAC,GAAD;KACE,WAAU;KACV,IAAI;MACF,KAAK;OAAE,IAAI;OAAG,IAAI;OAAQ;MAC1B,YAAY;MACZ,gBAAgB;OAAE,IAAI;OAAgB,IAAI;OAAS;MACnD,UAAU;OAAE,IAAI;OAAQ,IAAI;OAAU;MACvC;eAPH,CASE,kBAAC,GAAD,EAAU,GAAI,GAAe,CAAA,EAC5B,EAAM,KAAI,MAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAS,aAAY;MAAW,UAAA;MAAW,CAAA,EAC3C,kBAAC,GAAD,EAAU,GAAI,GAAQ,CAAA,CACb,EAAA,EAHI,EAAK,MAGT,CAEb,CACI;;IACF;;EACJ,CAAA"}
1
+ {"version":3,"file":"ReleaseCardLarge.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardLarge.tsx"],"sourcesContent":["import { CalendarTodayTwoTone } from '@mui/icons-material'\nimport { Box, Button, Divider, Stack, Typography } from '@mui/material'\nimport { Fragment, useEffect, useState } from 'react'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardLargeConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport {\n formatExplorePagePathAndQueryString,\n formatReleaseCardData,\n} from './ReleaseCardUtils'\n\nfunction StatFlex({ value, label }: ReleaseCardStat) {\n return (\n <Stack\n direction=\"column\"\n sx={{\n alignItems: 'center',\n padding: { xs: '20px 10px', md: '20px 40px' },\n gap: '10px',\n // ensure that stats are aligned when multiple cards are stacked vertically\n width: { xs: 'unset', lg: '200px' },\n }}\n >\n <Typography variant=\"headline1\">{value}</Typography>\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Stack>\n )\n}\n\nexport type ReleaseCardLargeProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardLargeConfig }\n\nexport function ReleaseCardLarge({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardLargeProps) {\n const { releaseName, releaseDate, stats } = formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n const { primaryBtnConfig, secondaryBtnConfig } = releaseCardConfig\n\n const [primaryBtnPathAndQuery, setPrimaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n const [secondaryBtnPathAndQuery, setSecondaryBtnPathAndQuery] = useState<\n string | null\n >(null)\n\n useEffect(() => {\n formatExplorePagePathAndQueryString(schema, data, primaryBtnConfig).then(\n setPrimaryBtnPathAndQuery,\n )\n\n formatExplorePagePathAndQueryString(schema, data, secondaryBtnConfig).then(\n setSecondaryBtnPathAndQuery,\n )\n }, [schema, data, primaryBtnConfig, secondaryBtnConfig])\n\n if (releaseName === null) return <></>\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n minWidth: '200px',\n }}\n >\n <Stack\n direction={{ xs: 'column', lg: 'row' }}\n sx={{\n justifyContent: 'space-between',\n gap: '20px',\n padding: '20px',\n }}\n >\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <Stack\n direction=\"row\"\n sx={{\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <CalendarTodayTwoTone sx={{ color: 'grey.700' }} />\n <Typography variant=\"headline1\">\n {releaseCardConfig.prependRelease && 'Release '}\n {releaseName}\n </Typography>\n </Stack>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n sx={{\n alignItems: { xs: 'flex-start', sm: 'center' },\n gap: '20px',\n }}\n >\n {primaryBtnConfig && primaryBtnPathAndQuery && (\n <Button\n component={ReactRouterLink}\n variant=\"contained\"\n color=\"primary\"\n to={primaryBtnPathAndQuery}\n >\n {primaryBtnConfig.label}\n </Button>\n )}\n {secondaryBtnConfig && secondaryBtnPathAndQuery && (\n <Button component={ReactRouterLink} to={secondaryBtnPathAndQuery}>\n {secondaryBtnConfig.label}\n </Button>\n )}\n </Stack>\n </Stack>\n <Divider /> {/* divides stacks when page is narrow */}\n <Stack\n direction=\"row\"\n sx={{\n gap: { xs: 0, lg: '10px' },\n alignItems: 'center',\n justifyContent: { xs: 'space-evenly', lg: 'unset' },\n flexWrap: { xs: 'wrap', lg: 'nowrap' },\n }}\n >\n <StatFlex {...releaseDate} />\n {stats.map(stat => {\n return (\n <Fragment key={stat.label}>\n <Divider orientation=\"vertical\" flexItem />\n <StatFlex {...stat} />\n </Fragment>\n )\n })}\n </Stack>\n </Stack>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AAWA,SAAS,EAAS,EAAE,UAAO,YAA0B;CACnD,OACE,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GACF,YAAY;GACZ,SAAS;IAAE,IAAI;IAAa,IAAI;GAAY;GAC5C,KAAK;GAEL,OAAO;IAAE,IAAI;IAAS,IAAI;GAAQ;EACpC;YARF,CAUE,kBAAC,GAAD;GAAY,SAAQ;aAAa;EAAkB,CAAA,GACnD,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;GACT;aAEC;EACS,CAAA,CACP;;AAEX;AAOA,SAAgB,EAAiB,EAC/B,SACA,WACA,4BAAyB,IACzB,wBACwB;CACxB,IAAM,EAAE,gBAAa,gBAAa,aAAU,EAC1C,GACA,GACA,EAAkB,uBAClB,EAAkB,WACpB,GACM,EAAE,qBAAkB,0BAAuB,GAE3C,CAAC,GAAwB,KAA6B,EAE1D,IAAI,GACA,CAAC,GAA0B,KAA+B,EAE9D,IAAI;CAcN,OAZA,QAAgB;EAKd,AAJA,EAAoC,GAAQ,GAAM,CAAgB,EAAE,KAClE,CACF,GAEA,EAAoC,GAAQ,GAAM,CAAkB,EAAE,KACpE,CACF;CACF,GAAG;EAAC;EAAQ;EAAM;EAAkB;CAAkB,CAAC,GAEnD,MAAgB,OAAa,kBAAA,GAAA,CAAI,CAAA,IAGnC,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI,EACF,UAAU,QACZ;YAEA,kBAAC,GAAD;GACE,WAAW;IAAE,IAAI;IAAU,IAAI;GAAM;GACrC,IAAI;IACF,gBAAgB;IAChB,KAAK;IACL,SAAS;GACX;aANF;IAQE,kBAAC,GAAD;KACE,WAAU;KACV,IAAI,EACF,KAAK,OACP;eAJF,CAME,kBAAC,GAAD;MACE,WAAU;MACV,IAAI;OACF,YAAY;OACZ,KAAK;MACP;gBALF,CAOE,kBAAC,GAAD,EAAsB,IAAI,EAAE,OAAO,WAAW,EAAI,CAAA,GAClD,kBAAC,GAAD;OAAY,SAAQ;iBAApB,CACG,EAAkB,kBAAkB,YACpC,CACS;QACP;SACP,kBAAC,GAAD;MACE,WAAW;OAAE,IAAI;OAAU,IAAI;MAAM;MACrC,IAAI;OACF,YAAY;QAAE,IAAI;QAAc,IAAI;OAAS;OAC7C,KAAK;MACP;gBALF,CAOG,KAAoB,KACnB,kBAAC,GAAD;OACE,WAAW;OACX,SAAQ;OACR,OAAM;OACN,IAAI;iBAEH,EAAiB;MACZ,CAAA,GAET,KAAsB,KACrB,kBAAC,GAAD;OAAQ,WAAW;OAAiB,IAAI;iBACrC,EAAmB;MACd,CAAA,CAEL;OACF;;IACP,kBAAC,GAAD,CAAU,CAAA;IAAC;IACX,kBAAC,GAAD;KACE,WAAU;KACV,IAAI;MACF,KAAK;OAAE,IAAI;OAAG,IAAI;MAAO;MACzB,YAAY;MACZ,gBAAgB;OAAE,IAAI;OAAgB,IAAI;MAAQ;MAClD,UAAU;OAAE,IAAI;OAAQ,IAAI;MAAS;KACvC;eAPF,CASE,kBAAC,GAAD,EAAU,GAAI,EAAc,CAAA,GAC3B,EAAM,KAAI,MAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAS,aAAY;MAAW,UAAA;KAAU,CAAA,GAC1C,kBAAC,GAAD,EAAU,GAAI,EAAO,CAAA,CACb,EAAA,GAHK,EAAK,KAGV,CAEb,CACI;;GACF;;CACJ,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseCardMedium.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardMedium.tsx"],"sourcesContent":["import { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardMediumConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport { formatReleaseCardData } from './ReleaseCardUtils'\n\nfunction StatGrid({ value, label }: ReleaseCardStat) {\n return (\n <>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-end',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n }}\n >\n {value}\n </Typography>\n </Box>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-start',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Box>\n </>\n )\n}\n\nexport type ReleaseCardMediumProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardMediumConfig }\n\nexport function ReleaseCardMedium({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardMediumProps) {\n const { releaseName, releaseEntityId, releaseDate, stats } =\n formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n\n if (releaseName === null) return <></>\n\n const nCols = 2\n const SPAN_ALL_COLS = `span ${nCols}`\n const nRows = stats.length + 4\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${nCols}, 1fr)`, // columns are controlled by this component, not the parent grid\n columnGap: '10px',\n gridTemplateRows: 'subgrid', // rows are controlled by parent grid, so text will be aligned across cards\n gridRow: `span ${nRows}`, // ensures that card spans the correct number of rows in the parent grid\n rowGap: '0px', // prevent parent grid from applying its gap to the subgrid rows\n alignItems: 'center',\n justifyItems: 'center',\n textAlign: 'center',\n padding: '30px 40px 40px',\n my: 0, // remove margin added by .SRC-portalCard - CardContainer list will set the gap between cards\n }}\n >\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n alignSelf: 'end',\n }}\n >\n <Typography variant=\"headline1\">{releaseName}</Typography>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mb: '30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n fontStyle: 'italic',\n color: 'grey.800',\n }}\n >{`Released ${releaseDate.value}`}</Typography>\n </Box>\n {stats.map(stat => (\n <StatGrid key={stat.label} {...stat} />\n ))}\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mt: '20px',\n mb: '5px',\n }}\n >\n <Button\n component={ReactRouterLink}\n to={releaseCardConfig.requestAccessPath}\n sx={{ fontSize: '14px' }}\n >\n Request Access\n </Button>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n }}\n >\n {releaseEntityId && (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${releaseEntityId}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n sx={{\n fontSize: '14px',\n textDecoration: 'none',\n }}\n >\n View on Synapse.org\n </Link>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAS,EAAS,EAAE,UAAO,YAA0B;AACnD,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;GACd;YAED,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI,EACF,YAAY,QACb;aAEA;GACU,CAAA;EACT,CAAA,EACN,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;GACd;YAED,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;IACR;aAEA;GACU,CAAA;EACT,CAAA,CACL,EAAA,CAAA;;AASP,SAAgB,EAAkB,EAChC,SACA,WACA,4BAAyB,IACzB,wBACyB;CACzB,IAAM,EAAE,gBAAa,oBAAiB,gBAAa,aACjD,EACE,GACA,GACA,EAAkB,uBAClB,EAAkB,YACnB;AAEH,KAAI,MAAgB,KAAM,QAAO,kBAAA,GAAA,EAAK,CAAA;CAEtC,IACM,IAAgB,UAChB,IAAQ,EAAM,SAAS;AAE7B,QACE,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI;GACF,SAAS;GACT,qBAAqB;GACrB,WAAW;GACX,kBAAkB;GAClB,SAAS,QAAQ;GACjB,QAAQ;GACR,YAAY;GACZ,cAAc;GACd,WAAW;GACX,SAAS;GACT,IAAI;GACL;YAhBH;GAkBE,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,WAAW;KACZ;cAED,kBAAC,GAAD;KAAY,SAAQ;eAAa;KAAyB,CAAA;IACtD,CAAA;GACN,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;KACL;cAED,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,YAAY;MACZ,WAAW;MACX,OAAO;MACR;eACD,YAAY,EAAY;KAAqB,CAAA;IAC3C,CAAA;GACL,EAAM,KAAI,MACT,kBAAC,GAAD,EAA2B,GAAI,GAAQ,EAAxB,EAAK,MAAmB,CACvC;GACF,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;KACJ,IAAI;KACL;cAED,kBAAC,GAAD;KACE,WAAW;KACX,IAAI,EAAkB;KACtB,IAAI,EAAE,UAAU,QAAQ;eACzB;KAEQ,CAAA;IACL,CAAA;GACN,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACV;cAEA,KACC,kBAAC,GAAD;KACE,MAAM,GAAG,EAA2B,OAAO,UAAU;KACrD,QAAO;KACP,KAAI;KACJ,IAAI;MACF,UAAU;MACV,gBAAgB;MACjB;eACF;KAEM,CAAA;IAEL,CAAA;GACF"}
1
+ {"version":3,"file":"ReleaseCardMedium.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardMedium.tsx"],"sourcesContent":["import { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport { Link as ReactRouterLink } from 'react-router'\nimport { ReleaseCardProps } from './ReleaseCard'\nimport { ReleaseCardMediumConfig, ReleaseCardStat } from './ReleaseCardTypes'\nimport { formatReleaseCardData } from './ReleaseCardUtils'\n\nfunction StatGrid({ value, label }: ReleaseCardStat) {\n return (\n <>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-end',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n }}\n >\n {value}\n </Typography>\n </Box>\n <Box\n sx={{\n gridColumn: 'span 1',\n gridRow: 'span 1',\n justifySelf: 'flex-start',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n color: 'grey.700',\n }}\n >\n {label}\n </Typography>\n </Box>\n </>\n )\n}\n\nexport type ReleaseCardMediumProps = Omit<\n ReleaseCardProps,\n 'releaseCardConfig'\n> & { releaseCardConfig: ReleaseCardMediumConfig }\n\nexport function ReleaseCardMedium({\n data,\n schema,\n includePortalCardClass = true,\n releaseCardConfig,\n}: ReleaseCardMediumProps) {\n const { releaseName, releaseEntityId, releaseDate, stats } =\n formatReleaseCardData(\n schema,\n data,\n releaseCardConfig.releaseMetadataConfig,\n releaseCardConfig.statsConfig,\n )\n\n if (releaseName === null) return <></>\n\n const nCols = 2\n const SPAN_ALL_COLS = `span ${nCols}`\n const nRows = stats.length + 4\n\n return (\n <Box\n className={`ReleaseCard ${\n includePortalCardClass ? 'SRC-portalCard' : ''\n }`}\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${nCols}, 1fr)`, // columns are controlled by this component, not the parent grid\n columnGap: '10px',\n gridTemplateRows: 'subgrid', // rows are controlled by parent grid, so text will be aligned across cards\n gridRow: `span ${nRows}`, // ensures that card spans the correct number of rows in the parent grid\n rowGap: '0px', // prevent parent grid from applying its gap to the subgrid rows\n alignItems: 'center',\n justifyItems: 'center',\n textAlign: 'center',\n padding: '30px 40px 40px',\n my: 0, // remove margin added by .SRC-portalCard - CardContainer list will set the gap between cards\n }}\n >\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n alignSelf: 'end',\n }}\n >\n <Typography variant=\"headline1\">{releaseName}</Typography>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mb: '30px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n lineHeight: '20px',\n fontStyle: 'italic',\n color: 'grey.800',\n }}\n >{`Released ${releaseDate.value}`}</Typography>\n </Box>\n {stats.map(stat => (\n <StatGrid key={stat.label} {...stat} />\n ))}\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n mt: '20px',\n mb: '5px',\n }}\n >\n <Button\n component={ReactRouterLink}\n to={releaseCardConfig.requestAccessPath}\n sx={{ fontSize: '14px' }}\n >\n Request Access\n </Button>\n </Box>\n <Box\n sx={{\n gridColumn: SPAN_ALL_COLS,\n gridRow: 'span 1',\n }}\n >\n {releaseEntityId && (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${releaseEntityId}`}\n target=\"_blank\"\n rel=\"noreferrer\"\n sx={{\n fontSize: '14px',\n textDecoration: 'none',\n }}\n >\n View on Synapse.org\n </Link>\n )}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAS,EAAS,EAAE,UAAO,YAA0B;CACnD,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;EACf;YAEA,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI,EACF,YAAY,OACd;aAEC;EACS,CAAA;CACT,CAAA,GACL,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;GACT,aAAa;EACf;YAEA,kBAAC,GAAD;GACE,SAAQ;GACR,IAAI;IACF,YAAY;IACZ,OAAO;GACT;aAEC;EACS,CAAA;CACT,CAAA,CACL,EAAA,CAAA;AAEN;AAOA,SAAgB,EAAkB,EAChC,SACA,WACA,4BAAyB,IACzB,wBACyB;CACzB,IAAM,EAAE,gBAAa,oBAAiB,gBAAa,aACjD,EACE,GACA,GACA,EAAkB,uBAClB,EAAkB,WACpB;CAEF,IAAI,MAAgB,MAAM,OAAO,kBAAA,GAAA,CAAI,CAAA;CAErC,IACM,IAAgB,UAChB,IAAQ,EAAM,SAAS;CAE7B,OACE,kBAAC,GAAD;EACE,WAAW,eACT,IAAyB,mBAAmB;EAE9C,IAAI;GACF,SAAS;GACT,qBAAqB;GACrB,WAAW;GACX,kBAAkB;GAClB,SAAS,QAAQ;GACjB,QAAQ;GACR,YAAY;GACZ,cAAc;GACd,WAAW;GACX,SAAS;GACT,IAAI;EACN;YAhBF;GAkBE,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,WAAW;IACb;cAEA,kBAAC,GAAD;KAAY,SAAQ;eAAa;IAAwB,CAAA;GACtD,CAAA;GACL,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;IACN;cAEA,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,YAAY;MACZ,WAAW;MACX,OAAO;KACT;eACA,YAAY,EAAY;IAAoB,CAAA;GAC3C,CAAA;GACJ,EAAM,KAAI,MACT,kBAAC,GAAD,EAA2B,GAAI,EAAO,GAAvB,EAAK,KAAkB,CACvC;GACD,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,IAAI;KACJ,IAAI;IACN;cAEA,kBAAC,GAAD;KACE,WAAW;KACX,IAAI,EAAkB;KACtB,IAAI,EAAE,UAAU,OAAO;eACxB;IAEO,CAAA;GACL,CAAA;GACL,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;IACX;cAEC,KACC,kBAAC,GAAD;KACE,MAAM,GAAG,EAA2B,OAAO,UAAU;KACrD,QAAO;KACP,KAAI;KACJ,IAAI;MACF,UAAU;MACV,gBAAgB;KAClB;eACD;IAEK,CAAA;GAEL,CAAA;EACF;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseCardUtils.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardUtils.ts"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { generateEncodedPathAndQueryForSelectedFacetURL } from '../QueryWrapper'\nimport { SelectedFacet } from '../QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL'\nimport { ReleaseCardSchema } from './ReleaseCard'\nimport {\n ButtonToExplorePageConfig,\n ReleaseCardStat,\n ReleaseMetadataConfig,\n SelectedFacetConfig,\n StatConfig,\n} from './ReleaseCardTypes'\n\nconst MISSING_STAT_DEFAULT_VALUE = 'Unknown'\n\nconst formatNumber = (num: number) => {\n if (num < 1_000_000) return num.toLocaleString()\n const numberFormatter = new Intl.NumberFormat([], {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n notation: 'compact',\n localeMatcher: 'best fit',\n })\n return numberFormatter.format(num)\n}\n\nconst getValueFromData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n columnName: string,\n) => {\n const columnIndex = schema[columnName]\n let columnValue\n if (columnIndex === undefined) {\n console.error(`Could not find column named ${columnName}`)\n columnValue = null\n } else {\n columnValue = data[columnIndex]\n }\n return columnValue\n}\n\nconst formatReleaseStats = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n statsConfig: StatConfig[],\n) => {\n return statsConfig.map(statConfig => {\n const { columnName, label } = statConfig\n const statString = getValueFromData(schema, data, columnName)\n const cardStat: ReleaseCardStat = {\n label: label,\n value: statString\n ? formatNumber(Number(statString))\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n })\n}\n\nconst formatReleaseDate = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseDateColumnName: string,\n) => {\n const releaseDateString = getValueFromData(\n schema,\n data,\n releaseDateColumnName,\n )\n const cardStat: ReleaseCardStat = {\n label: 'Date of release',\n value: releaseDateString\n ? formatDate(dayjs(Number(releaseDateString)), 'MM/DD/YYYY')\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n}\n\nexport const formatReleaseCardData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseMetdataConfig: ReleaseMetadataConfig,\n statsConfig: StatConfig[],\n) => {\n return {\n releaseName: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseNameColumnName,\n ),\n releaseEntityId: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseEntityIdColumnName,\n ),\n releaseDate: formatReleaseDate(\n schema,\n data,\n releaseMetdataConfig.releaseDateColumnName,\n ),\n stats: formatReleaseStats(schema, data, statsConfig),\n }\n}\n\nconst getAllSelectedFacets = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n selectedFacetConfigs: SelectedFacetConfig[] | undefined,\n staticSelectedFacets: SelectedFacet[] | undefined,\n): SelectedFacet[] => {\n const allSelectedFacets: SelectedFacet[] = staticSelectedFacets\n ? [...staticSelectedFacets]\n : []\n\n if (selectedFacetConfigs) {\n selectedFacetConfigs.forEach(selectedFacetConfig => {\n const sourceDataFacetValueColumnName =\n selectedFacetConfig.sourceTableColumnName\n const facetValue = sourceDataFacetValueColumnName\n ? getValueFromData(schema, data, sourceDataFacetValueColumnName)\n : null\n if (facetValue) {\n allSelectedFacets.push({\n facet: selectedFacetConfig.destinationTableColumnName,\n facetValue: facetValue,\n })\n }\n })\n }\n\n return allSelectedFacets\n}\n\nexport const formatExplorePagePathAndQueryString = async (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n btnConfig?: ButtonToExplorePageConfig,\n): Promise<string | null> => {\n if (!btnConfig) return null\n const path = getValueFromData(\n schema,\n data,\n btnConfig.sourceTablePathColumnName,\n )\n if (!path) {\n console.warn(\n `Column not found in source table or cell did not have value in source table for ${btnConfig.sourceTablePathColumnName}`,\n )\n return null\n }\n\n const {\n sourceTableSqlColumnName: sourceExploreDataSqlColumnName,\n selectedFacetConfigs,\n staticSelectedFacets,\n } = btnConfig\n\n const exploreDataSql = sourceExploreDataSqlColumnName\n ? getValueFromData(schema, data, sourceExploreDataSqlColumnName)\n : null\n const allSelectedFacets = getAllSelectedFacets(\n schema,\n data,\n selectedFacetConfigs,\n staticSelectedFacets,\n )\n const hasSelectedFacets = exploreDataSql && allSelectedFacets.length > 0\n\n return hasSelectedFacets\n ? await generateEncodedPathAndQueryForSelectedFacetURL(\n path,\n exploreDataSql,\n allSelectedFacets,\n )\n : path\n}\n"],"mappings":";;;;;AAaA,IAAM,IAA6B,WAE7B,KAAgB,MAChB,IAAM,MAAkB,EAAI,gBAAgB,GAOzC,IANqB,KAAK,aAAa,EAAE,EAAE;CAChD,uBAAuB;CACvB,uBAAuB;CACvB,UAAU;CACV,eAAe;CAChB,CACM,CAAgB,OAAO,EAAI,EAG9B,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAc,EAAO,IACvB;AAOJ,QANI,MAAgB,KAAA,KAClB,QAAQ,MAAM,+BAA+B,IAAa,EAC1D,IAAc,QAEd,IAAc,EAAK,IAEd;GAGH,KACJ,GACA,GACA,MAEO,EAAY,KAAI,MAAc;CACnC,IAAM,EAAE,eAAY,aAAU,GACxB,IAAa,EAAiB,GAAQ,GAAM,EAAW;AAO7D,QAAO;EALE;EACP,OAAO,IACH,EAAa,OAAO,EAAW,CAAC,GAChC;EAEC;EACP,EAGE,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAoB,EACxB,GACA,GACA,EACD;AAOD,QAAO;EALL,OAAO;EACP,OAAO,IACH,EAAW,EAAM,OAAO,EAAkB,CAAC,EAAE,aAAa,GAC1D;EAEC;GAGI,KACX,GACA,GACA,GACA,OAEO;CACL,aAAa,EACX,GACA,GACA,EAAqB,sBACtB;CACD,iBAAiB,EACf,GACA,GACA,EAAqB,0BACtB;CACD,aAAa,EACX,GACA,GACA,EAAqB,sBACtB;CACD,OAAO,EAAmB,GAAQ,GAAM,EAAY;CACrD,GAGG,KACJ,GACA,GACA,GACA,MACoB;CACpB,IAAM,IAAqC,IACvC,CAAC,GAAG,EAAqB,GACzB,EAAE;AAkBN,QAhBI,KACF,EAAqB,SAAQ,MAAuB;EAClD,IAAM,IACJ,EAAoB,uBAChB,IAAa,IACf,EAAiB,GAAQ,GAAM,EAA+B,GAC9D;AACJ,EAAI,KACF,EAAkB,KAAK;GACrB,OAAO,EAAoB;GACf;GACb,CAAC;GAEJ,EAGG;GAGI,IAAsC,OACjD,GACA,GACA,MAC2B;AAC3B,KAAI,CAAC,EAAW,QAAO;CACvB,IAAM,IAAO,EACX,GACA,GACA,EAAU,0BACX;AACD,KAAI,CAAC,EAIH,QAHA,QAAQ,KACN,mFAAmF,EAAU,4BAC9F,EACM;CAGT,IAAM,EACJ,0BAA0B,GAC1B,yBACA,4BACE,GAEE,IAAiB,IACnB,EAAiB,GAAQ,GAAM,EAA+B,GAC9D,MACE,IAAoB,EACxB,GACA,GACA,GACA,EACD;AAGD,QAF0B,KAAkB,EAAkB,SAAS,IAGnE,MAAM,EACJ,GACA,GACA,EACD,GACD"}
1
+ {"version":3,"file":"ReleaseCardUtils.js","names":[],"sources":["../../../src/components/ReleaseCard/ReleaseCardUtils.ts"],"sourcesContent":["import { formatDate } from '@/utils/functions/DateFormatter'\nimport dayjs from 'dayjs'\nimport { generateEncodedPathAndQueryForSelectedFacetURL } from '../QueryWrapper'\nimport { SelectedFacet } from '../QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL'\nimport { ReleaseCardSchema } from './ReleaseCard'\nimport {\n ButtonToExplorePageConfig,\n ReleaseCardStat,\n ReleaseMetadataConfig,\n SelectedFacetConfig,\n StatConfig,\n} from './ReleaseCardTypes'\n\nconst MISSING_STAT_DEFAULT_VALUE = 'Unknown'\n\nconst formatNumber = (num: number) => {\n if (num < 1_000_000) return num.toLocaleString()\n const numberFormatter = new Intl.NumberFormat([], {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n notation: 'compact',\n localeMatcher: 'best fit',\n })\n return numberFormatter.format(num)\n}\n\nconst getValueFromData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n columnName: string,\n) => {\n const columnIndex = schema[columnName]\n let columnValue\n if (columnIndex === undefined) {\n console.error(`Could not find column named ${columnName}`)\n columnValue = null\n } else {\n columnValue = data[columnIndex]\n }\n return columnValue\n}\n\nconst formatReleaseStats = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n statsConfig: StatConfig[],\n) => {\n return statsConfig.map(statConfig => {\n const { columnName, label } = statConfig\n const statString = getValueFromData(schema, data, columnName)\n const cardStat: ReleaseCardStat = {\n label: label,\n value: statString\n ? formatNumber(Number(statString))\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n })\n}\n\nconst formatReleaseDate = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseDateColumnName: string,\n) => {\n const releaseDateString = getValueFromData(\n schema,\n data,\n releaseDateColumnName,\n )\n const cardStat: ReleaseCardStat = {\n label: 'Date of release',\n value: releaseDateString\n ? formatDate(dayjs(Number(releaseDateString)), 'MM/DD/YYYY')\n : MISSING_STAT_DEFAULT_VALUE,\n }\n return cardStat\n}\n\nexport const formatReleaseCardData = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n releaseMetdataConfig: ReleaseMetadataConfig,\n statsConfig: StatConfig[],\n) => {\n return {\n releaseName: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseNameColumnName,\n ),\n releaseEntityId: getValueFromData(\n schema,\n data,\n releaseMetdataConfig.releaseEntityIdColumnName,\n ),\n releaseDate: formatReleaseDate(\n schema,\n data,\n releaseMetdataConfig.releaseDateColumnName,\n ),\n stats: formatReleaseStats(schema, data, statsConfig),\n }\n}\n\nconst getAllSelectedFacets = (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n selectedFacetConfigs: SelectedFacetConfig[] | undefined,\n staticSelectedFacets: SelectedFacet[] | undefined,\n): SelectedFacet[] => {\n const allSelectedFacets: SelectedFacet[] = staticSelectedFacets\n ? [...staticSelectedFacets]\n : []\n\n if (selectedFacetConfigs) {\n selectedFacetConfigs.forEach(selectedFacetConfig => {\n const sourceDataFacetValueColumnName =\n selectedFacetConfig.sourceTableColumnName\n const facetValue = sourceDataFacetValueColumnName\n ? getValueFromData(schema, data, sourceDataFacetValueColumnName)\n : null\n if (facetValue) {\n allSelectedFacets.push({\n facet: selectedFacetConfig.destinationTableColumnName,\n facetValue: facetValue,\n })\n }\n })\n }\n\n return allSelectedFacets\n}\n\nexport const formatExplorePagePathAndQueryString = async (\n schema: ReleaseCardSchema,\n data: (string | null)[],\n btnConfig?: ButtonToExplorePageConfig,\n): Promise<string | null> => {\n if (!btnConfig) return null\n const path = getValueFromData(\n schema,\n data,\n btnConfig.sourceTablePathColumnName,\n )\n if (!path) {\n console.warn(\n `Column not found in source table or cell did not have value in source table for ${btnConfig.sourceTablePathColumnName}`,\n )\n return null\n }\n\n const {\n sourceTableSqlColumnName: sourceExploreDataSqlColumnName,\n selectedFacetConfigs,\n staticSelectedFacets,\n } = btnConfig\n\n const exploreDataSql = sourceExploreDataSqlColumnName\n ? getValueFromData(schema, data, sourceExploreDataSqlColumnName)\n : null\n const allSelectedFacets = getAllSelectedFacets(\n schema,\n data,\n selectedFacetConfigs,\n staticSelectedFacets,\n )\n const hasSelectedFacets = exploreDataSql && allSelectedFacets.length > 0\n\n return hasSelectedFacets\n ? await generateEncodedPathAndQueryForSelectedFacetURL(\n path,\n exploreDataSql,\n allSelectedFacets,\n )\n : path\n}\n"],"mappings":";;;;;AAaA,IAAM,IAA6B,WAE7B,KAAgB,MAChB,IAAM,MAAkB,EAAI,eAAe,IAOxC,IANqB,KAAK,aAAa,CAAC,GAAG;CAChD,uBAAuB;CACvB,uBAAuB;CACvB,UAAU;CACV,eAAe;AACjB,CACO,EAAgB,OAAO,CAAG,GAG7B,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAc,EAAO,IACvB;CAOJ,OANI,MAAgB,KAAA,KAClB,QAAQ,MAAM,+BAA+B,GAAY,GACzD,IAAc,QAEd,IAAc,EAAK,IAEd;AACT,GAEM,KACJ,GACA,GACA,MAEO,EAAY,KAAI,MAAc;CACnC,IAAM,EAAE,eAAY,aAAU,GACxB,IAAa,EAAiB,GAAQ,GAAM,CAAU;CAO5D,OAAO;EALE;EACP,OAAO,IACH,EAAa,OAAO,CAAU,CAAC,IAC/B;CAEC;AACT,CAAC,GAGG,KACJ,GACA,GACA,MACG;CACH,IAAM,IAAoB,EACxB,GACA,GACA,CACF;CAOA,OAAO;EALL,OAAO;EACP,OAAO,IACH,EAAW,EAAM,OAAO,CAAiB,CAAC,GAAG,YAAY,IACzD;CAEC;AACT,GAEa,KACX,GACA,GACA,GACA,OAEO;CACL,aAAa,EACX,GACA,GACA,EAAqB,qBACvB;CACA,iBAAiB,EACf,GACA,GACA,EAAqB,yBACvB;CACA,aAAa,EACX,GACA,GACA,EAAqB,qBACvB;CACA,OAAO,EAAmB,GAAQ,GAAM,CAAW;AACrD,IAGI,KACJ,GACA,GACA,GACA,MACoB;CACpB,IAAM,IAAqC,IACvC,CAAC,GAAG,CAAoB,IACxB,CAAC;CAkBL,OAhBI,KACF,EAAqB,SAAQ,MAAuB;EAClD,IAAM,IACJ,EAAoB,uBAChB,IAAa,IACf,EAAiB,GAAQ,GAAM,CAA8B,IAC7D;EACJ,AAAI,KACF,EAAkB,KAAK;GACrB,OAAO,EAAoB;GACf;EACd,CAAC;CAEL,CAAC,GAGI;AACT,GAEa,IAAsC,OACjD,GACA,GACA,MAC2B;CAC3B,IAAI,CAAC,GAAW,OAAO;CACvB,IAAM,IAAO,EACX,GACA,GACA,EAAU,yBACZ;CACA,IAAI,CAAC,GAIH,OAHA,QAAQ,KACN,mFAAmF,EAAU,2BAC/F,GACO;CAGT,IAAM,EACJ,0BAA0B,GAC1B,yBACA,4BACE,GAEE,IAAiB,IACnB,EAAiB,GAAQ,GAAM,CAA8B,IAC7D,MACE,IAAoB,EACxB,GACA,GACA,GACA,CACF;CAGA,OAF0B,KAAkB,EAAkB,SAAS,IAGnE,MAAM,EACJ,GACA,GACA,CACF,IACA;AACN"}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderIfInView.js","names":[],"sources":["../../../src/components/RenderIfInView/RenderIfInView.tsx"],"sourcesContent":["import VisibilityObserver from '@/components/utils/VisibilityObserver'\nimport { Component, PropsWithChildren } from 'react'\n\nexport class RenderIfInView extends Component<PropsWithChildren<unknown>> {\n public render() {\n return <VisibilityObserver renderInView={this.getChildren} />\n }\n\n private getChildren = () => {\n return <>{this.props.children}</>\n }\n}\n\nexport default RenderIfInView\n"],"mappings":";;;;AAGA,IAAa,IAAb,cAAoC,EAAsC;CACxE,SAAgB;AACd,SAAO,kBAAC,GAAD,EAAoB,cAAc,KAAK,aAAe,CAAA;;CAG/D,oBACS,kBAAA,GAAA,EAAA,UAAG,KAAK,MAAM,UAAY,CAAA"}
1
+ {"version":3,"file":"RenderIfInView.js","names":[],"sources":["../../../src/components/RenderIfInView/RenderIfInView.tsx"],"sourcesContent":["import VisibilityObserver from '@/components/utils/VisibilityObserver'\nimport { Component, PropsWithChildren } from 'react'\n\nexport class RenderIfInView extends Component<PropsWithChildren<unknown>> {\n public render() {\n return <VisibilityObserver renderInView={this.getChildren} />\n }\n\n private getChildren = () => {\n return <>{this.props.children}</>\n }\n}\n\nexport default RenderIfInView\n"],"mappings":";;;;AAGA,IAAa,IAAb,cAAoC,EAAsC;CACxE,SAAgB;EACd,OAAO,kBAAC,GAAD,EAAoB,cAAc,KAAK,YAAc,CAAA;CAC9D;CAEA,oBACS,kBAAA,GAAA,EAAA,UAAG,KAAK,MAAM,SAAW,CAAA;AAEpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResizableContainer.js","names":[],"sources":["../../../src/components/ResizableContainer/ResizableContainer.tsx"],"sourcesContent":["import { Box, SxProps, Theme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface ResizeHandleProps {\n onMouseDown: (e: React.MouseEvent) => void\n sx?: SxProps<Theme>\n}\n\nexport function ResizeHandle({ onMouseDown, sx }: ResizeHandleProps) {\n return (\n <Box\n onMouseDown={onMouseDown}\n sx={{\n position: 'absolute',\n bottom: 0,\n right: 0,\n width: 20,\n height: 20,\n cursor: 'se-resize',\n // Add a simple diagonal lines to indicate resize handle\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 7,\n bottom: 7,\n width: 5,\n height: 5,\n borderRight: '2px solid #999',\n borderBottom: '2px solid #999',\n },\n ...sx,\n }}\n />\n )\n}\n\nexport interface ResizableContainerProps {\n children: ReactNode\n width: number\n height: number\n onResizeStart: (e: React.MouseEvent) => void\n showResizeHandle?: boolean\n resizeHandleSx?: SxProps<Theme>\n sx?: SxProps<Theme>\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function ResizableContainer({\n children,\n width,\n height,\n onResizeStart,\n showResizeHandle = true,\n resizeHandleSx,\n sx,\n}: ResizableContainerProps) {\n return (\n <Box\n sx={{\n position: 'relative',\n width: `${width}px`,\n height: `${height}px`,\n ...sx,\n }}\n >\n {children}\n {showResizeHandle && (\n <ResizeHandle onMouseDown={onResizeStart} sx={resizeHandleSx} />\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAa,EAAE,gBAAa,SAAyB;AACnE,QACE,kBAAC,GAAD;EACe;EACb,IAAI;GACF,UAAU;GACV,QAAQ;GACR,OAAO;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GAER,aAAa;IACX,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,cAAc;IACf;GACD,GAAG;GACJ;EACD,CAAA;;AAeN,SAAgB,EAAmB,EACjC,aACA,UACA,WACA,kBACA,sBAAmB,IACnB,mBACA,SAC0B;AAC1B,QACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,OAAO,GAAG,EAAM;GAChB,QAAQ,GAAG,EAAO;GAClB,GAAG;GACJ;YANH,CAQG,GACA,KACC,kBAAC,GAAD;GAAc,aAAa;GAAe,IAAI;GAAkB,CAAA,CAE9D"}
1
+ {"version":3,"file":"ResizableContainer.js","names":[],"sources":["../../../src/components/ResizableContainer/ResizableContainer.tsx"],"sourcesContent":["import { Box, SxProps, Theme } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface ResizeHandleProps {\n onMouseDown: (e: React.MouseEvent) => void\n sx?: SxProps<Theme>\n}\n\nexport function ResizeHandle({ onMouseDown, sx }: ResizeHandleProps) {\n return (\n <Box\n onMouseDown={onMouseDown}\n sx={{\n position: 'absolute',\n bottom: 0,\n right: 0,\n width: 20,\n height: 20,\n cursor: 'se-resize',\n // Add a simple diagonal lines to indicate resize handle\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 7,\n bottom: 7,\n width: 5,\n height: 5,\n borderRight: '2px solid #999',\n borderBottom: '2px solid #999',\n },\n ...sx,\n }}\n />\n )\n}\n\nexport interface ResizableContainerProps {\n children: ReactNode\n width: number\n height: number\n onResizeStart: (e: React.MouseEvent) => void\n showResizeHandle?: boolean\n resizeHandleSx?: SxProps<Theme>\n sx?: SxProps<Theme>\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function ResizableContainer({\n children,\n width,\n height,\n onResizeStart,\n showResizeHandle = true,\n resizeHandleSx,\n sx,\n}: ResizableContainerProps) {\n return (\n <Box\n sx={{\n position: 'relative',\n width: `${width}px`,\n height: `${height}px`,\n ...sx,\n }}\n >\n {children}\n {showResizeHandle && (\n <ResizeHandle onMouseDown={onResizeStart} sx={resizeHandleSx} />\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAQA,SAAgB,EAAa,EAAE,gBAAa,SAAyB;CACnE,OACE,kBAAC,GAAD;EACe;EACb,IAAI;GACF,UAAU;GACV,QAAQ;GACR,OAAO;GACP,OAAO;GACP,QAAQ;GACR,QAAQ;GAER,aAAa;IACX,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,cAAc;GAChB;GACA,GAAG;EACL;CACD,CAAA;AAEL;AAaA,SAAgB,EAAmB,EACjC,aACA,UACA,WACA,kBACA,sBAAmB,IACnB,mBACA,SAC0B;CAC1B,OACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,OAAO,GAAG,EAAM;GAChB,QAAQ,GAAG,EAAO;GAClB,GAAG;EACL;YANF,CAQG,GACA,KACC,kBAAC,GAAD;GAAc,aAAa;GAAe,IAAI;EAAiB,CAAA,CAE9D;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"useResizable.js","names":[],"sources":["../../../../src/components/ResizableContainer/hooks/useResizable.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface ResizableOptions {\n initialWidth?: number\n initialHeight?: number\n minWidth?: number\n minHeight?: number\n maxWidth?: number\n maxHeight?: number\n onResize?: (size: { width: number; height: number }) => void\n}\n\nexport interface ResizableState {\n width: number\n height: number\n isResizing: boolean\n}\n\nexport interface ResizableHandlers {\n handleResizeStart: (e: React.MouseEvent) => void\n setSize: (size: { width: number; height: number }) => void\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function useResizable(\n options: ResizableOptions = {},\n): ResizableState & ResizableHandlers {\n const {\n initialWidth = 600,\n initialHeight = 500,\n minWidth = 300,\n minHeight = 200,\n maxWidth = 1200,\n maxHeight = 800,\n onResize,\n } = options\n\n const [size, setSize] = useState({\n width: initialWidth,\n height: initialHeight,\n })\n const [isResizing, setIsResizing] = useState(false)\n const resizeStartRef = useRef<{\n x: number\n y: number\n width: number\n height: number\n } | null>(null)\n\n const handleResizeStart = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsResizing(true)\n resizeStartRef.current = {\n x: e.clientX,\n y: e.clientY,\n width: size.width,\n height: size.height,\n }\n },\n [size],\n )\n\n const handleResizeMove = useCallback(\n (e: MouseEvent) => {\n if (!isResizing || !resizeStartRef.current) return\n\n const deltaX = e.clientX - resizeStartRef.current.x\n const deltaY = e.clientY - resizeStartRef.current.y\n\n const newWidth = Math.max(\n minWidth,\n Math.min(maxWidth, resizeStartRef.current.width + deltaX),\n )\n const newHeight = Math.max(\n minHeight,\n Math.min(maxHeight, resizeStartRef.current.height + deltaY),\n )\n\n const newSize = { width: newWidth, height: newHeight }\n setSize(newSize)\n onResize?.(newSize)\n },\n [isResizing, minWidth, maxWidth, minHeight, maxHeight, onResize],\n )\n\n const handleResizeEnd = useCallback(() => {\n setIsResizing(false)\n resizeStartRef.current = null\n }, [])\n\n useEffect(() => {\n if (isResizing) {\n document.addEventListener('mousemove', handleResizeMove)\n document.addEventListener('mouseup', handleResizeEnd)\n }\n return () => {\n document.removeEventListener('mousemove', handleResizeMove)\n document.removeEventListener('mouseup', handleResizeEnd)\n }\n }, [isResizing, handleResizeMove, handleResizeEnd])\n\n return {\n width: size.width,\n height: size.height,\n isResizing,\n handleResizeStart,\n setSize,\n }\n}\n"],"mappings":";;AAwBA,SAAgB,EACd,IAA4B,EAAE,EACM;CACpC,IAAM,EACJ,kBAAe,KACf,mBAAgB,KAChB,cAAW,KACX,eAAY,KACZ,cAAW,MACX,eAAY,KACZ,gBACE,GAEE,CAAC,GAAM,KAAW,EAAS;EAC/B,OAAO;EACP,QAAQ;EACT,CAAC,EACI,CAAC,GAAY,KAAiB,EAAS,GAAM,EAC7C,IAAiB,EAKb,KAAK,EAET,IAAoB,GACvB,MAAwB;AAIvB,EAHA,EAAE,gBAAgB,EAClB,EAAE,iBAAiB,EACnB,EAAc,GAAK,EACnB,EAAe,UAAU;GACvB,GAAG,EAAE;GACL,GAAG,EAAE;GACL,OAAO,EAAK;GACZ,QAAQ,EAAK;GACd;IAEH,CAAC,EAAK,CACP,EAEK,IAAmB,GACtB,MAAkB;AACjB,MAAI,CAAC,KAAc,CAAC,EAAe,QAAS;EAE5C,IAAM,IAAS,EAAE,UAAU,EAAe,QAAQ,GAC5C,IAAS,EAAE,UAAU,EAAe,QAAQ,GAW5C,IAAU;GAAE,OATD,KAAK,IACpB,GACA,KAAK,IAAI,GAAU,EAAe,QAAQ,QAAQ,EAAO,CAOlC;GAAU,QALjB,KAAK,IACrB,GACA,KAAK,IAAI,GAAW,EAAe,QAAQ,SAAS,EAAO,CAGlB;GAAW;AAEtD,EADA,EAAQ,EAAQ,EAChB,IAAW,EAAQ;IAErB;EAAC;EAAY;EAAU;EAAU;EAAW;EAAW;EAAS,CACjE,EAEK,IAAkB,QAAkB;AAExC,EADA,EAAc,GAAM,EACpB,EAAe,UAAU;IACxB,EAAE,CAAC;AAaN,QAXA,SACM,MACF,SAAS,iBAAiB,aAAa,EAAiB,EACxD,SAAS,iBAAiB,WAAW,EAAgB,SAE1C;AAEX,EADA,SAAS,oBAAoB,aAAa,EAAiB,EAC3D,SAAS,oBAAoB,WAAW,EAAgB;KAEzD;EAAC;EAAY;EAAkB;EAAgB,CAAC,EAE5C;EACL,OAAO,EAAK;EACZ,QAAQ,EAAK;EACb;EACA;EACA;EACD"}
1
+ {"version":3,"file":"useResizable.js","names":[],"sources":["../../../../src/components/ResizableContainer/hooks/useResizable.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface ResizableOptions {\n initialWidth?: number\n initialHeight?: number\n minWidth?: number\n minHeight?: number\n maxWidth?: number\n maxHeight?: number\n onResize?: (size: { width: number; height: number }) => void\n}\n\nexport interface ResizableState {\n width: number\n height: number\n isResizing: boolean\n}\n\nexport interface ResizableHandlers {\n handleResizeStart: (e: React.MouseEvent) => void\n setSize: (size: { width: number; height: number }) => void\n}\n\n/** See DraggableDialog for an example on how to use useResizable with a ResizableContainer */\nexport function useResizable(\n options: ResizableOptions = {},\n): ResizableState & ResizableHandlers {\n const {\n initialWidth = 600,\n initialHeight = 500,\n minWidth = 300,\n minHeight = 200,\n maxWidth = 1200,\n maxHeight = 800,\n onResize,\n } = options\n\n const [size, setSize] = useState({\n width: initialWidth,\n height: initialHeight,\n })\n const [isResizing, setIsResizing] = useState(false)\n const resizeStartRef = useRef<{\n x: number\n y: number\n width: number\n height: number\n } | null>(null)\n\n const handleResizeStart = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsResizing(true)\n resizeStartRef.current = {\n x: e.clientX,\n y: e.clientY,\n width: size.width,\n height: size.height,\n }\n },\n [size],\n )\n\n const handleResizeMove = useCallback(\n (e: MouseEvent) => {\n if (!isResizing || !resizeStartRef.current) return\n\n const deltaX = e.clientX - resizeStartRef.current.x\n const deltaY = e.clientY - resizeStartRef.current.y\n\n const newWidth = Math.max(\n minWidth,\n Math.min(maxWidth, resizeStartRef.current.width + deltaX),\n )\n const newHeight = Math.max(\n minHeight,\n Math.min(maxHeight, resizeStartRef.current.height + deltaY),\n )\n\n const newSize = { width: newWidth, height: newHeight }\n setSize(newSize)\n onResize?.(newSize)\n },\n [isResizing, minWidth, maxWidth, minHeight, maxHeight, onResize],\n )\n\n const handleResizeEnd = useCallback(() => {\n setIsResizing(false)\n resizeStartRef.current = null\n }, [])\n\n useEffect(() => {\n if (isResizing) {\n document.addEventListener('mousemove', handleResizeMove)\n document.addEventListener('mouseup', handleResizeEnd)\n }\n return () => {\n document.removeEventListener('mousemove', handleResizeMove)\n document.removeEventListener('mouseup', handleResizeEnd)\n }\n }, [isResizing, handleResizeMove, handleResizeEnd])\n\n return {\n width: size.width,\n height: size.height,\n isResizing,\n handleResizeStart,\n setSize,\n }\n}\n"],"mappings":";;AAwBA,SAAgB,EACd,IAA4B,CAAC,GACO;CACpC,IAAM,EACJ,kBAAe,KACf,mBAAgB,KAChB,cAAW,KACX,eAAY,KACZ,cAAW,MACX,eAAY,KACZ,gBACE,GAEE,CAAC,GAAM,KAAW,EAAS;EAC/B,OAAO;EACP,QAAQ;CACV,CAAC,GACK,CAAC,GAAY,KAAiB,EAAS,EAAK,GAC5C,IAAiB,EAKb,IAAI,GAER,IAAoB,GACvB,MAAwB;EAIvB,AAHA,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClB,EAAc,EAAI,GAClB,EAAe,UAAU;GACvB,GAAG,EAAE;GACL,GAAG,EAAE;GACL,OAAO,EAAK;GACZ,QAAQ,EAAK;EACf;CACF,GACA,CAAC,CAAI,CACP,GAEM,IAAmB,GACtB,MAAkB;EACjB,IAAI,CAAC,KAAc,CAAC,EAAe,SAAS;EAE5C,IAAM,IAAS,EAAE,UAAU,EAAe,QAAQ,GAC5C,IAAS,EAAE,UAAU,EAAe,QAAQ,GAW5C,IAAU;GAAE,OATD,KAAK,IACpB,GACA,KAAK,IAAI,GAAU,EAAe,QAAQ,QAAQ,CAAM,CAOjC;GAAU,QALjB,KAAK,IACrB,GACA,KAAK,IAAI,GAAW,EAAe,QAAQ,SAAS,CAAM,CAGjB;EAAU;EAErD,AADA,EAAQ,CAAO,GACf,IAAW,CAAO;CACpB,GACA;EAAC;EAAY;EAAU;EAAU;EAAW;EAAW;CAAQ,CACjE,GAEM,IAAkB,QAAkB;EAExC,AADA,EAAc,EAAK,GACnB,EAAe,UAAU;CAC3B,GAAG,CAAC,CAAC;CAaL,OAXA,SACM,MACF,SAAS,iBAAiB,aAAa,CAAgB,GACvD,SAAS,iBAAiB,WAAW,CAAe,UAEzC;EAEX,AADA,SAAS,oBAAoB,aAAa,CAAgB,GAC1D,SAAS,oBAAoB,WAAW,CAAe;CACzD,IACC;EAAC;EAAY;EAAkB;CAAe,CAAC,GAE3C;EACL,OAAO,EAAK;EACZ,QAAQ,EAAK;EACb;EACA;EACA;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Resources.Desktop.js","names":[],"sources":["../../../src/components/Resources/Resources.Desktop.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nexport type ResourcesDesktopProps = {\n data: Data\n}\n\nexport default function ResourcesDesktop({ data }: ResourcesDesktopProps) {\n const [index, setIndex] = useState(0)\n return (\n <div className=\"control-container\">\n <div className=\"button-container\">\n {data?.map((el, curIndex) => {\n return (\n <button\n className={index === curIndex ? 'isSelected' : ''}\n onClick={() => setIndex(curIndex)}\n key={el.name}\n >\n {el.name}\n </button>\n )\n })}\n {/*\n This button keeps the border line in the button container running from top to bottom,\n it doesn't have any functionality.\n */}\n <button className=\"gap-fill\" />\n </div>\n <div className=\"content-container\">\n {data?.map((el, curIndex) => {\n const { ownerId, wikiId } = el\n return (\n <span key={ownerId} className={index === curIndex ? '' : 'hide'}>\n <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n </span>\n )\n })}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAiB,EAAE,WAA+B;CACxE,IAAM,CAAC,GAAO,KAAY,EAAS,EAAE;AACrC,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GAAM,KAAK,GAAI,MAEZ,kBAAC,UAAD;IACE,WAAW,MAAU,IAAW,eAAe;IAC/C,eAAe,EAAS,EAAS;cAGhC,EAAG;IACG,EAHF,EAAG,KAGD,CAEX,EAKF,kBAAC,UAAD,EAAQ,WAAU,YAAa,CAAA,CAC3B;MACN,kBAAC,OAAD;GAAK,WAAU;aACZ,GAAM,KAAK,GAAI,MAAa;IAC3B,IAAM,EAAE,YAAS,cAAW;AAC5B,WACE,kBAAC,QAAD;KAAoB,WAAW,MAAU,IAAW,KAAK;eACvD,kBAAC,GAAD;MAA0B;MAAiB;MAAU,CAAA;KAChD,EAFI,EAEJ;KAET;GACE,CAAA,CACF"}
1
+ {"version":3,"file":"Resources.Desktop.js","names":[],"sources":["../../../src/components/Resources/Resources.Desktop.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\n\nexport type ResourcesDesktopProps = {\n data: Data\n}\n\nexport default function ResourcesDesktop({ data }: ResourcesDesktopProps) {\n const [index, setIndex] = useState(0)\n return (\n <div className=\"control-container\">\n <div className=\"button-container\">\n {data?.map((el, curIndex) => {\n return (\n <button\n className={index === curIndex ? 'isSelected' : ''}\n onClick={() => setIndex(curIndex)}\n key={el.name}\n >\n {el.name}\n </button>\n )\n })}\n {/*\n This button keeps the border line in the button container running from top to bottom,\n it doesn't have any functionality.\n */}\n <button className=\"gap-fill\" />\n </div>\n <div className=\"content-container\">\n {data?.map((el, curIndex) => {\n const { ownerId, wikiId } = el\n return (\n <span key={ownerId} className={index === curIndex ? '' : 'hide'}>\n <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n </span>\n )\n })}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAiB,EAAE,WAA+B;CACxE,IAAM,CAAC,GAAO,KAAY,EAAS,CAAC;CACpC,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GAAM,KAAK,GAAI,MAEZ,kBAAC,UAAD;IACE,WAAW,MAAU,IAAW,eAAe;IAC/C,eAAe,EAAS,CAAQ;cAG/B,EAAG;GACE,GAHD,EAAG,IAGF,CAEX,GAKD,kBAAC,UAAD,EAAQ,WAAU,WAAY,CAAA,CAC3B;MACL,kBAAC,OAAD;GAAK,WAAU;aACZ,GAAM,KAAK,GAAI,MAAa;IAC3B,IAAM,EAAE,YAAS,cAAW;IAC5B,OACE,kBAAC,QAAD;KAAoB,WAAW,MAAU,IAAW,KAAK;eACvD,kBAAC,GAAD;MAA0B;MAAiB;KAAS,CAAA;IAChD,GAFK,CAEL;GAEV,CAAC;EACE,CAAA,CACF;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"Resources.Mobile.js","names":[],"sources":["../../../src/components/Resources/Resources.Mobile.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport ExpandableContent from '../home_page/ExpandableContent'\n\nexport type ResourcesMobileProps = {\n data: Data\n}\n\nexport default function ResourcesMobile({ data }: ResourcesMobileProps) {\n return (\n <div className=\"Resources_Mobile\">\n {data.map(({ name, ownerId, wikiId }) => {\n const title = <> {name} </>\n const markdown = <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n return <ExpandableContent key={name} title={title} content={markdown} />\n })}\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAgB,EAAE,WAA8B;AACtE,QACE,kBAAC,OAAD;EAAK,WAAU;YACZ,EAAK,KAAK,EAAE,SAAM,YAAS,gBAGnB,kBAAC,GAAD;GAAqC,OAF9B,kBAAA,GAAA,EAAA,UAAA;IAAE;IAAE;IAAK;IAAI,EAAA,CAEiB;GAAO,SADlC,kBAAC,GAAD;IAA0B;IAAiB;IAAU,CACV;GAAY,EAAzC,EAAyC,CACxE;EACE,CAAA"}
1
+ {"version":3,"file":"Resources.Mobile.js","names":[],"sources":["../../../src/components/Resources/Resources.Mobile.tsx"],"sourcesContent":["import { Data } from './Resources'\nimport MarkdownSynapse from '../Markdown/MarkdownSynapse'\nimport ExpandableContent from '../home_page/ExpandableContent'\n\nexport type ResourcesMobileProps = {\n data: Data\n}\n\nexport default function ResourcesMobile({ data }: ResourcesMobileProps) {\n return (\n <div className=\"Resources_Mobile\">\n {data.map(({ name, ownerId, wikiId }) => {\n const title = <> {name} </>\n const markdown = <MarkdownSynapse ownerId={ownerId} wikiId={wikiId} />\n return <ExpandableContent key={name} title={title} content={markdown} />\n })}\n </div>\n )\n}\n"],"mappings":";;;;AAQA,SAAwB,EAAgB,EAAE,WAA8B;CACtE,OACE,kBAAC,OAAD;EAAK,WAAU;YACZ,EAAK,KAAK,EAAE,SAAM,YAAS,gBAGnB,kBAAC,GAAD;GAAqC,OAF9B,kBAAA,GAAA,EAAA,UAAA;IAAE;IAAE;IAAK;GAAG,EAAA,CAEkB;GAAO,SADlC,kBAAC,GAAD;IAA0B;IAAiB;GAAS,CACT;EAAW,GAAxC,CAAwC,CACxE;CACE,CAAA;AAET"}
@@ -8,19 +8,16 @@ import i from "./Resources.Desktop.js";
8
8
  import a from "./Resources.Mobile.js";
9
9
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
10
10
  //#region src/components/Resources/Resources.tsx
11
- var c = /* @__PURE__ */ function(e) {
12
- return e.NAME = "Name", e.WIKI = "Wiki", e;
13
- }(c || {});
14
- function l(l) {
15
- let { entityId: u } = l, d = t(), { data: f, error: p } = r({
11
+ function c(c) {
12
+ let { entityId: l } = c, u = t(), { data: d, error: f } = r({
16
13
  concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
17
- entityId: u,
14
+ entityId: l,
18
15
  partMask: 5,
19
- query: { sql: `SELECT Name, Wiki FROM ${u} ORDER BY ItemOrder` }
20
- }), m = n(c.NAME, f), h = n(c.WIKI, f), g = f?.queryResult?.queryResults.rows.map((e) => {
16
+ query: { sql: `SELECT Name, Wiki FROM ${l} ORDER BY ItemOrder` }
17
+ }), p = n("Name", d), m = n("Wiki", d), h = d?.queryResult?.queryResults.rows.map((e) => {
21
18
  let t = e.values;
22
19
  t.some((e) => e === null) && console.warn("Row has null value(s) when no nulls expected");
23
- let n = t[m], r = (t[h] ?? "").split("/");
20
+ let n = t[p], r = (t[m] ?? "").split("/");
24
21
  return {
25
22
  name: n,
26
23
  ownerId: r[0],
@@ -29,10 +26,10 @@ function l(l) {
29
26
  }) ?? [];
30
27
  return /* @__PURE__ */ s("div", {
31
28
  className: "Resources",
32
- children: [/* @__PURE__ */ o(e, { error: p }), o(d ? i : a, { data: g })]
29
+ children: [/* @__PURE__ */ o(e, { error: f }), o(u ? i : a, { data: h })]
33
30
  });
34
31
  }
35
32
  //#endregion
36
- export { l as Resources, l as default };
33
+ export { c as Resources, c as default };
37
34
 
38
35
  //# sourceMappingURL=Resources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resources.js","names":[],"sources":["../../../src/components/Resources/Resources.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport ResourcesDesktop from './Resources.Desktop'\nimport ResourcesMobile from './Resources.Mobile'\n\nexport type ResourcesProps = {\n entityId: string\n}\n\nenum ExpectedColumns {\n NAME = 'Name',\n WIKI = 'Wiki',\n}\n\nexport type Data = {\n name: string\n ownerId: string\n wikiId: string\n}[]\n\nexport function Resources(props: ResourcesProps) {\n const { entityId } = props\n const showDesktop = useShowDesktop()\n\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `SELECT Name, Wiki FROM ${entityId} ORDER BY ItemOrder`,\n },\n }\n const { data: queryResultBundle, error } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const nameIndex = getFieldIndex(ExpectedColumns.NAME, queryResultBundle)\n const wikiIndex = getFieldIndex(ExpectedColumns.WIKI, queryResultBundle)\n const data: Data =\n queryResultBundle?.queryResult?.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const name = values[nameIndex]\n const wikiValue = values[wikiIndex] ?? ''\n const split = wikiValue.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n return {\n name,\n ownerId,\n wikiId,\n }\n }) ?? []\n return (\n <div className=\"Resources\">\n <ErrorBanner error={error} />\n {showDesktop ? (\n <ResourcesDesktop data={data} />\n ) : (\n <ResourcesMobile data={data} />\n )}\n </div>\n )\n}\n\nexport default Resources\n"],"mappings":";;;;;;;;;;AAaA,IAAK,IAAL,yBAAA,GAAA;QACE,EAAA,OAAO,QACP,EAAA,OAAO;EAFJ,KAAA,EAAA,CAGJ;AAQD,SAAgB,EAAU,GAAuB;CAC/C,IAAM,EAAE,gBAAa,GACf,IAAc,GAAgB,EAY9B,EAAE,MAAM,GAAmB,aAC/B,EAAwB;EAVxB,cAAc;EACd;EACA,UACE;EAEF,OAAO,EACL,KAAK,0BAA0B,EAAS,sBACzC;EAGuB,CAAmB,EAEvC,IAAY,EAAc,EAAgB,MAAM,EAAkB,EAClE,IAAY,EAAc,EAAgB,MAAM,EAAkB,EAClE,IACJ,GAAmB,aAAa,aAAa,KAAK,KAAI,MAAM;EAC1D,IAAM,IAAS,EAAG;AAClB,EAAI,EAAO,MAAK,MAAS,MAAU,KAAK,IACtC,QAAQ,KAAK,+CAA+C;EAG9D,IAAM,IAAO,EAAO,IAEd,KADY,EAAO,MAAc,IACf,MAAM,IAAI;AAGlC,SAAO;GACL;GACA,SAJc,EAAM;GAKpB,QAJa,EAAM;GAKpB;GACD,IAAI,EAAE;AACV,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAoB,UAAS,CAAA,EAE3B,EADD,IACE,IAEA,GAFD,EAAwB,SAAQ,CAED,CAE7B"}
1
+ {"version":3,"file":"Resources.js","names":[],"sources":["../../../src/components/Resources/Resources.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport ResourcesDesktop from './Resources.Desktop'\nimport ResourcesMobile from './Resources.Mobile'\n\nexport type ResourcesProps = {\n entityId: string\n}\n\nenum ExpectedColumns {\n NAME = 'Name',\n WIKI = 'Wiki',\n}\n\nexport type Data = {\n name: string\n ownerId: string\n wikiId: string\n}[]\n\nexport function Resources(props: ResourcesProps) {\n const { entityId } = props\n const showDesktop = useShowDesktop()\n\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `SELECT Name, Wiki FROM ${entityId} ORDER BY ItemOrder`,\n },\n }\n const { data: queryResultBundle, error } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const nameIndex = getFieldIndex(ExpectedColumns.NAME, queryResultBundle)\n const wikiIndex = getFieldIndex(ExpectedColumns.WIKI, queryResultBundle)\n const data: Data =\n queryResultBundle?.queryResult?.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const name = values[nameIndex]\n const wikiValue = values[wikiIndex] ?? ''\n const split = wikiValue.split('/')\n const ownerId = split[0]\n const wikiId = split[2]\n return {\n name,\n ownerId,\n wikiId,\n }\n }) ?? []\n return (\n <div className=\"Resources\">\n <ErrorBanner error={error} />\n {showDesktop ? (\n <ResourcesDesktop data={data} />\n ) : (\n <ResourcesMobile data={data} />\n )}\n </div>\n )\n}\n\nexport default Resources\n"],"mappings":";;;;;;;;;;AAwBA,SAAgB,EAAU,GAAuB;CAC/C,IAAM,EAAE,gBAAa,GACf,IAAc,EAAe,GAY7B,EAAE,MAAM,GAAmB,aAC/B,EAAwB;EAVxB,cAAc;EACd;EACA,UACE;EAEF,OAAO,EACL,KAAK,0BAA0B,EAAS,qBAC1C;CAGwB,CAAkB,GAEtC,IAAY,EAAA,QAAoC,CAAiB,GACjE,IAAY,EAAA,QAAoC,CAAiB,GACjE,IACJ,GAAmB,aAAa,aAAa,KAAK,KAAI,MAAM;EAC1D,IAAM,IAAS,EAAG;EAClB,AAAI,EAAO,MAAK,MAAS,MAAU,IAAI,KACrC,QAAQ,KAAK,8CAA8C;EAG7D,IAAM,IAAO,EAAO,IAEd,KADY,EAAO,MAAc,IACf,MAAM,GAAG;EAGjC,OAAO;GACL;GACA,SAJc,EAAM;GAKpB,QAJa,EAAM;EAKrB;CACF,CAAC,KAAK,CAAC;CACT,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD,EAAoB,SAAQ,CAAA,GAE1B,EADD,IACE,IAEA,GAFD,EAAwB,QAAO,CAED,CAE7B;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowDataTable.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTable.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledTableContainer } from '@/components/styled/StyledTableContainer'\nimport { SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SynapseCardLabel } from '../GenericCard'\n\nexport type RowDataTableProps = {\n /** Array of string values corresponding to the data for a row */\n rowData: Array<string | null>\n /** The headers for the columns in the table */\n headers: SelectColumn[]\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n}\n\n/**\n * Displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTable = (props: RowDataTableProps): React.ReactNode => {\n const { columnAliases, columnLinks, headers, rowData, displayedColumns } =\n props\n\n const columns = displayedColumns\n ? headers\n .filter(header => displayedColumns.includes(header.name))\n .map(header => header.name)\n : headers.map(header => header.name)\n\n const labelValueArray: [string, string][] = []\n\n for (let i = 0; i < columns.length; i += 1) {\n const columnName = columns[i]\n const columnIndex = headers.findIndex(header => header.name === columnName)\n const value = columnIndex !== -1 ? rowData[columnIndex] : undefined\n\n // value can be 'null' if column type is of type STRING or '[null]' if column type is of STRING_LIST\n const column = headers[columnIndex]\n const isNullValue = value === 'null'\n const isListType = column.columnType.endsWith('_LIST')\n\n const isEmptyListOrListOfNull = value === '[]' || value === '[null]'\n if (\n typeof value === 'string' &&\n !(isNullValue || (isListType && isEmptyListOrListOfNull))\n ) {\n labelValueArray.push([columnName, value])\n }\n }\n\n return (\n <StyledTableContainer sx={{ width: '100%' }}>\n <table style={{ width: '100%' }}>\n <tbody>\n {labelValueArray?.map(([columnName, value]) => (\n <tr key={columnName}>\n <td style={{ width: '256px' }}>\n <span\n style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: '#333',\n }}\n >\n {columnAliases?.[columnName] ?? columnName}\n </span>\n </td>\n <td>\n <SynapseCardLabel\n value={value}\n columnName={columnName}\n labelLink={columnLinks?.find(\n link => link.matchColumnName === columnName,\n )}\n selectColumns={headers}\n columnModels={undefined}\n isHeader={false}\n rowData={rowData}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </StyledTableContainer>\n )\n}\n\nexport default RowDataTable\n"],"mappings":";;;;;;AAsBA,IAAM,KAAgB,MAA8C;CAClE,IAAM,EAAE,kBAAe,gBAAa,YAAS,YAAS,wBACpD,GAEI,IAAU,IACZ,EACG,QAAO,MAAU,EAAiB,SAAS,EAAO,KAAK,CAAC,CACxD,KAAI,MAAU,EAAO,KAAK,GAC7B,EAAQ,KAAI,MAAU,EAAO,KAAK,EAEhC,IAAsC,EAAE;AAE9C,MAAK,IAAI,IAAI,GAAG,IAAI,EAAQ,QAAQ,KAAK,GAAG;EAC1C,IAAM,IAAa,EAAQ,IACrB,IAAc,EAAQ,WAAU,MAAU,EAAO,SAAS,EAAW,EACrE,IAAQ,MAAgB,KAA4B,KAAA,IAAvB,EAAQ,IAGrC,IAAS,EAAQ,IACjB,IAAc,MAAU,QACxB,IAAa,EAAO,WAAW,SAAS,QAAQ;AAGtD,EACE,OAAO,KAAU,YACjB,EAAE,KAAgB,MAHY,MAAU,QAAQ,MAAU,cAK1D,EAAgB,KAAK,CAAC,GAAY,EAAM,CAAC;;AAI7C,QACE,kBAAC,GAAD;EAAsB,IAAI,EAAE,OAAO,QAAQ;YACzC,kBAAC,SAAD;GAAO,OAAO,EAAE,OAAO,QAAQ;aAC7B,kBAAC,SAAD,EAAA,UACG,GAAiB,KAAK,CAAC,GAAY,OAClC,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,OAAO,EAAE,OAAO,SAAS;cAC3B,kBAAC,QAAD;KACE,OAAO;MACL,UAAU;MACV,YAAY;MACZ,OAAO;MACR;eAEA,IAAgB,MAAe;KAC3B,CAAA;IACJ,CAAA,EACL,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACS;IACK;IACZ,WAAW,GAAa,MACtB,MAAQ,EAAK,oBAAoB,EAClC;IACD,eAAe;IACf,cAAc,KAAA;IACd,UAAU;IACD;IACT,CAAA,EACC,CAAA,CACF,EAAA,EAzBI,EAyBJ,CACL,EACI,CAAA;GACF,CAAA;EACa,CAAA"}
1
+ {"version":3,"file":"RowDataTable.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTable.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledTableContainer } from '@/components/styled/StyledTableContainer'\nimport { SelectColumn } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SynapseCardLabel } from '../GenericCard'\n\nexport type RowDataTableProps = {\n /** Array of string values corresponding to the data for a row */\n rowData: Array<string | null>\n /** The headers for the columns in the table */\n headers: SelectColumn[]\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n}\n\n/**\n * Displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTable = (props: RowDataTableProps): React.ReactNode => {\n const { columnAliases, columnLinks, headers, rowData, displayedColumns } =\n props\n\n const columns = displayedColumns\n ? headers\n .filter(header => displayedColumns.includes(header.name))\n .map(header => header.name)\n : headers.map(header => header.name)\n\n const labelValueArray: [string, string][] = []\n\n for (let i = 0; i < columns.length; i += 1) {\n const columnName = columns[i]\n const columnIndex = headers.findIndex(header => header.name === columnName)\n const value = columnIndex !== -1 ? rowData[columnIndex] : undefined\n\n // value can be 'null' if column type is of type STRING or '[null]' if column type is of STRING_LIST\n const column = headers[columnIndex]\n const isNullValue = value === 'null'\n const isListType = column.columnType.endsWith('_LIST')\n\n const isEmptyListOrListOfNull = value === '[]' || value === '[null]'\n if (\n typeof value === 'string' &&\n !(isNullValue || (isListType && isEmptyListOrListOfNull))\n ) {\n labelValueArray.push([columnName, value])\n }\n }\n\n return (\n <StyledTableContainer sx={{ width: '100%' }}>\n <table style={{ width: '100%' }}>\n <tbody>\n {labelValueArray?.map(([columnName, value]) => (\n <tr key={columnName}>\n <td style={{ width: '256px' }}>\n <span\n style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: '#333',\n }}\n >\n {columnAliases?.[columnName] ?? columnName}\n </span>\n </td>\n <td>\n <SynapseCardLabel\n value={value}\n columnName={columnName}\n labelLink={columnLinks?.find(\n link => link.matchColumnName === columnName,\n )}\n selectColumns={headers}\n columnModels={undefined}\n isHeader={false}\n rowData={rowData}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </StyledTableContainer>\n )\n}\n\nexport default RowDataTable\n"],"mappings":";;;;;;AAsBA,IAAM,KAAgB,MAA8C;CAClE,IAAM,EAAE,kBAAe,gBAAa,YAAS,YAAS,wBACpD,GAEI,IAAU,IACZ,EACG,QAAO,MAAU,EAAiB,SAAS,EAAO,IAAI,CAAC,EACvD,KAAI,MAAU,EAAO,IAAI,IAC5B,EAAQ,KAAI,MAAU,EAAO,IAAI,GAE/B,IAAsC,CAAC;CAE7C,KAAK,IAAI,IAAI,GAAG,IAAI,EAAQ,QAAQ,KAAK,GAAG;EAC1C,IAAM,IAAa,EAAQ,IACrB,IAAc,EAAQ,WAAU,MAAU,EAAO,SAAS,CAAU,GACpE,IAAQ,MAAgB,KAA4B,KAAA,IAAvB,EAAQ,IAGrC,IAAS,EAAQ,IACjB,IAAc,MAAU,QACxB,IAAa,EAAO,WAAW,SAAS,OAAO;EAGrD,AACE,OAAO,KAAU,YACjB,EAAE,KAAgB,MAHY,MAAU,QAAQ,MAAU,cAK1D,EAAgB,KAAK,CAAC,GAAY,CAAK,CAAC;CAE5C;CAEA,OACE,kBAAC,GAAD;EAAsB,IAAI,EAAE,OAAO,OAAO;YACxC,kBAAC,SAAD;GAAO,OAAO,EAAE,OAAO,OAAO;aAC5B,kBAAC,SAAD,EAAA,UACG,GAAiB,KAAK,CAAC,GAAY,OAClC,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,OAAO,EAAE,OAAO,QAAQ;cAC1B,kBAAC,QAAD;KACE,OAAO;MACL,UAAU;MACV,YAAY;MACZ,OAAO;KACT;eAEC,IAAgB,MAAe;IAC5B,CAAA;GACJ,CAAA,GACJ,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACS;IACK;IACZ,WAAW,GAAa,MACtB,MAAQ,EAAK,oBAAoB,CACnC;IACA,eAAe;IACf,cAAc,KAAA;IACd,UAAU;IACD;GACV,CAAA,EACC,CAAA,CACF,EAAA,GAzBK,CAyBL,CACL,EACI,CAAA;EACF,CAAA;CACa,CAAA;AAE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowDataTableWithQuery.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTableWithQuery.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SkeletonTable } from '../Skeleton'\nimport RowDataTable from './RowDataTable'\n\nexport type RowDataTableWithQueryProps = {\n /** The query used to retrieve data */\n query: Query\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n}\n\n/**\n * For the first row returned by the query, displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTableWithQuery = (\n props: RowDataTableWithQueryProps,\n): React.ReactNode => {\n const { columnAliases, columnLinks, query, displayedColumns } = props\n const entityId = parseEntityIdFromSqlStatement(query.sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query,\n }\n\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const rowData =\n queryResultBundle?.queryResult!.queryResults.rows[0].values ?? []\n const headers = queryResultBundle?.queryResult!.queryResults.headers ?? []\n\n if (isLoading) return <SkeletonTable numRows={6} numCols={1} />\n\n return (\n <RowDataTable\n columnAliases={columnAliases}\n columnLinks={columnLinks}\n rowData={rowData}\n headers={headers}\n displayedColumns={displayedColumns}\n />\n )\n}\n\nexport default RowDataTableWithQuery\n"],"mappings":";;;;;;;;;;AA0BA,IAAM,KACJ,MACoB;CACpB,IAAM,EAAE,kBAAe,gBAAa,UAAO,wBAAqB,GAU1D,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EAPxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,EAAM,IAKnD;EACA;EAIwB,CAAmB,EAEvC,IACJ,GAAmB,YAAa,aAAa,KAAK,GAAG,UAAU,EAAE,EAC7D,IAAU,GAAmB,YAAa,aAAa,WAAW,EAAE;AAI1E,QAFI,IAAkB,kBAAC,GAAD;EAAe,SAAS;EAAG,SAAS;EAAK,CAAA,GAG7D,kBAAC,GAAD;EACiB;EACF;EACJ;EACA;EACS;EAClB,CAAA"}
1
+ {"version":3,"file":"RowDataTableWithQuery.js","names":[],"sources":["../../../src/components/RowDataTable/RowDataTableWithQuery.tsx"],"sourcesContent":["import React from 'react'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport {\n BUNDLE_MASK_QUERY_RESULTS,\n BUNDLE_MASK_QUERY_SELECT_COLUMNS,\n} from '@/utils/SynapseConstants'\nimport { Query, QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { LabelLinkConfig } from '../CardContainerLogic'\nimport { SkeletonTable } from '../Skeleton'\nimport RowDataTable from './RowDataTable'\n\nexport type RowDataTableWithQueryProps = {\n /** The query used to retrieve data */\n query: Query\n /** Optional list of column names whose data should be displayed in the table. If not provided, all columns with data will be shown. */\n displayedColumns?: string[]\n /** Optional display value overrides for column names */\n columnAliases?: Record<string, string>\n /** Optional configuration for linking columns */\n columnLinks?: LabelLinkConfig\n}\n\n/**\n * For the first row returned by the query, displays a table of column names and Synapse Table row data represented as key/value pairs\n */\nconst RowDataTableWithQuery = (\n props: RowDataTableWithQueryProps,\n): React.ReactNode => {\n const { columnAliases, columnLinks, query, displayedColumns } = props\n const entityId = parseEntityIdFromSqlStatement(query.sql)\n\n const queryBundleRequest: QueryBundleRequest = {\n partMask: BUNDLE_MASK_QUERY_SELECT_COLUMNS | BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n query,\n }\n\n const { data: queryResultBundle, isLoading } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const rowData =\n queryResultBundle?.queryResult!.queryResults.rows[0].values ?? []\n const headers = queryResultBundle?.queryResult!.queryResults.headers ?? []\n\n if (isLoading) return <SkeletonTable numRows={6} numCols={1} />\n\n return (\n <RowDataTable\n columnAliases={columnAliases}\n columnLinks={columnLinks}\n rowData={rowData}\n headers={headers}\n displayedColumns={displayedColumns}\n />\n )\n}\n\nexport default RowDataTableWithQuery\n"],"mappings":";;;;;;;;;;AA0BA,IAAM,KACJ,MACoB;CACpB,IAAM,EAAE,kBAAe,gBAAa,UAAO,wBAAqB,GAU1D,EAAE,MAAM,GAAmB,iBAC/B,EAAwB;EAPxB,UAAA;EACA,cAAc;EACd,UALe,EAA8B,EAAM,GAKnD;EACA;CAIwB,CAAkB,GAEtC,IACJ,GAAmB,YAAa,aAAa,KAAK,GAAG,UAAU,CAAC,GAC5D,IAAU,GAAmB,YAAa,aAAa,WAAW,CAAC;CAIzE,OAFI,IAAkB,kBAAC,GAAD;EAAe,SAAS;EAAG,SAAS;CAAI,CAAA,IAG5D,kBAAC,GAAD;EACiB;EACF;EACJ;EACA;EACS;CACnB,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"RssFeedCards.js","names":[],"sources":["../../../src/components/RssFeedCards/RssFeedCards.tsx"],"sourcesContent":["import NoData from '@/assets/icons/NoData'\nimport { ReactComponent as SubscribePlus } from '@/assets/icons/subscribe_plus.svg'\nimport LargeButton from '@/components/styled/LargeButton'\nimport dayjs from 'dayjs'\nimport { Component } from 'react'\nimport MailchimpSubscribe from 'react-mailchimp-subscribe'\nimport Parser from 'rss-parser'\n\nconst rssParser = new Parser()\ntype RssState = {\n rssFeed: any\n isLoadingError: boolean\n isShowingSubscribeUI: boolean\n allItemsUrl?: string\n}\n\nexport type RssFilter = {\n type?: 'tag' | 'category'\n value: string\n}\n\nexport type RssFeedCardsProps = {\n url: string\n filter?: RssFilter // optional tag or category to use as a filter\n itemsToShow: number\n allowCategories?: string[]\n mailChimpListName?: string\n mailChimpUrl?: string\n viewAllNewsButtonText?: string\n}\nexport class RssFeedCards extends Component<RssFeedCardsProps, RssState> {\n // only update the state if this component is mounted\n _isMounted = false\n\n constructor(props: RssFeedCardsProps) {\n super(props)\n this.state = {\n rssFeed: {},\n isLoadingError: false,\n isShowingSubscribeUI: false,\n }\n }\n\n componentDidMount() {\n this._isMounted = true\n const { url, filter } = this.props\n const filterValue = filter?.value\n const filterType = filter?.type\n const tagPath = filterValue\n ? `/${filterType ?? 'tag'}/${filterValue.replace(' ', '-')}`\n : ''\n const allItems = `${url}${tagPath}`\n const feedUrl = `${allItems}/?feed=rss2`\n fetch(feedUrl)\n .then(response => response.text())\n .then(responseData => rssParser.parseString(responseData))\n .then(rss => {\n if (this._isMounted) {\n this.setState({ rssFeed: rss, allItemsUrl: allItems })\n }\n })\n .catch(err => {\n if (this._isMounted) {\n this.setState({ isLoadingError: true })\n }\n })\n }\n\n componentWillUnmount() {\n this._isMounted = false\n }\n\n public onClickSubscribe = () => {\n this.setState({ isShowingSubscribeUI: true })\n }\n\n render() {\n const { viewAllNewsButtonText } = this.props\n\n if (this.state.rssFeed.items?.length === 0) {\n return (\n <div className=\"text-center SRCBorderedPanel SRCBorderedPanel--padded2x\">\n {NoData}\n <div style={{ marginTop: '20px', fontStyle: 'italic' }}>\n There are no items currently available\n </div>\n </div>\n )\n }\n return (\n <>\n {this.props.mailChimpUrl && (\n <div className=\"FeedSubscribe\">\n {!this.state.isShowingSubscribeUI && (\n <a\n className=\"FeedSubscribeToNewsLink SRC-no-border-bottom-imp\"\n onClick={this.onClickSubscribe}\n >\n <SubscribePlus title=\"Subscribe to News\" />\n Subscribe to News\n </a>\n )}\n {this.state.isShowingSubscribeUI && (\n <div className=\"MailchimpSubscribeContainer\">\n <SubscribePlus title=\"Subscribe to News\" />\n <p>\n Subscribe to receive the {this.props.mailChimpListName} by\n e-mail, which provides information and updates related to the\n Portal. You can opt out at any time by using the unsubscribe\n link within the e-mail. We will not share your information\n with any third parties or use it for any other purposes.\n </p>\n <div className=\"SRC-marginBottomTop\">\n <MailchimpSubscribe url={this.props.mailChimpUrl} />\n </div>\n </div>\n )}\n </div>\n )}\n <div className=\"Feed\">\n <div className=\"FeedItems\">\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.map((item: any, index: any) => {\n // The other is to hide the large number of items in a particular feed (usually a max of 10 are returned). See state.isShowingMoreItems\n if (index >= this.props.itemsToShow) {\n return\n }\n\n return (\n <div key={item.guid} className={`FeedItem`}>\n <div>\n {this.props.allowCategories &&\n this.props.allowCategories.length > 0 && (\n <div className=\"FeedItemCategories\">\n {item['categories'].map((categoryName: string) => {\n // are we allowed to show this category/tag?\n const categoryNameLowerCase =\n categoryName.toLowerCase()\n const allowCategories = this.props.allowCategories\n if (\n allowCategories?.findIndex(\n item =>\n categoryNameLowerCase ===\n item.toLowerCase(),\n ) === -1\n )\n return <></>\n // else\n return (\n <a\n href={`${\n this.state.rssFeed.link\n }/tag/${categoryName.replace(' ', '-')}`}\n className=\"SRC-no-border-bottom-imp\"\n key={`${item.guid}_${categoryName}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div className=\"FeedItemCategory\">\n {categoryName}\n </div>\n </a>\n )\n })}\n </div>\n )}\n <p className=\"FeedItemDate\">\n {dayjs(item['isoDate']).format('MMMM YYYY')}\n </p>\n <p className=\"FeedItemTitle\">{item['title']}</p>\n <div className=\"FeedItemDescription\">\n {item['contentSnippet'].replace(/\\[...\\]|\\[…\\]/gm, '…')}\n </div>\n <a\n className=\"FeedItemLink\"\n href={item['link']}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Continue reading\n </a>\n </div>\n </div>\n )\n })}\n </div>\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.length > this.props.itemsToShow &&\n this.state.allItemsUrl && (\n <div className=\"FeedViewAllNewsButtonContainer\">\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n onClick={() =>\n window.open(this.state.allItemsUrl, '_blank', 'noopener')\n }\n // @ts-expect-error - target prop exists, but TS doesn't recognize on styled component\n target=\"_blank\"\n >\n {viewAllNewsButtonText ?? 'View All News'}\n </LargeButton>\n </div>\n )}\n {this.state.isLoadingError && (\n <div>Unable to load feed: {this.props.url}</div>\n )}\n </div>\n </>\n )\n }\n}\n\nexport default RssFeedCards\n"],"mappings":";;;;;;;;;AAQA,IAAM,IAAY,IAAI,GAAQ,EAsBjB,IAAb,cAAkC,EAAuC;CAEvE,aAAa;CAEb,YAAY,GAA0B;AAEpC,EADA,MAAM,EAAM,EACZ,KAAK,QAAQ;GACX,SAAS,EAAE;GACX,gBAAgB;GAChB,sBAAsB;GACvB;;CAGH,oBAAoB;AAClB,OAAK,aAAa;EAClB,IAAM,EAAE,QAAK,cAAW,KAAK,OACvB,IAAc,GAAQ,OACtB,IAAa,GAAQ,MAIrB,IAAW,GAAG,IAHJ,IACZ,IAAI,KAAc,MAAM,GAAG,EAAY,QAAQ,KAAK,IAAI,KACxD,MAEE,IAAU,GAAG,EAAS;AAC5B,QAAM,EAAQ,CACX,MAAK,MAAY,EAAS,MAAM,CAAC,CACjC,MAAK,MAAgB,EAAU,YAAY,EAAa,CAAC,CACzD,MAAK,MAAO;AACX,GAAI,KAAK,cACP,KAAK,SAAS;IAAE,SAAS;IAAK,aAAa;IAAU,CAAC;IAExD,CACD,OAAM,MAAO;AACZ,GAAI,KAAK,cACP,KAAK,SAAS,EAAE,gBAAgB,IAAM,CAAC;IAEzC;;CAGN,uBAAuB;AACrB,OAAK,aAAa;;CAGpB,yBAAgC;AAC9B,OAAK,SAAS,EAAE,sBAAsB,IAAM,CAAC;;CAG/C,SAAS;EACP,IAAM,EAAE,6BAA0B,KAAK;AAYvC,SAVI,KAAK,MAAM,QAAQ,OAAO,WAAW,IAErC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GACD,kBAAC,OAAD;IAAK,OAAO;KAAE,WAAW;KAAQ,WAAW;KAAU;cAAE;IAElD,CAAA,CACF;OAIR,kBAAA,GAAA,EAAA,UAAA,CACG,KAAK,MAAM,gBACV,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,CAAC,KAAK,MAAM,wBACX,kBAAC,KAAD;IACE,WAAU;IACV,SAAS,KAAK;cAFhB,CAIE,kBAAC,GAAD,EAAe,OAAM,qBAAsB,CAAA,EAAA,oBAEzC;OAEL,KAAK,MAAM,wBACV,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAe,OAAM,qBAAsB,CAAA;KAC3C,kBAAC,KAAD,EAAA,UAAA;MAAG;MACyB,KAAK,MAAM;MAAkB;MAKrD,EAAA,CAAA;KACJ,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD,EAAoB,KAAK,KAAK,MAAM,cAAgB,CAAA;MAChD,CAAA;KACF;MAEJ;MAER,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eACZ,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,KAAK,GAAW,MAAe;AAElD,iBAAS,KAAK,MAAM,aAIxB,QACE,kBAAC,OAAD;OAAqB,WAAW;iBAC9B,kBAAC,OAAD,EAAA,UAAA;QACG,KAAK,MAAM,mBACV,KAAK,MAAM,gBAAgB,SAAS,KAClC,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,WAAc,KAAK,MAAyB;UAEhD,IAAM,IACJ,EAAa,aAAa;AAW5B,iBAVwB,KAAK,MAAM,iBAEhB,WACf,MACE,MACA,EAAK,aAAa,CACrB,KAAK,KAEC,kBAAA,GAAA,EAAK,CAAA,GAGZ,kBAAC,KAAD;WACE,MAAM,GACJ,KAAK,MAAM,QAAQ,KACpB,OAAO,EAAa,QAAQ,KAAK,IAAI;WACtC,WAAU;WAEV,QAAO;WACP,KAAI;qBAEJ,kBAAC,OAAD;YAAK,WAAU;sBACZ;YACG,CAAA;WACJ,EAPG,GAAG,EAAK,KAAK,GAAG,IAOnB;WAEN;SACE,CAAA;QAEV,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAM,EAAK,QAAW,CAAC,OAAO,YAAY;SACzC,CAAA;QACJ,kBAAC,KAAD;SAAG,WAAU;mBAAiB,EAAK;SAAa,CAAA;QAChD,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,eAAkB,QAAQ,mBAAmB,IAAI;SACnD,CAAA;QACN,kBAAC,KAAD;SACE,WAAU;SACV,MAAM,EAAK;SACX,QAAO;SACP,KAAI;mBACL;SAEG,CAAA;QACA,EAAA,CAAA;OACF,EArDI,EAAK,KAqDT;OAER;KACA,CAAA;IACL,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,SAAS,KAAK,MAAM,eAC7C,KAAK,MAAM,eACT,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACE,OAAM;MACN,SAAQ;MACR,eACE,OAAO,KAAK,KAAK,MAAM,aAAa,UAAU,WAAW;MAG3D,QAAO;gBAEN,KAAyB;MACd,CAAA;KACV,CAAA;IAET,KAAK,MAAM,kBACV,kBAAC,OAAD,EAAA,UAAA,CAAK,yBAAsB,KAAK,MAAM,IAAU,EAAA,CAAA;IAE9C;KACL,EAAA,CAAA"}
1
+ {"version":3,"file":"RssFeedCards.js","names":[],"sources":["../../../src/components/RssFeedCards/RssFeedCards.tsx"],"sourcesContent":["import NoData from '@/assets/icons/NoData'\nimport { ReactComponent as SubscribePlus } from '@/assets/icons/subscribe_plus.svg'\nimport LargeButton from '@/components/styled/LargeButton'\nimport dayjs from 'dayjs'\nimport { Component } from 'react'\nimport MailchimpSubscribe from 'react-mailchimp-subscribe'\nimport Parser from 'rss-parser'\n\nconst rssParser = new Parser()\ntype RssState = {\n rssFeed: any\n isLoadingError: boolean\n isShowingSubscribeUI: boolean\n allItemsUrl?: string\n}\n\nexport type RssFilter = {\n type?: 'tag' | 'category'\n value: string\n}\n\nexport type RssFeedCardsProps = {\n url: string\n filter?: RssFilter // optional tag or category to use as a filter\n itemsToShow: number\n allowCategories?: string[]\n mailChimpListName?: string\n mailChimpUrl?: string\n viewAllNewsButtonText?: string\n}\nexport class RssFeedCards extends Component<RssFeedCardsProps, RssState> {\n // only update the state if this component is mounted\n _isMounted = false\n\n constructor(props: RssFeedCardsProps) {\n super(props)\n this.state = {\n rssFeed: {},\n isLoadingError: false,\n isShowingSubscribeUI: false,\n }\n }\n\n componentDidMount() {\n this._isMounted = true\n const { url, filter } = this.props\n const filterValue = filter?.value\n const filterType = filter?.type\n const tagPath = filterValue\n ? `/${filterType ?? 'tag'}/${filterValue.replace(' ', '-')}`\n : ''\n const allItems = `${url}${tagPath}`\n const feedUrl = `${allItems}/?feed=rss2`\n fetch(feedUrl)\n .then(response => response.text())\n .then(responseData => rssParser.parseString(responseData))\n .then(rss => {\n if (this._isMounted) {\n this.setState({ rssFeed: rss, allItemsUrl: allItems })\n }\n })\n .catch(err => {\n if (this._isMounted) {\n this.setState({ isLoadingError: true })\n }\n })\n }\n\n componentWillUnmount() {\n this._isMounted = false\n }\n\n public onClickSubscribe = () => {\n this.setState({ isShowingSubscribeUI: true })\n }\n\n render() {\n const { viewAllNewsButtonText } = this.props\n\n if (this.state.rssFeed.items?.length === 0) {\n return (\n <div className=\"text-center SRCBorderedPanel SRCBorderedPanel--padded2x\">\n {NoData}\n <div style={{ marginTop: '20px', fontStyle: 'italic' }}>\n There are no items currently available\n </div>\n </div>\n )\n }\n return (\n <>\n {this.props.mailChimpUrl && (\n <div className=\"FeedSubscribe\">\n {!this.state.isShowingSubscribeUI && (\n <a\n className=\"FeedSubscribeToNewsLink SRC-no-border-bottom-imp\"\n onClick={this.onClickSubscribe}\n >\n <SubscribePlus title=\"Subscribe to News\" />\n Subscribe to News\n </a>\n )}\n {this.state.isShowingSubscribeUI && (\n <div className=\"MailchimpSubscribeContainer\">\n <SubscribePlus title=\"Subscribe to News\" />\n <p>\n Subscribe to receive the {this.props.mailChimpListName} by\n e-mail, which provides information and updates related to the\n Portal. You can opt out at any time by using the unsubscribe\n link within the e-mail. We will not share your information\n with any third parties or use it for any other purposes.\n </p>\n <div className=\"SRC-marginBottomTop\">\n <MailchimpSubscribe url={this.props.mailChimpUrl} />\n </div>\n </div>\n )}\n </div>\n )}\n <div className=\"Feed\">\n <div className=\"FeedItems\">\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.map((item: any, index: any) => {\n // The other is to hide the large number of items in a particular feed (usually a max of 10 are returned). See state.isShowingMoreItems\n if (index >= this.props.itemsToShow) {\n return\n }\n\n return (\n <div key={item.guid} className={`FeedItem`}>\n <div>\n {this.props.allowCategories &&\n this.props.allowCategories.length > 0 && (\n <div className=\"FeedItemCategories\">\n {item['categories'].map((categoryName: string) => {\n // are we allowed to show this category/tag?\n const categoryNameLowerCase =\n categoryName.toLowerCase()\n const allowCategories = this.props.allowCategories\n if (\n allowCategories?.findIndex(\n item =>\n categoryNameLowerCase ===\n item.toLowerCase(),\n ) === -1\n )\n return <></>\n // else\n return (\n <a\n href={`${\n this.state.rssFeed.link\n }/tag/${categoryName.replace(' ', '-')}`}\n className=\"SRC-no-border-bottom-imp\"\n key={`${item.guid}_${categoryName}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <div className=\"FeedItemCategory\">\n {categoryName}\n </div>\n </a>\n )\n })}\n </div>\n )}\n <p className=\"FeedItemDate\">\n {dayjs(item['isoDate']).format('MMMM YYYY')}\n </p>\n <p className=\"FeedItemTitle\">{item['title']}</p>\n <div className=\"FeedItemDescription\">\n {item['contentSnippet'].replace(/\\[...\\]|\\[…\\]/gm, '…')}\n </div>\n <a\n className=\"FeedItemLink\"\n href={item['link']}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Continue reading\n </a>\n </div>\n </div>\n )\n })}\n </div>\n {this.state.rssFeed.items &&\n this.state.rssFeed.items.length > this.props.itemsToShow &&\n this.state.allItemsUrl && (\n <div className=\"FeedViewAllNewsButtonContainer\">\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n onClick={() =>\n window.open(this.state.allItemsUrl, '_blank', 'noopener')\n }\n // @ts-expect-error - target prop exists, but TS doesn't recognize on styled component\n target=\"_blank\"\n >\n {viewAllNewsButtonText ?? 'View All News'}\n </LargeButton>\n </div>\n )}\n {this.state.isLoadingError && (\n <div>Unable to load feed: {this.props.url}</div>\n )}\n </div>\n </>\n )\n }\n}\n\nexport default RssFeedCards\n"],"mappings":";;;;;;;;;AAQA,IAAM,IAAY,IAAI,EAAO,GAsBhB,IAAb,cAAkC,EAAuC;CAEvE,aAAa;CAEb,YAAY,GAA0B;EAEpC,AADA,MAAM,CAAK,GACX,KAAK,QAAQ;GACX,SAAS,CAAC;GACV,gBAAgB;GAChB,sBAAsB;EACxB;CACF;CAEA,oBAAoB;EAClB,KAAK,aAAa;EAClB,IAAM,EAAE,QAAK,cAAW,KAAK,OACvB,IAAc,GAAQ,OACtB,IAAa,GAAQ,MAIrB,IAAW,GAAG,IAHJ,IACZ,IAAI,KAAc,MAAM,GAAG,EAAY,QAAQ,KAAK,GAAG,MACvD,MAEE,IAAU,GAAG,EAAS;EAC5B,MAAM,CAAO,EACV,MAAK,MAAY,EAAS,KAAK,CAAC,EAChC,MAAK,MAAgB,EAAU,YAAY,CAAY,CAAC,EACxD,MAAK,MAAO;GACX,AAAI,KAAK,cACP,KAAK,SAAS;IAAE,SAAS;IAAK,aAAa;GAAS,CAAC;EAEzD,CAAC,EACA,OAAM,MAAO;GACZ,AAAI,KAAK,cACP,KAAK,SAAS,EAAE,gBAAgB,GAAK,CAAC;EAE1C,CAAC;CACL;CAEA,uBAAuB;EACrB,KAAK,aAAa;CACpB;CAEA,yBAAgC;EAC9B,KAAK,SAAS,EAAE,sBAAsB,GAAK,CAAC;CAC9C;CAEA,SAAS;EACP,IAAM,EAAE,6BAA0B,KAAK;EAYvC,OAVI,KAAK,MAAM,QAAQ,OAAO,WAAW,IAErC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,GACD,kBAAC,OAAD;IAAK,OAAO;KAAE,WAAW;KAAQ,WAAW;IAAS;cAAG;GAEnD,CAAA,CACF;OAIP,kBAAA,GAAA,EAAA,UAAA,CACG,KAAK,MAAM,gBACV,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,CAAC,KAAK,MAAM,wBACX,kBAAC,KAAD;IACE,WAAU;IACV,SAAS,KAAK;cAFhB,CAIE,kBAAC,GAAD,EAAe,OAAM,oBAAqB,CAAA,GAAC,mBAE1C;OAEJ,KAAK,MAAM,wBACV,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAe,OAAM,oBAAqB,CAAA;KAC1C,kBAAC,KAAD,EAAA,UAAA;MAAG;MACyB,KAAK,MAAM;MAAkB;KAKtD,EAAA,CAAA;KACH,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD,EAAoB,KAAK,KAAK,MAAM,aAAe,CAAA;KAChD,CAAA;IACF;KAEJ;MAEP,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD;KAAK,WAAU;eACZ,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,KAAK,GAAW,MAAe;MAElD,WAAS,KAAK,MAAM,cAIxB,OACE,kBAAC,OAAD;OAAqB,WAAW;iBAC9B,kBAAC,OAAD,EAAA,UAAA;QACG,KAAK,MAAM,mBACV,KAAK,MAAM,gBAAgB,SAAS,KAClC,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,WAAc,KAAK,MAAyB;UAEhD,IAAM,IACJ,EAAa,YAAY;UAW3B,OAVwB,KAAK,MAAM,iBAEhB,WACf,MACE,MACA,EAAK,YAAY,CACrB,MAAM,KAEC,kBAAA,GAAA,CAAI,CAAA,IAGX,kBAAC,KAAD;WACE,MAAM,GACJ,KAAK,MAAM,QAAQ,KACpB,OAAO,EAAa,QAAQ,KAAK,GAAG;WACrC,WAAU;WAEV,QAAO;WACP,KAAI;qBAEJ,kBAAC,OAAD;YAAK,WAAU;sBACZ;WACE,CAAA;UACJ,GAPI,GAAG,EAAK,KAAK,GAAG,GAOpB;SAEP,CAAC;QACE,CAAA;QAET,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAM,EAAK,OAAU,EAAE,OAAO,WAAW;QACzC,CAAA;QACH,kBAAC,KAAD;SAAG,WAAU;mBAAiB,EAAK;QAAY,CAAA;QAC/C,kBAAC,OAAD;SAAK,WAAU;mBACZ,EAAK,eAAkB,QAAQ,mBAAmB,GAAG;QACnD,CAAA;QACL,kBAAC,KAAD;SACE,WAAU;SACV,MAAM,EAAK;SACX,QAAO;SACP,KAAI;mBACL;QAEE,CAAA;OACA,EAAA,CAAA;MACF,GArDK,EAAK,IAqDV;KAET,CAAC;IACA,CAAA;IACJ,KAAK,MAAM,QAAQ,SAClB,KAAK,MAAM,QAAQ,MAAM,SAAS,KAAK,MAAM,eAC7C,KAAK,MAAM,eACT,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACE,OAAM;MACN,SAAQ;MACR,eACE,OAAO,KAAK,KAAK,MAAM,aAAa,UAAU,UAAU;MAG1D,QAAO;gBAEN,KAAyB;KACf,CAAA;IACV,CAAA;IAER,KAAK,MAAM,kBACV,kBAAC,OAAD,EAAA,UAAA,CAAK,yBAAsB,KAAK,MAAM,GAAS,EAAA,CAAA;GAE9C;IACL,EAAA,CAAA;CAEN;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SageResourcesPopover.js","names":[],"sources":["../../../src/components/SageResourcesPopover/SageResourcesPopover.tsx"],"sourcesContent":["import { useSourceAppConfigs } from '@/utils/hooks'\nimport { Box, Button, Grid, Popover, Typography, useTheme } from '@mui/material'\nimport {\n ColumnSingleValueQueryFilter,\n ColumnSingleValueFilterOperator,\n} from '@sage-bionetworks/synapse-types'\n\nexport type SageResourcesPopoverProps = {\n sourceAppConfigTableID?: string\n anchorEl: HTMLElement | null\n onClose: () => void\n resourceName?: string\n description?: string\n filterByType?: 'SynapsePortal' | 'SageSolution'\n allResourcesUrl?: string\n}\n\nexport function SageResourcesPopover({\n sourceAppConfigTableID = 'syn45291362',\n anchorEl,\n onClose,\n resourceName = 'Portals',\n description = 'Sage Bionetworks builds and supports community portals as tailored platforms for data sharing and collaboration across diverse research areas.',\n filterByType,\n allResourcesUrl,\n}: SageResourcesPopoverProps) {\n const theme = useTheme()\n const open = Boolean(anchorEl)\n const hostname = typeof window !== 'undefined' ? window.location.hostname : ''\n\n const additionalFilters: ColumnSingleValueQueryFilter[] = [\n {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'isPublicized',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: ['true'],\n },\n ]\n if (filterByType) {\n additionalFilters.push({\n isDefiningCondition: false,\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'portalType',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [filterByType],\n })\n }\n const sourceAppConfigs = useSourceAppConfigs(\n sourceAppConfigTableID,\n additionalFilters,\n )\n\n return (\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n sx={{ width: '90%', height: '90%' }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n transformOrigin={{ vertical: 'top', horizontal: 'center' }}\n >\n <Grid container spacing={2} sx={{ p: '24px' }}>\n <Grid size={{ xs: 12, lg: 3 }}>\n <Box sx={{ p: theme.spacing(4), pr: '5px' }}>\n <Typography\n variant=\"headline1\"\n sx={{ fontSize: '30px', pb: '30px', fontWeight: 600 }}\n >\n {resourceName}\n </Typography>\n <Typography variant=\"body1\" sx={{ pb: '10px', fontWeight: 500 }}>\n {description}\n </Typography>\n {allResourcesUrl && (\n <Button\n type=\"button\"\n color=\"primary\"\n variant=\"contained\"\n sx={{\n p: '10px 50px',\n mt: '30px',\n height: '100%',\n '&:hover': { color: 'white' },\n }}\n href={allResourcesUrl}\n >\n See all {resourceName}\n </Button>\n )}\n </Box>\n </Grid>\n\n <Grid size={{ xs: 12, lg: 9 }}>\n <Grid container>\n {sourceAppConfigs\n ?.filter(config => {\n if (config.appURL.toLowerCase().startsWith('http')) {\n const url = new URL(config.appURL)\n return url.hostname !== hostname\n }\n return true\n })\n .map(config => (\n <Grid\n key={config.appId}\n size={{ xs: 12, sm: 6, lg: 4 }}\n className=\"sourceAppItem\"\n sx={{\n p: '30px',\n border: '1px solid #F1F3F5',\n '&:hover': {\n backgroundColor: '#d7dee433',\n cursor: 'pointer',\n },\n }}\n >\n <div\n onClick={() => {\n window.open(config.appURL, '_blank')\n onClose()\n }}\n >\n <Box\n sx={{\n pb: '10px',\n img: {\n maxHeight: '50px',\n height: '50px',\n maxWidth: '100%',\n },\n }}\n >\n {config.logo}\n </Box>\n <Typography variant=\"body1\" sx={{ fontWeight: 500 }}>\n {config.shortDescription}\n </Typography>\n </div>\n </Grid>\n ))}\n </Grid>\n </Grid>\n </Grid>\n </Popover>\n )\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,EAAqB,EACnC,4BAAyB,eACzB,aACA,YACA,kBAAe,WACf,iBAAc,kJACd,iBACA,sBAC4B;CAC5B,IAAM,IAAQ,GAAU,EAClB,IAAO,EAAQ,GACf,IAAW,OAAO,SAAW,MAAc,OAAO,SAAS,WAAW,IAEtE,IAAoD,CACxD;EACE,cACE;EACF,YAAY;EACZ,UAAU,EAAgC;EAC1C,QAAQ,CAAC,OAAO;EACjB,CACF;AACD,CAAI,KACF,EAAkB,KAAK;EACrB,qBAAqB;EACrB,cACE;EACF,YAAY;EACZ,UAAU,EAAgC;EAC1C,QAAQ,CAAC,EAAa;EACvB,CAAC;CAEJ,IAAM,IAAmB,EACvB,GACA,EACD;AAED,QACE,kBAAC,GAAD;EACQ;EACI;EACD;EACT,IAAI;GAAE,OAAO;GAAO,QAAQ;GAAO;EACnC,cAAc;GAAE,UAAU;GAAU,YAAY;GAAU;EAC1D,iBAAiB;GAAE,UAAU;GAAO,YAAY;GAAU;YAE1D,kBAAC,GAAD;GAAM,WAAA;GAAU,SAAS;GAAG,IAAI,EAAE,GAAG,QAAQ;aAA7C,CACE,kBAAC,GAAD;IAAM,MAAM;KAAE,IAAI;KAAI,IAAI;KAAG;cAC3B,kBAAC,GAAD;KAAK,IAAI;MAAE,GAAG,EAAM,QAAQ,EAAE;MAAE,IAAI;MAAO;eAA3C;MACE,kBAAC,GAAD;OACE,SAAQ;OACR,IAAI;QAAE,UAAU;QAAQ,IAAI;QAAQ,YAAY;QAAK;iBAEpD;OACU,CAAA;MACb,kBAAC,GAAD;OAAY,SAAQ;OAAQ,IAAI;QAAE,IAAI;QAAQ,YAAY;QAAK;iBAC5D;OACU,CAAA;MACZ,KACC,kBAAC,GAAD;OACE,MAAK;OACL,OAAM;OACN,SAAQ;OACR,IAAI;QACF,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,WAAW,EAAE,OAAO,SAAS;QAC9B;OACD,MAAM;iBAVR,CAWC,YACU,EACF;;MAEP;;IACD,CAAA,EAEP,kBAAC,GAAD;IAAM,MAAM;KAAE,IAAI;KAAI,IAAI;KAAG;cAC3B,kBAAC,GAAD;KAAM,WAAA;eACH,GACG,QAAO,MACH,EAAO,OAAO,aAAa,CAAC,WAAW,OAAO,GAEzC,IADS,IAAI,EAAO,OACpB,CAAI,aAAa,IAEnB,GACP,CACD,KAAI,MACH,kBAAC,GAAD;MAEE,MAAM;OAAE,IAAI;OAAI,IAAI;OAAG,IAAI;OAAG;MAC9B,WAAU;MACV,IAAI;OACF,GAAG;OACH,QAAQ;OACR,WAAW;QACT,iBAAiB;QACjB,QAAQ;QACT;OACF;gBAED,kBAAC,OAAD;OACE,eAAe;AAEb,QADA,OAAO,KAAK,EAAO,QAAQ,SAAS,EACpC,GAAS;;iBAHb,CAME,kBAAC,GAAD;QACE,IAAI;SACF,IAAI;SACJ,KAAK;UACH,WAAW;UACX,QAAQ;UACR,UAAU;UACX;SACF;kBAEA,EAAO;QACJ,CAAA,EACN,kBAAC,GAAD;QAAY,SAAQ;QAAQ,IAAI,EAAE,YAAY,KAAK;kBAChD,EAAO;QACG,CAAA,CACT;;MACD,EAlCA,EAAO,MAkCP,CACP;KACC,CAAA;IACF,CAAA,CACF;;EACC,CAAA"}
1
+ {"version":3,"file":"SageResourcesPopover.js","names":[],"sources":["../../../src/components/SageResourcesPopover/SageResourcesPopover.tsx"],"sourcesContent":["import { useSourceAppConfigs } from '@/utils/hooks'\nimport { Box, Button, Grid, Popover, Typography, useTheme } from '@mui/material'\nimport {\n ColumnSingleValueQueryFilter,\n ColumnSingleValueFilterOperator,\n} from '@sage-bionetworks/synapse-types'\n\nexport type SageResourcesPopoverProps = {\n sourceAppConfigTableID?: string\n anchorEl: HTMLElement | null\n onClose: () => void\n resourceName?: string\n description?: string\n filterByType?: 'SynapsePortal' | 'SageSolution'\n allResourcesUrl?: string\n}\n\nexport function SageResourcesPopover({\n sourceAppConfigTableID = 'syn45291362',\n anchorEl,\n onClose,\n resourceName = 'Portals',\n description = 'Sage Bionetworks builds and supports community portals as tailored platforms for data sharing and collaboration across diverse research areas.',\n filterByType,\n allResourcesUrl,\n}: SageResourcesPopoverProps) {\n const theme = useTheme()\n const open = Boolean(anchorEl)\n const hostname = typeof window !== 'undefined' ? window.location.hostname : ''\n\n const additionalFilters: ColumnSingleValueQueryFilter[] = [\n {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'isPublicized',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: ['true'],\n },\n ]\n if (filterByType) {\n additionalFilters.push({\n isDefiningCondition: false,\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: 'portalType',\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: [filterByType],\n })\n }\n const sourceAppConfigs = useSourceAppConfigs(\n sourceAppConfigTableID,\n additionalFilters,\n )\n\n return (\n <Popover\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n sx={{ width: '90%', height: '90%' }}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n transformOrigin={{ vertical: 'top', horizontal: 'center' }}\n >\n <Grid container spacing={2} sx={{ p: '24px' }}>\n <Grid size={{ xs: 12, lg: 3 }}>\n <Box sx={{ p: theme.spacing(4), pr: '5px' }}>\n <Typography\n variant=\"headline1\"\n sx={{ fontSize: '30px', pb: '30px', fontWeight: 600 }}\n >\n {resourceName}\n </Typography>\n <Typography variant=\"body1\" sx={{ pb: '10px', fontWeight: 500 }}>\n {description}\n </Typography>\n {allResourcesUrl && (\n <Button\n type=\"button\"\n color=\"primary\"\n variant=\"contained\"\n sx={{\n p: '10px 50px',\n mt: '30px',\n height: '100%',\n '&:hover': { color: 'white' },\n }}\n href={allResourcesUrl}\n >\n See all {resourceName}\n </Button>\n )}\n </Box>\n </Grid>\n\n <Grid size={{ xs: 12, lg: 9 }}>\n <Grid container>\n {sourceAppConfigs\n ?.filter(config => {\n if (config.appURL.toLowerCase().startsWith('http')) {\n const url = new URL(config.appURL)\n return url.hostname !== hostname\n }\n return true\n })\n .map(config => (\n <Grid\n key={config.appId}\n size={{ xs: 12, sm: 6, lg: 4 }}\n className=\"sourceAppItem\"\n sx={{\n p: '30px',\n border: '1px solid #F1F3F5',\n '&:hover': {\n backgroundColor: '#d7dee433',\n cursor: 'pointer',\n },\n }}\n >\n <div\n onClick={() => {\n window.open(config.appURL, '_blank')\n onClose()\n }}\n >\n <Box\n sx={{\n pb: '10px',\n img: {\n maxHeight: '50px',\n height: '50px',\n maxWidth: '100%',\n },\n }}\n >\n {config.logo}\n </Box>\n <Typography variant=\"body1\" sx={{ fontWeight: 500 }}>\n {config.shortDescription}\n </Typography>\n </div>\n </Grid>\n ))}\n </Grid>\n </Grid>\n </Grid>\n </Popover>\n )\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,EAAqB,EACnC,4BAAyB,eACzB,aACA,YACA,kBAAe,WACf,iBAAc,kJACd,iBACA,sBAC4B;CAC5B,IAAM,IAAQ,EAAS,GACjB,IAAO,EAAQ,GACf,IAAW,OAAO,SAAW,MAAc,OAAO,SAAS,WAAW,IAEtE,IAAoD,CACxD;EACE,cACE;EACF,YAAY;EACZ,UAAU,EAAgC;EAC1C,QAAQ,CAAC,MAAM;CACjB,CACF;CACA,AAAI,KACF,EAAkB,KAAK;EACrB,qBAAqB;EACrB,cACE;EACF,YAAY;EACZ,UAAU,EAAgC;EAC1C,QAAQ,CAAC,CAAY;CACvB,CAAC;CAEH,IAAM,IAAmB,EACvB,GACA,CACF;CAEA,OACE,kBAAC,GAAD;EACQ;EACI;EACD;EACT,IAAI;GAAE,OAAO;GAAO,QAAQ;EAAM;EAClC,cAAc;GAAE,UAAU;GAAU,YAAY;EAAS;EACzD,iBAAiB;GAAE,UAAU;GAAO,YAAY;EAAS;YAEzD,kBAAC,GAAD;GAAM,WAAA;GAAU,SAAS;GAAG,IAAI,EAAE,GAAG,OAAO;aAA5C,CACE,kBAAC,GAAD;IAAM,MAAM;KAAE,IAAI;KAAI,IAAI;IAAE;cAC1B,kBAAC,GAAD;KAAK,IAAI;MAAE,GAAG,EAAM,QAAQ,CAAC;MAAG,IAAI;KAAM;eAA1C;MACE,kBAAC,GAAD;OACE,SAAQ;OACR,IAAI;QAAE,UAAU;QAAQ,IAAI;QAAQ,YAAY;OAAI;iBAEnD;MACS,CAAA;MACZ,kBAAC,GAAD;OAAY,SAAQ;OAAQ,IAAI;QAAE,IAAI;QAAQ,YAAY;OAAI;iBAC3D;MACS,CAAA;MACX,KACC,kBAAC,GAAD;OACE,MAAK;OACL,OAAM;OACN,SAAQ;OACR,IAAI;QACF,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,WAAW,EAAE,OAAO,QAAQ;OAC9B;OACA,MAAM;iBAVR,CAWC,YACU,CACH;;KAEP;;GACD,CAAA,GAEN,kBAAC,GAAD;IAAM,MAAM;KAAE,IAAI;KAAI,IAAI;IAAE;cAC1B,kBAAC,GAAD;KAAM,WAAA;eACH,GACG,QAAO,MACH,EAAO,OAAO,YAAY,EAAE,WAAW,MAAM,IAExC,IADS,IAAI,EAAO,MACpB,EAAI,aAAa,IAEnB,EACR,EACA,KAAI,MACH,kBAAC,GAAD;MAEE,MAAM;OAAE,IAAI;OAAI,IAAI;OAAG,IAAI;MAAE;MAC7B,WAAU;MACV,IAAI;OACF,GAAG;OACH,QAAQ;OACR,WAAW;QACT,iBAAiB;QACjB,QAAQ;OACV;MACF;gBAEA,kBAAC,OAAD;OACE,eAAe;QAEb,AADA,OAAO,KAAK,EAAO,QAAQ,QAAQ,GACnC,EAAQ;OACV;iBAJF,CAME,kBAAC,GAAD;QACE,IAAI;SACF,IAAI;SACJ,KAAK;UACH,WAAW;UACX,QAAQ;UACR,UAAU;SACZ;QACF;kBAEC,EAAO;OACL,CAAA,GACL,kBAAC,GAAD;QAAY,SAAQ;QAAQ,IAAI,EAAE,YAAY,IAAI;kBAC/C,EAAO;OACE,CAAA,CACT;;KACD,GAlCC,EAAO,KAkCR,CACP;IACC,CAAA;GACF,CAAA,CACF;;CACC,CAAA;AAEb"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationEditorUtils.js","names":[],"sources":["../../../src/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.ts"],"sourcesContent":["import { AdditionalPropertiesSchemaField } from '@/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField'\nimport {\n englishStringTranslator,\n RJSFValidationError,\n TranslatableString,\n} from '@rjsf/utils'\nimport { JSONSchema7 } from 'json-schema'\nimport { JSONPath } from 'jsonpath-plus'\nimport { flatMap, groupBy, isEmpty, isObject } from 'lodash-es'\n\n/**\n * Generates a JSON schema for the form UI based on the provided validation schema and entity schema base properties.\n *\n * To meet the requirements of the desired form to display, we cannot simply show the validation schema. This is because\n * validation schemas may use conditional logic based on default entity properties (e.g. concreteType) to show/hide fields.\n * This method combines the validation schema with the entity schema base properties to create a new schema that will yield\n * the expected form with desired logic.\n * @param validationSchema\n * @param entitySchema\n */\nexport function getJsonSchemaForForm(\n validationSchema: JSONSchema7 = {},\n entitySchema: JSONSchema7 = {},\n): JSONSchema7 {\n const entitySchemaProperties =\n getPossibleTopLevelPropertiesInObjectSchema(entitySchema)\n\n return {\n $schema: 'http://json-schema.org/draft-07/schema#',\n // Spread the validation schema to ensure all other references are included\n // Top level properties like \"$defs\" get lost if we simply put the entire schema in `allOf`\n ...validationSchema,\n // JSON Schemas for Synapse types use \"definitions\", so it should be manually merged.\n definitions: {\n ...entitySchema.definitions,\n ...validationSchema.definitions,\n },\n allOf: [\n ...(validationSchema.allOf || []),\n // Add in the entity properties\n {\n type: 'object',\n properties: entitySchemaProperties,\n },\n ],\n // Always allow adding additional annotations (though it may violate the validationSchema)\n additionalProperties: true,\n }\n}\n\n/**\n * Generates the UiSchema for the annotations editor.\n * @param entitySchemaBaseProperties\n */\nexport function getUiSchemaForForm(\n entitySchemaBaseProperties: JSONSchema7['properties'] = {},\n) {\n // Each 'base' entity field (id, name, concreteType, etc.) should be hidden\n const uiSchemaWithHiddenEntityProperties = Object.keys(\n entitySchemaBaseProperties,\n ).reduce((prev, curr) => ({ ...prev, [curr]: { 'ui:widget': 'hidden' } }), {})\n\n return {\n ...uiSchemaWithHiddenEntityProperties,\n 'ui:globalOptions': {\n copyable: false, // copy button clutters the UI, is not very useful since schemas are flat objects\n duplicateKeySuffixSeparator: '_', // the default duplicateKeySuffixSeparator creates invalid annotation keys\n },\n additionalProperties: {\n 'ui:field': AdditionalPropertiesSchemaField,\n },\n }\n}\n/**\n * Strips null values from arrays in the provided form data. If the array is empty after\n * removing null values, the key is removed from the form data.\n *\n * This allows users to submit forms with empty array fields (SWC-5762)\n */\nexport function dropNullishArrayValues(\n formData: Record<string, unknown>,\n): Record<string, unknown> {\n const newFormData: Record<string, unknown> = {}\n Object.keys(formData).forEach(key => {\n let value = formData[key]\n if (Array.isArray(value)) {\n value = value.filter((item: any) => item != null)\n if (!isEmpty(value)) {\n newFormData[key] = value\n }\n } else {\n newFormData[key] = value\n }\n })\n return newFormData\n}\n\nexport function dropNullValues(\n formData: Record<string, unknown> = {},\n): Record<string, unknown> {\n return Object.keys(formData).reduce(\n (acc: Record<string, unknown>, key: string) => {\n if (formData[key] !== null) {\n acc[key] = formData[key]\n }\n return acc\n },\n {},\n )\n}\n\n/**\n * Inspects the property of the AjvError and modifies it to be comparable to simple key strings, like entity property keys.\n * @param error\n * @returns\n */\nexport function getFriendlyPropertyName(error: RJSFValidationError): string {\n if (error.property?.startsWith('[')) {\n // Additional properties are surrounded by brackets and quotations, so let's remove them\n return error.property.substring(2, error.property.length - 2)\n } else if (error.property?.startsWith('.')) {\n return error.property.substring(1)\n } else {\n return error.property || ''\n }\n}\n\nexport function transformErrors(\n errors: RJSFValidationError[],\n): RJSFValidationError[] {\n // Transform the errors in the following ways:\n // - Simplify the set of errors when failing to select an enumeration defined with an anyOf (SWC-5724)\n // - Show a custom error message when using a property that collides with an internal entity property (SWC-5678)\n\n // Fixing anyOf errors\n // Group the errors by the property that the error applies to\n const grouped = groupBy(errors, error => error.property)\n Object.keys(grouped).map(property => {\n const errorGroup = grouped[property]\n\n // First, see if it is an anyOf error\n const hasAnyOfError = errorGroup.some(\n e => e.message === 'should match some schema in anyOf',\n )\n\n // We determine if it's an anyOf *enum* error if all error messages in the property match one of these three messages:\n const isEnumError =\n hasAnyOfError &&\n errorGroup.every(error => {\n if (error.message === 'should be string') {\n return true\n } else if (error.message === 'should be equal to constant') {\n return true\n } else if (error.message === 'should match some schema in anyOf') {\n return true\n } else {\n return false\n }\n })\n\n // If it's an anyOf enum error, we just modify the first message and drop the rest\n if (isEnumError && errorGroup.length > 0) {\n errorGroup[0].message = 'should be equal to one of the allowed values'\n grouped[property] = [errorGroup[0]]\n }\n })\n\n // Ungroup the errors after potentially modifying them\n errors = flatMap(grouped)\n\n // Return the transformed errors.\n return errors\n}\n\n/**\n * Custom annotations in Synapse are always arrays. This function converts initial data to be an array type.\n * If the initial data is an array, return the data itself.\n * Otherwise, wrap the data in an array.\n */\nexport function convertToArray<T>(value: T): Array<unknown> {\n if (Array.isArray(value)) {\n return value\n } else {\n return [value]\n }\n}\n\n/**\n * Returns true if the default behavior of the form should be to live validate\n * @param existingAnnotations\n * @param validationSchema\n */\nexport function shouldLiveValidate(\n existingAnnotations: Record<string, unknown> | undefined,\n validationSchema: JSONSchema7 | undefined,\n): boolean {\n const hasExistingAnnotations =\n existingAnnotations && Object.keys(existingAnnotations).length > 0\n return Boolean(hasExistingAnnotations && validationSchema)\n}\n\n/**\n * Returns all possible properties in the schema, including those in nested schemas/definitions. Note that this function\n * only works for 'flat objects', i.e. the schema must\n * - define an object AND\n * - the properties of the object cannot be objects\n * which is compatible with how Synapse Annotations are defined.\n * @param resolvedSchema\n */\nexport function getPossibleTopLevelPropertiesInObjectSchema(\n resolvedSchema: JSONSchema7,\n): JSONSchema7['properties'] {\n const allProperties = {}\n const foundPropertiesObjects = JSONPath({\n path: '$..properties',\n json: resolvedSchema,\n })\n for (const propertiesObject of foundPropertiesObjects) {\n Object.assign(allProperties, propertiesObject)\n }\n // Use the schema.properties to override any properties defined in definitions\n if (isObject(resolvedSchema.properties)) {\n Object.assign(allProperties, resolvedSchema.properties)\n }\n return allProperties\n}\n\n/**\n * Get the Synapse entity schema ID for a particular concrete type.\n * @param concreteType\n */\nexport function getSchemaIdForConcreteType(\n concreteType: string,\n): string | null {\n if (!concreteType || !concreteType.startsWith('org.sagebionetworks')) {\n return null\n }\n // e.g. 'org.sagebionetworks.repo.model.FileEntity' -> 'org.sagebionetworks-repo.model.FileEntity'\n return (\n 'org.sagebionetworks-' +\n concreteType.substring('org.sagebionetworks'.length + 1)\n )\n}\n\n/**\n * Custom string translator for react-jsonschema-form.\n * Overrides the translation for \"NewStringDefault\" by returning an empty string.\n * For all other keys, falls back to the default English string translator.\n *\n * @param stringToTranslate\n * @param params - Optional parameters used to format the translated string.\n * @returns - The translated string.\n */\nexport function customTranslateString(\n stringToTranslate: TranslatableString,\n params?: string[],\n): string {\n switch (stringToTranslate) {\n case TranslatableString.NewStringDefault:\n return ''\n default:\n return englishStringTranslator(stringToTranslate, params)\n }\n}\n"],"mappings":";;;;;AAoBA,SAAgB,EACd,IAAgC,EAAE,EAClC,IAA4B,EAAE,EACjB;CACb,IAAM,IACJ,EAA4C,EAAa;AAE3D,QAAO;EACL,SAAS;EAGT,GAAG;EAEH,aAAa;GACX,GAAG,EAAa;GAChB,GAAG,EAAiB;GACrB;EACD,OAAO,CACL,GAAI,EAAiB,SAAS,EAAE,EAEhC;GACE,MAAM;GACN,YAAY;GACb,CACF;EAED,sBAAsB;EACvB;;AAOH,SAAgB,EACd,IAAwD,EAAE,EAC1D;AAMA,QAAO;EACL,GALyC,OAAO,KAChD,EACD,CAAC,QAAQ,GAAM,OAAU;GAAE,GAAG;IAAO,IAAO,EAAE,aAAa,UAAU;GAAE,GAAG,EAAE,CAGxE;EACH,oBAAoB;GAClB,UAAU;GACV,6BAA6B;GAC9B;EACD,sBAAsB,EACpB,YAAY,GACb;EACF;;AAQH,SAAgB,EACd,GACyB;CACzB,IAAM,IAAuC,EAAE;AAY/C,QAXA,OAAO,KAAK,EAAS,CAAC,SAAQ,MAAO;EACnC,IAAI,IAAQ,EAAS;AACrB,EAAI,MAAM,QAAQ,EAAM,IACtB,IAAQ,EAAM,QAAQ,MAAc,KAAQ,KAAK,EAC5C,EAAQ,EAAM,KACjB,EAAY,KAAO,MAGrB,EAAY,KAAO;GAErB,EACK;;AAGT,SAAgB,EACd,IAAoC,EAAE,EACb;AACzB,QAAO,OAAO,KAAK,EAAS,CAAC,QAC1B,GAA8B,OACzB,EAAS,OAAS,SACpB,EAAI,KAAO,EAAS,KAEf,IAET,EAAE,CACH;;AAQH,SAAgB,EAAwB,GAAoC;AAOxE,QANE,EAAM,UAAU,WAAW,IAAI,GAE1B,EAAM,SAAS,UAAU,GAAG,EAAM,SAAS,SAAS,EAAE,GACpD,EAAM,UAAU,WAAW,IAAI,GACjC,EAAM,SAAS,UAAU,EAAE,GAE3B,EAAM,YAAY;;AAI7B,SAAgB,EACd,GACuB;CAOvB,IAAM,IAAU,EAAQ,IAAQ,MAAS,EAAM,SAAS;AAmCxD,QAlCA,OAAO,KAAK,EAAQ,CAAC,KAAI,MAAY;EACnC,IAAM,IAAa,EAAQ;AAuB3B,EApBsB,EAAW,MAC/B,MAAK,EAAE,YAAY,oCAKnB,IACA,EAAW,OAAM,MACX,EAAM,YAAY,sBAEX,EAAM,YAAY,gCADpB,KAGE,EAAM,YAAY,oCAK7B,IAGe,EAAW,SAAS,MACrC,EAAW,GAAG,UAAU,gDACxB,EAAQ,KAAY,CAAC,EAAW,GAAG;GAErC,EAGF,IAAS,EAAQ,EAAQ,EAGlB;;AAQT,SAAgB,EAAkB,GAA0B;AAIxD,QAHE,MAAM,QAAQ,EAAM,GACf,IAEA,CAAC,EAAM;;AASlB,SAAgB,EACd,GACA,GACS;AAGT,QAAO,GADL,KAAuB,OAAO,KAAK,EAAoB,CAAC,SAAS,KAC1B;;AAW3C,SAAgB,EACd,GAC2B;CAC3B,IAAM,IAAgB,EAAE,EAClB,IAAyB,EAAS;EACtC,MAAM;EACN,MAAM;EACP,CAAC;AACF,MAAK,IAAM,KAAoB,EAC7B,QAAO,OAAO,GAAe,EAAiB;AAMhD,QAHI,EAAS,EAAe,WAAW,IACrC,OAAO,OAAO,GAAe,EAAe,WAAW,EAElD;;AAOT,SAAgB,EACd,GACe;AAKf,QAJI,CAAC,KAAgB,CAAC,EAAa,WAAW,sBAAsB,GAC3D,OAIP,yBACA,EAAa,UAAU,GAAiC;;AAa5D,SAAgB,EACd,GACA,GACQ;AACR,SAAQ,GAAR;EACE,KAAK,EAAmB,iBACtB,QAAO;EACT,QACE,QAAO,EAAwB,GAAmB,EAAO"}
1
+ {"version":3,"file":"AnnotationEditorUtils.js","names":[],"sources":["../../../src/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.ts"],"sourcesContent":["import { AdditionalPropertiesSchemaField } from '@/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField'\nimport {\n englishStringTranslator,\n RJSFValidationError,\n TranslatableString,\n} from '@rjsf/utils'\nimport { JSONSchema7 } from 'json-schema'\nimport { JSONPath } from 'jsonpath-plus'\nimport { flatMap, groupBy, isEmpty, isObject } from 'lodash-es'\n\n/**\n * Generates a JSON schema for the form UI based on the provided validation schema and entity schema base properties.\n *\n * To meet the requirements of the desired form to display, we cannot simply show the validation schema. This is because\n * validation schemas may use conditional logic based on default entity properties (e.g. concreteType) to show/hide fields.\n * This method combines the validation schema with the entity schema base properties to create a new schema that will yield\n * the expected form with desired logic.\n * @param validationSchema\n * @param entitySchema\n */\nexport function getJsonSchemaForForm(\n validationSchema: JSONSchema7 = {},\n entitySchema: JSONSchema7 = {},\n): JSONSchema7 {\n const entitySchemaProperties =\n getPossibleTopLevelPropertiesInObjectSchema(entitySchema)\n\n return {\n $schema: 'http://json-schema.org/draft-07/schema#',\n // Spread the validation schema to ensure all other references are included\n // Top level properties like \"$defs\" get lost if we simply put the entire schema in `allOf`\n ...validationSchema,\n // JSON Schemas for Synapse types use \"definitions\", so it should be manually merged.\n definitions: {\n ...entitySchema.definitions,\n ...validationSchema.definitions,\n },\n allOf: [\n ...(validationSchema.allOf || []),\n // Add in the entity properties\n {\n type: 'object',\n properties: entitySchemaProperties,\n },\n ],\n // Always allow adding additional annotations (though it may violate the validationSchema)\n additionalProperties: true,\n }\n}\n\n/**\n * Generates the UiSchema for the annotations editor.\n * @param entitySchemaBaseProperties\n */\nexport function getUiSchemaForForm(\n entitySchemaBaseProperties: JSONSchema7['properties'] = {},\n) {\n // Each 'base' entity field (id, name, concreteType, etc.) should be hidden\n const uiSchemaWithHiddenEntityProperties = Object.keys(\n entitySchemaBaseProperties,\n ).reduce((prev, curr) => ({ ...prev, [curr]: { 'ui:widget': 'hidden' } }), {})\n\n return {\n ...uiSchemaWithHiddenEntityProperties,\n 'ui:globalOptions': {\n copyable: false, // copy button clutters the UI, is not very useful since schemas are flat objects\n duplicateKeySuffixSeparator: '_', // the default duplicateKeySuffixSeparator creates invalid annotation keys\n },\n additionalProperties: {\n 'ui:field': AdditionalPropertiesSchemaField,\n },\n }\n}\n/**\n * Strips null values from arrays in the provided form data. If the array is empty after\n * removing null values, the key is removed from the form data.\n *\n * This allows users to submit forms with empty array fields (SWC-5762)\n */\nexport function dropNullishArrayValues(\n formData: Record<string, unknown>,\n): Record<string, unknown> {\n const newFormData: Record<string, unknown> = {}\n Object.keys(formData).forEach(key => {\n let value = formData[key]\n if (Array.isArray(value)) {\n value = value.filter((item: any) => item != null)\n if (!isEmpty(value)) {\n newFormData[key] = value\n }\n } else {\n newFormData[key] = value\n }\n })\n return newFormData\n}\n\nexport function dropNullValues(\n formData: Record<string, unknown> = {},\n): Record<string, unknown> {\n return Object.keys(formData).reduce(\n (acc: Record<string, unknown>, key: string) => {\n if (formData[key] !== null) {\n acc[key] = formData[key]\n }\n return acc\n },\n {},\n )\n}\n\n/**\n * Inspects the property of the AjvError and modifies it to be comparable to simple key strings, like entity property keys.\n * @param error\n * @returns\n */\nexport function getFriendlyPropertyName(error: RJSFValidationError): string {\n if (error.property?.startsWith('[')) {\n // Additional properties are surrounded by brackets and quotations, so let's remove them\n return error.property.substring(2, error.property.length - 2)\n } else if (error.property?.startsWith('.')) {\n return error.property.substring(1)\n } else {\n return error.property || ''\n }\n}\n\nexport function transformErrors(\n errors: RJSFValidationError[],\n): RJSFValidationError[] {\n // Transform the errors in the following ways:\n // - Simplify the set of errors when failing to select an enumeration defined with an anyOf (SWC-5724)\n // - Show a custom error message when using a property that collides with an internal entity property (SWC-5678)\n\n // Fixing anyOf errors\n // Group the errors by the property that the error applies to\n const grouped = groupBy(errors, error => error.property)\n Object.keys(grouped).map(property => {\n const errorGroup = grouped[property]\n\n // First, see if it is an anyOf error\n const hasAnyOfError = errorGroup.some(\n e => e.message === 'should match some schema in anyOf',\n )\n\n // We determine if it's an anyOf *enum* error if all error messages in the property match one of these three messages:\n const isEnumError =\n hasAnyOfError &&\n errorGroup.every(error => {\n if (error.message === 'should be string') {\n return true\n } else if (error.message === 'should be equal to constant') {\n return true\n } else if (error.message === 'should match some schema in anyOf') {\n return true\n } else {\n return false\n }\n })\n\n // If it's an anyOf enum error, we just modify the first message and drop the rest\n if (isEnumError && errorGroup.length > 0) {\n errorGroup[0].message = 'should be equal to one of the allowed values'\n grouped[property] = [errorGroup[0]]\n }\n })\n\n // Ungroup the errors after potentially modifying them\n errors = flatMap(grouped)\n\n // Return the transformed errors.\n return errors\n}\n\n/**\n * Custom annotations in Synapse are always arrays. This function converts initial data to be an array type.\n * If the initial data is an array, return the data itself.\n * Otherwise, wrap the data in an array.\n */\nexport function convertToArray<T>(value: T): Array<unknown> {\n if (Array.isArray(value)) {\n return value\n } else {\n return [value]\n }\n}\n\n/**\n * Returns true if the default behavior of the form should be to live validate\n * @param existingAnnotations\n * @param validationSchema\n */\nexport function shouldLiveValidate(\n existingAnnotations: Record<string, unknown> | undefined,\n validationSchema: JSONSchema7 | undefined,\n): boolean {\n const hasExistingAnnotations =\n existingAnnotations && Object.keys(existingAnnotations).length > 0\n return Boolean(hasExistingAnnotations && validationSchema)\n}\n\n/**\n * Returns all possible properties in the schema, including those in nested schemas/definitions. Note that this function\n * only works for 'flat objects', i.e. the schema must\n * - define an object AND\n * - the properties of the object cannot be objects\n * which is compatible with how Synapse Annotations are defined.\n * @param resolvedSchema\n */\nexport function getPossibleTopLevelPropertiesInObjectSchema(\n resolvedSchema: JSONSchema7,\n): JSONSchema7['properties'] {\n const allProperties = {}\n const foundPropertiesObjects = JSONPath({\n path: '$..properties',\n json: resolvedSchema,\n })\n for (const propertiesObject of foundPropertiesObjects) {\n Object.assign(allProperties, propertiesObject)\n }\n // Use the schema.properties to override any properties defined in definitions\n if (isObject(resolvedSchema.properties)) {\n Object.assign(allProperties, resolvedSchema.properties)\n }\n return allProperties\n}\n\n/**\n * Get the Synapse entity schema ID for a particular concrete type.\n * @param concreteType\n */\nexport function getSchemaIdForConcreteType(\n concreteType: string,\n): string | null {\n if (!concreteType || !concreteType.startsWith('org.sagebionetworks')) {\n return null\n }\n // e.g. 'org.sagebionetworks.repo.model.FileEntity' -> 'org.sagebionetworks-repo.model.FileEntity'\n return (\n 'org.sagebionetworks-' +\n concreteType.substring('org.sagebionetworks'.length + 1)\n )\n}\n\n/**\n * Custom string translator for react-jsonschema-form.\n * Overrides the translation for \"NewStringDefault\" by returning an empty string.\n * For all other keys, falls back to the default English string translator.\n *\n * @param stringToTranslate\n * @param params - Optional parameters used to format the translated string.\n * @returns - The translated string.\n */\nexport function customTranslateString(\n stringToTranslate: TranslatableString,\n params?: string[],\n): string {\n switch (stringToTranslate) {\n case TranslatableString.NewStringDefault:\n return ''\n default:\n return englishStringTranslator(stringToTranslate, params)\n }\n}\n"],"mappings":";;;;;AAoBA,SAAgB,EACd,IAAgC,CAAC,GACjC,IAA4B,CAAC,GAChB;CACb,IAAM,IACJ,EAA4C,CAAY;CAE1D,OAAO;EACL,SAAS;EAGT,GAAG;EAEH,aAAa;GACX,GAAG,EAAa;GAChB,GAAG,EAAiB;EACtB;EACA,OAAO,CACL,GAAI,EAAiB,SAAS,CAAC,GAE/B;GACE,MAAM;GACN,YAAY;EACd,CACF;EAEA,sBAAsB;CACxB;AACF;AAMA,SAAgB,EACd,IAAwD,CAAC,GACzD;CAMA,OAAO;EACL,GALyC,OAAO,KAChD,CACF,EAAE,QAAQ,GAAM,OAAU;GAAE,GAAG;IAAO,IAAO,EAAE,aAAa,SAAS;EAAE,IAAI,CAAC,CAGvE;EACH,oBAAoB;GAClB,UAAU;GACV,6BAA6B;EAC/B;EACA,sBAAsB,EACpB,YAAY,EACd;CACF;AACF;AAOA,SAAgB,EACd,GACyB;CACzB,IAAM,IAAuC,CAAC;CAY9C,OAXA,OAAO,KAAK,CAAQ,EAAE,SAAQ,MAAO;EACnC,IAAI,IAAQ,EAAS;EACrB,AAAI,MAAM,QAAQ,CAAK,KACrB,IAAQ,EAAM,QAAQ,MAAc,KAAQ,IAAI,GAC3C,EAAQ,CAAK,MAChB,EAAY,KAAO,MAGrB,EAAY,KAAO;CAEvB,CAAC,GACM;AACT;AAEA,SAAgB,EACd,IAAoC,CAAC,GACZ;CACzB,OAAO,OAAO,KAAK,CAAQ,EAAE,QAC1B,GAA8B,OACzB,EAAS,OAAS,SACpB,EAAI,KAAO,EAAS,KAEf,IAET,CAAC,CACH;AACF;AAOA,SAAgB,EAAwB,GAAoC;CAOxE,OANE,EAAM,UAAU,WAAW,GAAG,IAEzB,EAAM,SAAS,UAAU,GAAG,EAAM,SAAS,SAAS,CAAC,IACnD,EAAM,UAAU,WAAW,GAAG,IAChC,EAAM,SAAS,UAAU,CAAC,IAE1B,EAAM,YAAY;AAE7B;AAEA,SAAgB,EACd,GACuB;CAOvB,IAAM,IAAU,EAAQ,IAAQ,MAAS,EAAM,QAAQ;CAmCvD,OAlCA,OAAO,KAAK,CAAO,EAAE,KAAI,MAAY;EACnC,IAAM,IAAa,EAAQ;EAuB3B,AApBsB,EAAW,MAC/B,MAAK,EAAE,YAAY,mCAKnB,KACA,EAAW,OAAM,MACX,EAAM,YAAY,sBAEX,EAAM,YAAY,gCADpB,KAGE,EAAM,YAAY,mCAK9B,KAGgB,EAAW,SAAS,MACrC,EAAW,GAAG,UAAU,gDACxB,EAAQ,KAAY,CAAC,EAAW,EAAE;CAEtC,CAAC,GAGD,IAAS,EAAQ,CAAO,GAGjB;AACT;AAOA,SAAgB,EAAkB,GAA0B;CAIxD,OAHE,MAAM,QAAQ,CAAK,IACd,IAEA,CAAC,CAAK;AAEjB;AAOA,SAAgB,EACd,GACA,GACS;CAGT,OAAO,GADL,KAAuB,OAAO,KAAK,CAAmB,EAAE,SAAS,KAC1B;AAC3C;AAUA,SAAgB,EACd,GAC2B;CAC3B,IAAM,IAAgB,CAAC,GACjB,IAAyB,EAAS;EACtC,MAAM;EACN,MAAM;CACR,CAAC;CACD,KAAK,IAAM,KAAoB,GAC7B,OAAO,OAAO,GAAe,CAAgB;CAM/C,OAHI,EAAS,EAAe,UAAU,KACpC,OAAO,OAAO,GAAe,EAAe,UAAU,GAEjD;AACT;AAMA,SAAgB,EACd,GACe;CAKf,OAJI,CAAC,KAAgB,CAAC,EAAa,WAAW,qBAAqB,IAC1D,OAIP,yBACA,EAAa,UAAU,EAAgC;AAE3D;AAWA,SAAgB,EACd,GACA,GACQ;CACR,QAAQ,GAAR;EACE,KAAK,EAAmB,kBACtB,OAAO;EACT,SACE,OAAO,EAAwB,GAAmB,CAAM;CAC5D;AACF"}