synapse-react-client 4.0.3 → 4.0.4

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 (305) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +1 -1
  3. package/dist/components/AccessRequirementList/AccessRequirementList.js +4 -4
  4. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
  5. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +8 -7
  6. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
  7. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +4 -4
  8. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js +11 -11
  9. package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js +1 -1
  10. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js +9 -9
  11. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js +5 -5
  12. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.d.ts.map +1 -1
  13. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +33 -32
  14. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  15. package/dist/components/AclEditor/AclEditor.js +8 -8
  16. package/dist/components/AclEditor/AclEditor.js.map +1 -1
  17. package/dist/components/AclEditor/AclEditor.test-utils.js +34 -34
  18. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  19. package/dist/components/Authentication/AuthenticationMethodSelection.js +1 -1
  20. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  21. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +6 -5
  22. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  23. package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
  24. package/dist/components/BasePortalCard/BasePortalCard.module.scss +6 -0
  25. package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +1 -1
  26. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.css +1 -1
  27. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +7 -7
  28. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss +13 -5
  29. package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss.js +5 -5
  30. package/dist/components/CardContainer/CardLink.d.ts +12 -0
  31. package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
  32. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +12 -12
  33. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
  34. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +7 -7
  35. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  36. package/dist/components/CitationPopover/CitationPopoverContent.d.ts.map +1 -1
  37. package/dist/components/CitationPopover/CitationPopoverContent.js +13 -12
  38. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  39. package/dist/components/CookiesNotification/CookiesNotification.js +1 -1
  40. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +3 -4
  41. package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
  42. package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +2 -2
  43. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  44. package/dist/components/DataGrid/SynapseGrid.js +35 -35
  45. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  46. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +2 -2
  47. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.d.ts.map +1 -1
  48. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js +9 -7
  49. package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
  50. package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js +1 -1
  51. package/dist/components/DownloadCart/RequestDownloadCard.js +1 -1
  52. package/dist/components/Ecosystem/EcosystemSkeleton.js +2 -2
  53. package/dist/components/Ecosystem/TableQueryEcosystem.js +1 -1
  54. package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
  55. package/dist/components/EntityAclEditor/OpenData.js +1 -1
  56. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  57. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +113 -127
  58. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  59. package/dist/components/EntityCitation/EntityCitation.js +1 -1
  60. package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
  61. package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js +1 -1
  62. package/dist/components/EntityFinder/details/view/table/EntityNameCell.js +1 -1
  63. package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
  64. package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js +1 -1
  65. package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js +1 -1
  66. package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js +1 -1
  67. package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js +1 -1
  68. package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
  69. package/dist/components/EntityHeaderTable/EntityHeaderTable.d.ts.map +1 -1
  70. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +39 -39
  71. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  72. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts +8 -0
  73. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts.map +1 -0
  74. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js +46 -0
  75. package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -0
  76. package/dist/components/Evaluation/EvaluationCard.d.ts.map +1 -1
  77. package/dist/components/Evaluation/EvaluationCard.js +35 -41
  78. package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
  79. package/dist/components/Evaluation/EvaluationEditor.d.ts.map +1 -1
  80. package/dist/components/Evaluation/EvaluationEditor.js +95 -90
  81. package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
  82. package/dist/components/Evaluation/EvaluationRoundEditor.d.ts.map +1 -1
  83. package/dist/components/Evaluation/EvaluationRoundEditor.js +133 -124
  84. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  85. package/dist/components/FilePreview/EntityPreview.js +1 -1
  86. package/dist/components/Forum/DiscussionReply.js +10 -10
  87. package/dist/components/Forum/DiscussionThread.js +21 -21
  88. package/dist/components/GenericCard/CardUtils.d.ts.map +1 -1
  89. package/dist/components/GenericCard/CardUtils.js +36 -36
  90. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  91. package/dist/components/GenericCard/CollapsibleDescription.js +25 -25
  92. package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
  93. package/dist/components/GenericCard/SynapseCardLabel.js +72 -67
  94. package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
  95. package/dist/components/GenericCard/TableRowGenericCard.d.ts +4 -1
  96. package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
  97. package/dist/components/GenericCard/TableRowGenericCard.js +98 -96
  98. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  99. package/dist/components/GoalsV2/GoalsV2.Desktop.d.ts.map +1 -1
  100. package/dist/components/GoalsV2/GoalsV2.Desktop.js +14 -15
  101. package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
  102. package/dist/components/GoogleAnalytics/GoogleAnalytics.js +1 -1
  103. package/dist/components/HasAccess/HasAccessV2.js +1 -1
  104. package/dist/components/HasAccess/useHasAccess.js +1 -1
  105. package/dist/components/IDUReport/IDUReportSubmissionInfo.js +23 -23
  106. package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
  107. package/dist/components/JSONArrayEditor/useParseCsv.d.ts +1 -1
  108. package/dist/components/JSONArrayEditor/useParseCsv.d.ts.map +1 -1
  109. package/dist/components/JSONArrayEditor/useParseCsv.js +9 -9
  110. package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
  111. package/dist/components/Markdown/MarkdownCollapse.js +7 -7
  112. package/dist/components/Markdown/MarkdownEditor.js +11 -11
  113. package/dist/components/Markdown/MarkdownGithub.js +1 -1
  114. package/dist/components/Markdown/MarkdownPopover.js +6 -6
  115. package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
  116. package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
  117. package/dist/components/Markdown/MarkdownSynapse.js +139 -135
  118. package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
  119. package/dist/components/Markdown/MarkdownUtils.d.ts +8 -0
  120. package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
  121. package/dist/components/Markdown/MarkdownUtils.js +139 -65
  122. package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
  123. package/dist/components/Markdown/UserMentionModal.js +18 -18
  124. package/dist/components/Markdown/UserMentionModal.js.map +1 -1
  125. package/dist/components/Markdown/widget/MarkdownButton.js +3 -3
  126. package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
  127. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.d.ts.map +1 -1
  128. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +9 -8
  129. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  130. package/dist/components/Plot/SynapsePlot.css +1 -0
  131. package/dist/components/Plot/SynapsePlot.d.ts +2 -0
  132. package/dist/components/Plot/SynapsePlot.d.ts.map +1 -1
  133. package/dist/components/Plot/SynapsePlot.js +43 -39
  134. package/dist/components/Plot/SynapsePlot.js.map +1 -1
  135. package/dist/components/Plot/SynapsePlot.scss +8 -0
  136. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +1 -1
  137. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  138. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +114 -113
  139. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  140. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts +1 -1
  141. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts.map +1 -1
  142. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
  143. package/dist/components/Resources/Resources.Desktop.js +7 -7
  144. package/dist/components/Resources/Resources.Mobile.js +6 -6
  145. package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js +3 -3
  146. package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js +10 -10
  147. package/dist/components/SynapseChat/SynapseChatInteraction.js +5 -5
  148. package/dist/components/SynapseForm/WarningDialog.d.ts +1 -0
  149. package/dist/components/SynapseForm/WarningDialog.d.ts.map +1 -1
  150. package/dist/components/SynapseForm/WarningDialog.js +18 -16
  151. package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
  152. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +1 -1
  153. package/dist/components/SynapseSearchPageResults/HasAccessChip.js +1 -1
  154. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.d.ts.map +1 -1
  155. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +12 -13
  156. package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
  157. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +5 -5
  158. package/dist/components/SynapseTable/ExpandableTableDataCell.d.ts.map +1 -1
  159. package/dist/components/SynapseTable/ExpandableTableDataCell.js +3 -1
  160. package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
  161. package/dist/components/SynapseTable/SynapseTable.js +4 -4
  162. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.d.ts.map +1 -1
  163. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js +122 -122
  164. package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
  165. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +5 -5
  166. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  167. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js +1 -1
  168. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +1 -1
  169. package/dist/components/TableFeedCards/TableFeedCards.js +9 -9
  170. package/dist/components/TermsAndConditions/TermsAndConditionsItem.js +10 -10
  171. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +9 -9
  172. package/dist/components/UserSearchBox/UserSearchBox.d.ts +23 -0
  173. package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -0
  174. package/dist/components/UserSearchBox/UserSearchBox.js +146 -0
  175. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -0
  176. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js +13 -13
  177. package/dist/components/WizardChoiceButton/WizardChoiceButton.js +3 -3
  178. package/dist/components/dataaccess/AccessHistoryDashboard.js +5 -5
  179. package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
  180. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  181. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  182. package/dist/components/dataaccess/AccessSubmissionDashboard.js +1 -1
  183. package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  184. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +5 -5
  185. package/dist/components/dataaccess/UseAccessRequirementTable.js +3 -3
  186. package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
  187. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  188. package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +2 -2
  189. package/dist/components/entity/metadata/EntityModal.js +1 -1
  190. package/dist/components/entity/metadata/MetadataTable.js +1 -1
  191. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +1 -1
  192. package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js +1 -1
  193. package/dist/components/entity/page/title_bar/TitleBarProperties.js +1 -1
  194. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
  195. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +27 -26
  196. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  197. package/dist/components/index.js +109 -107
  198. package/dist/components/index.js.map +1 -1
  199. package/dist/components/layout/InfiniteTableLayout.js +1 -1
  200. package/dist/components/styled/HoverPopover.css +1 -0
  201. package/dist/components/styled/HoverPopover.d.ts +28 -0
  202. package/dist/components/styled/HoverPopover.d.ts.map +1 -0
  203. package/dist/components/styled/HoverPopover.js +103 -0
  204. package/dist/components/styled/HoverPopover.js.map +1 -0
  205. package/dist/components/styled/HoverPopover.module.scss +9 -0
  206. package/dist/components/styled/HoverPopover.module.scss.js +10 -0
  207. package/dist/components/styled/HoverPopover.module.scss.js.map +1 -0
  208. package/dist/components/styled/index.d.ts +2 -0
  209. package/dist/components/styled/index.d.ts.map +1 -1
  210. package/dist/components/styled/index.js +11 -9
  211. package/dist/components/styled/index.js.map +1 -1
  212. package/dist/components/table/CsvPreview/CsvPreview.js +2 -2
  213. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +2 -2
  214. package/dist/components/widgets/Range.js +1 -1
  215. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  216. package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -32
  217. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  218. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +1 -1
  219. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  220. package/dist/components/widgets/facet-nav/PlotsContainer.js +69 -68
  221. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  222. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  223. package/dist/components/widgets/facet-nav/useFacetPlots.js +24 -21
  224. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  225. package/dist/components/widgets/query-filter/FacetFilterControls.js +3 -3
  226. package/dist/features/curator/GridPage/GridPage.js +2 -2
  227. package/dist/features/curator/GridPage/components/GridPageTitle.js +2 -2
  228. package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
  229. package/dist/index.js +157 -155
  230. package/dist/index.js.map +1 -1
  231. package/dist/mocks/msw/handlers/accessRequirementHandlers.js +5 -5
  232. package/dist/mocks/msw/handlers/projectStorageHandlers.js +5 -5
  233. package/dist/mocks/msw/handlers/wikiHandlers.js +1 -1
  234. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  235. package/dist/mocks/msw/handlers.js +67 -59
  236. package/dist/mocks/msw/handlers.js.map +1 -1
  237. package/dist/style/base/_core.scss +0 -1
  238. package/dist/style/components/_all.scss +0 -1
  239. package/dist/style/components/_entity-badge.scss +0 -2
  240. package/dist/style/components/_expandable_table_data.scss +3 -3
  241. package/dist/style/components/facet_nav/_facet-nav-panel.scss +3 -0
  242. package/dist/style/components/facet_nav/_facet-nav.scss +4 -0
  243. package/dist/style/main.css +1 -1
  244. package/dist/synapse-client/SynapseClient.js +118 -118
  245. package/dist/synapse-client/SynapseClient.js.map +1 -1
  246. package/dist/synapse-queries/auth/useOIDC.js +1 -1
  247. package/dist/synapse-queries/auth/useTwoFactorEnrollment.js +1 -1
  248. package/dist/synapse-queries/entity/index.js +6 -6
  249. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  250. package/dist/synapse-queries/index.js +1 -1
  251. package/dist/synapse-queries/user/usePersonalAccessToken.js +1 -1
  252. package/dist/testutils/vitest.setup.js +10 -11
  253. package/dist/testutils/vitest.setup.js.map +1 -1
  254. package/dist/theme/DefaultTheme.js +1 -1
  255. package/dist/theme/ThemeProvider.d.ts +2 -1
  256. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  257. package/dist/theme/ThemeProvider.js +11 -10
  258. package/dist/theme/ThemeProvider.js.map +1 -1
  259. package/dist/theme/index.js +1 -1
  260. package/dist/theme/mergeTheme.js +1 -1
  261. package/dist/tsconfig.build.tsbuildinfo +1 -1
  262. package/dist/utils/AppUtils/AppUtils.js +1 -1
  263. package/dist/utils/functions/SanitizeHtmlUtils.d.ts.map +1 -1
  264. package/dist/utils/functions/SanitizeHtmlUtils.js +34 -40
  265. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  266. package/dist/utils/functions/deepLinkingUtils.js +10 -10
  267. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  268. package/dist/utils/hooks/index.js +6 -6
  269. package/dist/utils/hooks/useDetectSSOCode.js +3 -3
  270. package/dist/utils/hooks/useGetEntityMetadata.js +1 -1
  271. package/dist/utils/hooks/useNativeSearchParams.d.ts.map +1 -1
  272. package/dist/utils/hooks/useNativeSearchParams.js +1 -1
  273. package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
  274. package/dist/utils/hooks/useOneSageURL.d.ts.map +1 -1
  275. package/dist/utils/hooks/useOneSageURL.js +15 -15
  276. package/dist/utils/hooks/useOneSageURL.js.map +1 -1
  277. package/dist/utils/hooks/useSourceAppConfigs.d.ts +1 -0
  278. package/dist/utils/hooks/useSourceAppConfigs.d.ts.map +1 -1
  279. package/dist/utils/hooks/useSourceAppConfigs.js +79 -77
  280. package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
  281. package/dist/utils/index.js +4 -4
  282. package/package.json +14 -15
  283. package/dist/_virtual/index.js +0 -6
  284. package/dist/_virtual/index.js.map +0 -1
  285. package/dist/_virtual/index2.js +0 -5
  286. package/dist/_virtual/index2.js.map +0 -1
  287. package/dist/_virtual/index3.js +0 -5
  288. package/dist/_virtual/index3.js.map +0 -1
  289. package/dist/_virtual/index4.js +0 -5
  290. package/dist/_virtual/index4.js.map +0 -1
  291. package/dist/_virtual/index5.js +0 -5
  292. package/dist/_virtual/index5.js.map +0 -1
  293. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts +0 -21
  294. package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts.map +0 -1
  295. package/dist/components/UserSearchBox/UserSearchBoxV2.js +0 -144
  296. package/dist/components/UserSearchBox/UserSearchBoxV2.js.map +0 -1
  297. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +0 -53
  298. package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js.map +0 -1
  299. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +0 -948
  300. package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js.map +0 -1
  301. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +0 -30
  302. package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js.map +0 -1
  303. package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js +0 -15
  304. package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js.map +0 -1
  305. package/dist/style/components/_user-search-box.scss +0 -30
@@ -11,7 +11,7 @@ import "../../assets/icons/error_page/no-access.svg.js";
11
11
  import "../../assets/icons/error_page/unavailable.svg.js";
12
12
  import "../../utils/PermissionLevelToAccessType.js";
13
13
  import "../../utils/SynapseConstants.js";
14
- import { forwardRef as st, useState as S, useRef as g, useImperativeHandle as ct, useEffect as E, useMemo as L, useCallback as l } from "react";
14
+ import { forwardRef as st, useState as g, useRef as I, useImperativeHandle as ct, useEffect as E, useMemo as L, useCallback as d } from "react";
15
15
  import "../../synapse-client/SynapseClient.js";
16
16
  import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
17
17
  import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
@@ -27,9 +27,9 @@ import "@tanstack/query-core";
27
27
  import "lodash-es/isEmpty";
28
28
  import "lodash-es/isEqual";
29
29
  import "lodash-es/xorWith";
30
- import { Stack as dt } from "@mui/material";
30
+ import { Stack as lt } from "@mui/material";
31
31
  import "@sage-bionetworks/synapse-client";
32
- import { useGetEntity as lt } from "../../synapse-queries/entity/useEntity.js";
32
+ import { useGetEntity as dt } from "../../synapse-queries/entity/useEntity.js";
33
33
  import "../../utils/types/IsType.js";
34
34
  import { useGetCurrentUserBundle as at } from "../../synapse-queries/user/useUserBundle.js";
35
35
  import "../../utils/hooks/useCookiePreferences.js";
@@ -38,7 +38,7 @@ import "universal-cookie";
38
38
  import "../../utils/AppUtils/session/ApplicationSessionContext.js";
39
39
  import "../../utils/context/FullContextProvider.js";
40
40
  import "../../utils/context/DocumentMetadataContext.js";
41
- import '../FullWidthAlert/FullWidthAlert.css';import '../../style/components/_spinner.css';/* empty css */
41
+ import '../Plot/SynapsePlot.css';import '../FullWidthAlert/FullWidthAlert.css';import '../../style/components/_spinner.css';/* empty css */
42
42
  import "react-router";
43
43
  import "@mui/icons-material/Close";
44
44
  import "../styled/StyledPopover.js";
@@ -177,7 +177,6 @@ import "@mui/x-date-pickers/AdapterDayjs";
177
177
  import "@mui/x-date-pickers/LocalizationProvider";
178
178
  import "../FeaturedDataTabs/FacetPlotsCardGrid.js";
179
179
  import "../Forum/ForumTable.js";
180
- import "@mui/material/IconButton";
181
180
  import "@mui/icons-material/NavigateNext";
182
181
  import "@react-google-maps/api";
183
182
  import "../Markdown/MarkdownUtils.js";
@@ -191,6 +190,7 @@ import "lodash-es/orderBy";
191
190
  import "../styled/LargeButton.js";
192
191
  import "../../assets/illustrations/diagonalLinePattern.svg.js";
193
192
  import "@upsetjs/react";
193
+ /* empty css */
194
194
  import "reactflow";
195
195
  import "../ProvenanceGraph/ProvenanceUtils.js";
196
196
  import "reactflow/dist/style.css";
@@ -224,9 +224,9 @@ import "@mui/icons-material/ArrowForwardIos";
224
224
  import "../PortalAclEditor/PortalAclEditor.js";
225
225
  import "../SynapseHomepageV2/HomepageStyles.js";
226
226
  import { getSchemaPropertiesInfo as ft } from "../../utils/jsonschema/getSchemaPropertyInfo.js";
227
- import { ClickableJsonCrdt as It } from "clickable-json";
228
- import { GridAgentChat as St } from "../SynapseChat/GridAgentChat.js";
229
- import gt from "./DataGrid.js";
227
+ import { ClickableJsonCrdt as St } from "clickable-json";
228
+ import { GridAgentChat as gt } from "../SynapseChat/GridAgentChat.js";
229
+ import It from "./DataGrid.js";
230
230
  import { useGridUndoRedo as Ct } from "./hooks/useGridUndoRedo.js";
231
231
  import { StartGridSession as yt } from "./StartGridSession.js";
232
232
  import { useDataGridWebSocket as Et } from "./useDataGridWebsocket.js";
@@ -237,9 +237,9 @@ import bt from "../AccessRequirementList/RequirementItem/CertificationRequiremen
237
237
  import { ValidationAlert as vt } from "./components/ValidationAlert.js";
238
238
  const Ye = st(
239
239
  ({ agentRegistrationId: B, showDebugInfo: R = !1 }, D) => {
240
- const [o, P] = S(null), [p, A] = S(null), [j, v] = S(!1), [F, w] = S(
240
+ const [o, P] = g(null), [p, A] = g(null), [j, v] = g(!1), [F, w] = g(
241
241
  null
242
- ), a = g(null), u = g(null), { data: J, isLoading: W } = at();
242
+ ), a = I(null), u = I(null), { data: J, isLoading: W } = at();
243
243
  ct(
244
244
  D,
245
245
  () => ({
@@ -261,11 +261,11 @@ const Ye = st(
261
261
  connect: k,
262
262
  presignedUrl: c,
263
263
  hasSufficientData: N
264
- } = Et(), C = g(null);
264
+ } = Et(), C = I(null);
265
265
  E(() => {
266
266
  C.current = T;
267
267
  }, [T]);
268
- const x = g(null);
268
+ const x = I(null);
269
269
  E(() => {
270
270
  if (p == null || !o?.sessionId) {
271
271
  x.current = null;
@@ -279,7 +279,7 @@ const Ye = st(
279
279
  }, [p, o?.sessionId, k]), E(() => {
280
280
  i === null && (w(null), u.current && u.current.setActiveCell(null));
281
281
  }, [i]);
282
- const G = et(o), { data: V } = lt(
282
+ const G = et(o), { data: V } = dt(
283
283
  o?.sourceEntityId,
284
284
  void 0,
285
285
  {
@@ -288,29 +288,29 @@ const Ye = st(
288
288
  ), _ = V?.concreteType === "org.sagebionetworks.repo.model.table.EntityView", b = L(() => ft(G ?? null), [G]), $ = n ? "Connected" : "Disconnected", f = L(
289
289
  () => h ? nt(i, h) : [],
290
290
  [i, h]
291
- ), y = l(() => {
291
+ ), y = d(() => {
292
292
  !n || !C.current || C.current.sendPatch();
293
293
  }, [n, C]);
294
294
  E(() => {
295
295
  n && y();
296
296
  }, [n, y]);
297
- const d = l(
297
+ const l = d(
298
298
  (r, e) => {
299
- e.forEach((I) => {
300
- Rt(r, I, b);
299
+ e.forEach((S) => {
300
+ Rt(r, S, b);
301
301
  }), y();
302
302
  },
303
303
  [y, b]
304
- ), q = l(
304
+ ), q = d(
305
305
  (r) => {
306
306
  if (!i) {
307
307
  console.error("Model is not initialized");
308
308
  return;
309
309
  }
310
- r.type === "DELETE" && u.current && u.current.setActiveCell(null), d(i, [r]);
310
+ r.type === "DELETE" && u.current && u.current.setActiveCell(null), l(i, [r]);
311
311
  },
312
- [i, d]
313
- ), { undoUI: Y, redoUI: K, addOperationsToUndoStack: M, clearRedoStack: O } = Ct(q), Q = l(
312
+ [i, l]
313
+ ), { undoUI: Y, redoUI: K, addOperationsToUndoStack: M, clearRedoStack: O } = Ct(q), Q = d(
314
314
  (r, e) => {
315
315
  if (!i) {
316
316
  console.error("Model is not initialized");
@@ -318,8 +318,8 @@ const Ye = st(
318
318
  }
319
319
  if (e = xt(r, f, e), e.length > 0) {
320
320
  O(), M(e, f, r);
321
- const I = Gt(e, r);
322
- d(i, I);
321
+ const S = Gt(e, r);
322
+ l(i, S);
323
323
  }
324
324
  },
325
325
  [
@@ -327,29 +327,29 @@ const Ye = st(
327
327
  f,
328
328
  O,
329
329
  M,
330
- d
330
+ l
331
331
  ]
332
- ), X = l(
332
+ ), X = d(
333
333
  (r) => {
334
334
  const { selection: e } = r;
335
335
  if (e != null && (w(e), i != null && p != null)) {
336
- const I = pt(
336
+ const S = pt(
337
337
  e,
338
338
  i
339
339
  );
340
- d(i, [
340
+ l(i, [
341
341
  {
342
342
  type: "SET_SELECTION",
343
343
  replicaId: p.toString(),
344
- selection: I
344
+ selection: S
345
345
  }
346
346
  ]);
347
347
  }
348
348
  },
349
- [d, i, p]
350
- ), U = g(null), [, Z] = S({}), tt = l(
349
+ [l, i, p]
350
+ ), U = I(null), [, Z] = g({}), tt = d(
351
351
  (r, e) => {
352
- U.current = r, Z({});
352
+ r !== null && (U.current = r, Z({}));
353
353
  },
354
354
  []
355
355
  );
@@ -407,7 +407,7 @@ const Ye = st(
407
407
  ] }),
408
408
  N && /* @__PURE__ */ m(z, { children: [
409
409
  /* @__PURE__ */ t(s, { size: 12, children: /* @__PURE__ */ m(
410
- dt,
410
+ lt,
411
411
  {
412
412
  direction: "row",
413
413
  spacing: 1,
@@ -425,7 +425,7 @@ const Ye = st(
425
425
  }
426
426
  ),
427
427
  /* @__PURE__ */ t(
428
- St,
428
+ gt,
429
429
  {
430
430
  agentRegistrationId: B,
431
431
  open: j,
@@ -460,7 +460,7 @@ const Ye = st(
460
460
  }
461
461
  ) }),
462
462
  /* @__PURE__ */ t(s, { size: 12, children: /* @__PURE__ */ t(
463
- gt,
463
+ It,
464
464
  {
465
465
  gridRef: u,
466
466
  rowValues: f,
@@ -496,7 +496,7 @@ const Ye = st(
496
496
  },
497
497
  children: [
498
498
  /* @__PURE__ */ t("h3", { children: "Model" }),
499
- i ? /* @__PURE__ */ t(It, { model: i }) : "No model available"
499
+ i ? /* @__PURE__ */ t(St, { model: i }) : "No model available"
500
500
  ]
501
501
  }
502
502
  )
@@ -1 +1 @@
1
- {"version":3,"file":"SynapseGrid.js","sources":["../../../src/components/DataGrid/SynapseGrid.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport UploadCsvToGridButton from '@/components/DataGrid/components/UploadCsvToGridButton'\nimport ExportCsvFromGridButton from '@/components/DataGrid/components/ExportCsvFromGridButton'\nimport useGetSchemaForGrid from '@/components/DataGrid/hooks/useGetSchemaForGrid'\nimport MergeGridWithSourceTableButton from '@/components/DataGrid/MergeGridWithSourceTableButton'\nimport computeReplicaSelectionModel from '@/components/DataGrid/utils/computeReplicaSelectionModel'\nimport modelRowsToGrid from '@/components/DataGrid/utils/modelRowsToGrid'\nimport { SkeletonTable } from '@/components/index'\nimport { useGetEntity } from '@/synapse-queries/index'\nimport { getSchemaPropertiesInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport { Stack } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport {\n CreateGridRequest,\n GridSession,\n} from '@sage-bionetworks/synapse-client'\nimport { ClickableJsonCrdt } from 'clickable-json'\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { DataSheetGridRef } from '@sage-bionetworks/react-datasheet-grid'\nimport { SelectionWithId } from '@sage-bionetworks/react-datasheet-grid'\nimport GridAgentChat from '../SynapseChat/GridAgentChat'\nimport DataGrid from './DataGrid'\nimport { DataGridRow, GridModel, Operation } from './DataGridTypes'\nimport { useGridUndoRedo } from './hooks/useGridUndoRedo'\nimport { StartGridSession, StartGridSessionHandle } from './StartGridSession'\nimport { useDataGridWebSocket } from './useDataGridWebsocket'\nimport { applyModelChange, ModelChange } from './utils/applyModelChange'\nimport { removeNoOpOperations } from './utils/DataGridUtils'\nimport { mapOperationsToModelChanges } from './utils/mapOperationsToModelChanges'\nimport { useGetCurrentUserBundle } from '@/synapse-queries'\nimport CertificationRequirement from '@/components/AccessRequirementList/RequirementItem/CertificationRequirement'\nimport { ValidationAlert } from './components/ValidationAlert'\n\nexport type SynapseGridProps = {\n agentRegistrationId?: string\n showDebugInfo?: boolean\n}\n\nexport type SynapseGridHandle = {\n initializeGrid: (request: CreateGridRequest) => void\n loadExistingSession: (sessionId: string) => void\n}\n\nconst SynapseGrid = forwardRef<SynapseGridHandle, SynapseGridProps>(\n ({ agentRegistrationId, showDebugInfo = false }, ref) => {\n const [session, setSession] = useState<GridSession | null>(null)\n const [replicaId, setReplicaId] = useState<number | null>(null)\n const [chatOpen, setChatOpen] = useState(false)\n const [lastSelection, setLastSelection] = useState<SelectionWithId | null>(\n null,\n )\n\n const startGridSessionRef = useRef<StartGridSessionHandle | null>(null)\n const gridRef = useRef<DataSheetGridRef | null>(null)\n\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n\n useImperativeHandle(\n ref,\n () => ({\n initializeGrid: (request: CreateGridRequest) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleStartSession(request)\n }\n },\n loadExistingSession: (sessionId: string) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleLoadSession(sessionId)\n }\n },\n }),\n [],\n )\n\n // WebSocket state\n const {\n isConnected,\n websocketInstance,\n hasCompletedInitialSync,\n model,\n modelSnapshot,\n connect,\n presignedUrl,\n hasSufficientData,\n } = useDataGridWebSocket()\n\n const websocketInstanceRef = useRef<typeof websocketInstance | null>(null)\n\n useEffect(() => {\n websocketInstanceRef.current = websocketInstance\n }, [websocketInstance])\n\n // Track last connection parameters to avoid redundant connections\n const lastConnectParamsRef = useRef<{\n replicaId: number\n sessionId: string\n } | null>(null)\n\n useEffect(() => {\n if (\n replicaId === null ||\n replicaId === undefined ||\n !session?.sessionId\n ) {\n lastConnectParamsRef.current = null\n return\n }\n\n const nextParams = {\n replicaId,\n sessionId: session.sessionId,\n }\n\n const prevParams = lastConnectParamsRef.current\n\n if (\n prevParams &&\n prevParams.replicaId === nextParams.replicaId &&\n prevParams.sessionId === nextParams.sessionId\n ) {\n return\n }\n\n lastConnectParamsRef.current = nextParams\n connect(replicaId, session.sessionId)\n }, [replicaId, session?.sessionId, connect])\n\n // Reset grid state when model is reset (new session/replica)\n useEffect(() => {\n if (model === null) {\n // Clear any grid-specific state when starting a new session\n setLastSelection(null)\n // Clear active cell if grid exists\n if (gridRef.current) {\n gridRef.current.setActiveCell(null)\n }\n }\n }, [model])\n\n const jsonSchema = useGetSchemaForGrid(session)\n\n // Grid behaves differently for views vs recordSets\n // Note for future: can get modifiedOn to refresh grid when view changes\n const { data: entityData } = useGetEntity(\n session?.sourceEntityId,\n undefined,\n {\n enabled: !!session?.sourceEntityId,\n },\n )\n\n const entityIsView =\n entityData?.concreteType ===\n 'org.sagebionetworks.repo.model.table.EntityView'\n\n // Process schema properties once\n const schemaPropertiesInfo = useMemo(() => {\n return getSchemaPropertiesInfo(jsonSchema ?? null)\n }, [jsonSchema])\n\n const connectionStatus = isConnected ? 'Connected' : 'Disconnected'\n\n // Transform the model view rows and columns to DataSheetGrid format\n const rowValues = useMemo(\n () => (modelSnapshot ? modelRowsToGrid(model, modelSnapshot) : []),\n [model, modelSnapshot],\n )\n\n const commit = useCallback(() => {\n if (!isConnected || !websocketInstanceRef.current) {\n return\n }\n\n websocketInstanceRef.current.sendPatch()\n }, [isConnected, websocketInstanceRef])\n\n useEffect(() => {\n if (isConnected) {\n commit()\n }\n }, [isConnected, commit])\n\n const applyAndCommitChanges = useCallback(\n (model: GridModel, modelChanges: ModelChange[]) => {\n // Apply each change to the model\n modelChanges.forEach(change => {\n applyModelChange(model, change, schemaPropertiesInfo)\n })\n\n commit()\n },\n [commit, schemaPropertiesInfo],\n )\n\n const applyModelChangeFromUndoRedo = useCallback(\n (change: ModelChange) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n if (change.type === 'DELETE' && gridRef.current) {\n // The user may have set a cell as active that we are removing with an 'undo'. In that case, clear the active state\n gridRef.current.setActiveCell(null)\n }\n\n applyAndCommitChanges(model, [change])\n },\n [model, applyAndCommitChanges],\n )\n\n const { undoUI, redoUI, addOperationsToUndoStack, clearRedoStack } =\n useGridUndoRedo(applyModelChangeFromUndoRedo)\n\n const handleChange = useCallback(\n (newValue: DataGridRow[], operations: Operation[]) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n // Check that something changed before updating the model\n operations = removeNoOpOperations(newValue, rowValues, operations)\n\n if (operations.length > 0) {\n // Clear redo stack since new changes invalidate redo history\n clearRedoStack()\n\n // Track row creation, updates, and deletions to keep UI state and undo history in sync\n\n // Add all operations to the undo stack\n addOperationsToUndoStack(operations, rowValues, newValue)\n\n // Transform operations to model changes\n const modelChanges = mapOperationsToModelChanges(operations, newValue)\n\n applyAndCommitChanges(model, modelChanges)\n }\n },\n [\n model,\n rowValues,\n clearRedoStack,\n addOperationsToUndoStack,\n applyAndCommitChanges,\n ],\n )\n\n const handleSelectionChange = useCallback(\n (opts: { selection: SelectionWithId | null }) => {\n const { selection } = opts\n if (selection != null) {\n setLastSelection(selection)\n\n if (model != null && replicaId != null) {\n const replicaSelectionModel = computeReplicaSelectionModel(\n selection,\n model,\n )\n // insert it into the CRDT Model\n applyAndCommitChanges(model, [\n {\n type: 'SET_SELECTION',\n replicaId: replicaId.toString(),\n selection: replicaSelectionModel,\n },\n ])\n }\n }\n },\n [applyAndCommitChanges, model, replicaId],\n )\n\n // Track selected row index for validation display\n const selectedRowIndexRef = useRef<number | null>(null)\n const [, forceUpdate] = useState({})\n\n const handleSelectedRowChange = useCallback(\n (rowIndex: number | null, _row: DataGridRow | null) => {\n selectedRowIndexRef.current = rowIndex\n forceUpdate({}) // Force re-render to update validation display\n },\n [],\n )\n\n if (!isLoading && !userBundle?.isCertified) {\n return <CertificationRequirement />\n }\n\n return (\n <div>\n <Grid container spacing={2}>\n <Grid size={{ xs: 12, xl: 8 }}>\n <StartGridSession\n ref={startGridSessionRef}\n onSessionChange={setSession}\n onReplicaChange={setReplicaId}\n show={showDebugInfo}\n />\n </Grid>\n {/* Debug Information */}\n <Grid size={{ xs: 12, xl: 4 }}>\n {showDebugInfo && (\n <div>\n <p>Session ID: {session?.sessionId || 'No session created'}</p>\n <p>Replica ID: {replicaId || 'No replica created'}</p>\n <p>\n Source Entity ID:{' '}\n {session?.sourceEntityId || 'No source entity'}\n </p>\n <p>\n JSON Schema $id:{' '}\n {session?.gridJsonSchema$Id ||\n 'No schema attached to session'}\n </p>\n <p>\n Presigned URL:{' '}\n {presignedUrl\n ? presignedUrl.substring(0, 30) +\n (presignedUrl.length > 30\n ? ' ... ' +\n presignedUrl.substring(presignedUrl.length - 10)\n : '')\n : 'No URL generated'}\n </p>\n <p>\n WebSocket Status:{' '}\n <span style={{ color: isConnected ? 'green' : 'red' }}>\n {connectionStatus}\n </span>\n </p>\n </div>\n )}\n </Grid>\n\n {session && (\n <>\n {/* Grid Loading State */}\n {!hasSufficientData && (\n <Grid size={12}>\n <h3>Setting up grid...</h3>\n <div style={{ marginBottom: '10px' }}>\n {!session && <p>Creating grid session...</p>}\n {session && !replicaId && (\n <p>Setting up real-time sync...</p>\n )}\n {session && replicaId && !presignedUrl && (\n <p>Establishing secure connection...</p>\n )}\n {session && replicaId && presignedUrl && !isConnected && (\n <p>Connecting to server...</p>\n )}\n {isConnected && !hasCompletedInitialSync && (\n <p>Loading table data...</p>\n )}\n <SkeletonTable numRows={4} numCols={1} />\n </div>\n </Grid>\n )}\n {/* Grid */}\n {hasSufficientData && (\n <>\n <Grid size={12}>\n <Stack\n direction={'row'}\n spacing={1}\n sx={{ justifyContent: 'flex-end' }}\n >\n {undoUI}\n {redoUI}\n <GridMenuButton\n variant={'outlined'}\n onClick={() => setChatOpen(true)}\n startIcon={<SmartToyTwoTone />}\n >\n Open chat\n </GridMenuButton>\n <GridAgentChat\n agentRegistrationId={agentRegistrationId}\n open={chatOpen}\n onClose={() => setChatOpen(false)}\n gridSessionId={session.sessionId!}\n usersReplicaId={replicaId!}\n chatbotName=\"Grid Assistant\"\n />\n {session.sourceEntityId && (\n <UploadCsvToGridButton\n sourceEntityId={session.sourceEntityId}\n gridSessionId={session.sessionId!}\n />\n )}\n {session.sessionId && (\n <ExportCsvFromGridButton\n gridSessionId={session.sessionId}\n filename={\n 'grid-' + (session.sourceEntityId || 'export')\n }\n />\n )}\n {session.sourceEntityId && (\n <MergeGridWithSourceTableButton\n sourceEntityId={session.sourceEntityId}\n gridSessionId={session.sessionId!}\n />\n )}\n </Stack>\n </Grid>\n <Grid size={12}>\n <DataGrid\n gridRef={gridRef}\n rowValues={rowValues}\n columnNames={modelSnapshot?.columnNames ?? []}\n columnOrder={modelSnapshot?.columnOrder ?? []}\n schemaPropertiesInfo={schemaPropertiesInfo}\n entityIsView={entityIsView}\n jsonSchema={jsonSchema}\n lastSelection={lastSelection}\n handleChange={handleChange}\n handleSelectionChange={handleSelectionChange}\n onSelectedRowChange={handleSelectedRowChange}\n />\n </Grid>\n <Grid size={12}>\n <ValidationAlert\n selectedRowIndex={selectedRowIndexRef.current}\n rowValues={rowValues}\n />\n </Grid>\n </>\n )}\n {/* Debug Model Snapshot */}\n {showDebugInfo && (\n <Grid\n size={12}\n style={{\n margin: '10px 0',\n padding: '10px',\n border: '1px solid #ccc',\n maxHeight: '400px',\n overflowY: 'auto',\n }}\n >\n <h3>Model</h3>\n {model ? (\n <ClickableJsonCrdt model={model} />\n ) : (\n 'No model available'\n )}\n </Grid>\n )}\n </>\n )}\n </Grid>\n </div>\n )\n },\n)\n\nexport default SynapseGrid\n"],"names":["SynapseGrid","forwardRef","agentRegistrationId","showDebugInfo","ref","session","setSession","useState","replicaId","setReplicaId","chatOpen","setChatOpen","lastSelection","setLastSelection","startGridSessionRef","useRef","gridRef","userBundle","isLoading","useGetCurrentUserBundle","useImperativeHandle","request","sessionId","isConnected","websocketInstance","hasCompletedInitialSync","model","modelSnapshot","connect","presignedUrl","hasSufficientData","useDataGridWebSocket","websocketInstanceRef","useEffect","lastConnectParamsRef","nextParams","prevParams","jsonSchema","useGetSchemaForGrid","entityData","useGetEntity","entityIsView","schemaPropertiesInfo","useMemo","getSchemaPropertiesInfo","connectionStatus","rowValues","modelRowsToGrid","commit","useCallback","applyAndCommitChanges","modelChanges","change","applyModelChange","applyModelChangeFromUndoRedo","undoUI","redoUI","addOperationsToUndoStack","clearRedoStack","useGridUndoRedo","handleChange","newValue","operations","removeNoOpOperations","mapOperationsToModelChanges","handleSelectionChange","opts","selection","replicaSelectionModel","computeReplicaSelectionModel","selectedRowIndexRef","forceUpdate","handleSelectedRowChange","rowIndex","_row","CertificationRequirement","jsxs","Grid","jsx","StartGridSession","Fragment","SkeletonTable","Stack","GridMenuButton","SmartToyTwoTone","GridAgentChat","UploadCsvToGridButton","ExportCsvFromGridButton","MergeGridWithSourceTableButton","DataGrid","ValidationAlert","ClickableJsonCrdt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,MAAMA,KAAcC;AAAA,EAClB,CAAC,EAAE,qBAAAC,GAAqB,eAAAC,IAAgB,GAAA,GAASC,MAAQ;AACvD,UAAM,CAACC,GAASC,CAAU,IAAIC,EAA6B,IAAI,GACzD,CAACC,GAAWC,CAAY,IAAIF,EAAwB,IAAI,GACxD,CAACG,GAAUC,CAAW,IAAIJ,EAAS,EAAK,GACxC,CAACK,GAAeC,CAAgB,IAAIN;AAAA,MACxC;AAAA,IAAA,GAGIO,IAAsBC,EAAsC,IAAI,GAChEC,IAAUD,EAAgC,IAAI,GAE9C,EAAE,MAAME,GAAY,WAAAC,EAAA,IAAcC,GAAA;AAExC,IAAAC;AAAA,MACEhB;AAAA,MACA,OAAO;AAAA,QACL,gBAAgB,CAACiB,MAA+B;AAC9C,UAAIP,EAAoB,WACtBA,EAAoB,QAAQ,mBAAmBO,CAAO;AAAA,QAE1D;AAAA,QACA,qBAAqB,CAACC,MAAsB;AAC1C,UAAIR,EAAoB,WACtBA,EAAoB,QAAQ,kBAAkBQ,CAAS;AAAA,QAE3D;AAAA,MAAA;AAAA,MAEF,CAAA;AAAA,IAAC;AAIH,UAAM;AAAA,MACJ,aAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,yBAAAC;AAAA,MACA,OAAAC;AAAA,MACA,eAAAC;AAAA,MACA,SAAAC;AAAA,MACA,cAAAC;AAAA,MACA,mBAAAC;AAAA,IAAA,IACEC,GAAA,GAEEC,IAAuBjB,EAAwC,IAAI;AAEzE,IAAAkB,EAAU,MAAM;AACd,MAAAD,EAAqB,UAAUR;AAAA,IACjC,GAAG,CAACA,CAAiB,CAAC;AAGtB,UAAMU,IAAuBnB,EAGnB,IAAI;AAEd,IAAAkB,EAAU,MAAM;AACd,UACEzB,KAAc,QAEd,CAACH,GAAS,WACV;AACA,QAAA6B,EAAqB,UAAU;AAC/B;AAAA,MACF;AAEA,YAAMC,IAAa;AAAA,QACjB,WAAA3B;AAAA,QACA,WAAWH,EAAQ;AAAA,MAAA,GAGf+B,IAAaF,EAAqB;AAExC,MACEE,KACAA,EAAW,cAAcD,EAAW,aACpCC,EAAW,cAAcD,EAAW,cAKtCD,EAAqB,UAAUC,GAC/BP,EAAQpB,GAAWH,EAAQ,SAAS;AAAA,IACtC,GAAG,CAACG,GAAWH,GAAS,WAAWuB,CAAO,CAAC,GAG3CK,EAAU,MAAM;AACd,MAAIP,MAAU,SAEZb,EAAiB,IAAI,GAEjBG,EAAQ,WACVA,EAAQ,QAAQ,cAAc,IAAI;AAAA,IAGxC,GAAG,CAACU,CAAK,CAAC;AAEV,UAAMW,IAAaC,GAAoBjC,CAAO,GAIxC,EAAE,MAAMkC,EAAA,IAAeC;AAAA,MAC3BnC,GAAS;AAAA,MACT;AAAA,MACA;AAAA,QACE,SAAS,CAAC,CAACA,GAAS;AAAA,MAAA;AAAA,IACtB,GAGIoC,IACJF,GAAY,iBACZ,mDAGIG,IAAuBC,EAAQ,MAC5BC,GAAwBP,KAAc,IAAI,GAChD,CAACA,CAAU,CAAC,GAETQ,IAAmBtB,IAAc,cAAc,gBAG/CuB,IAAYH;AAAA,MAChB,MAAOhB,IAAgBoB,GAAgBrB,GAAOC,CAAa,IAAI,CAAA;AAAA,MAC/D,CAACD,GAAOC,CAAa;AAAA,IAAA,GAGjBqB,IAASC,EAAY,MAAM;AAC/B,MAAI,CAAC1B,KAAe,CAACS,EAAqB,WAI1CA,EAAqB,QAAQ,UAAA;AAAA,IAC/B,GAAG,CAACT,GAAaS,CAAoB,CAAC;AAEtC,IAAAC,EAAU,MAAM;AACd,MAAIV,KACFyB,EAAA;AAAA,IAEJ,GAAG,CAACzB,GAAayB,CAAM,CAAC;AAExB,UAAME,IAAwBD;AAAA,MAC5B,CAACvB,GAAkByB,MAAgC;AAEjD,QAAAA,EAAa,QAAQ,CAAAC,MAAU;AAC7B,UAAAC,GAAiB3B,GAAO0B,GAAQV,CAAoB;AAAA,QACtD,CAAC,GAEDM,EAAA;AAAA,MACF;AAAA,MACA,CAACA,GAAQN,CAAoB;AAAA,IAAA,GAGzBY,IAA+BL;AAAA,MACnC,CAACG,MAAwB;AACvB,YAAI,CAAC1B,GAAO;AACV,kBAAQ,MAAM,0BAA0B;AACxC;AAAA,QACF;AAEA,QAAI0B,EAAO,SAAS,YAAYpC,EAAQ,WAEtCA,EAAQ,QAAQ,cAAc,IAAI,GAGpCkC,EAAsBxB,GAAO,CAAC0B,CAAM,CAAC;AAAA,MACvC;AAAA,MACA,CAAC1B,GAAOwB,CAAqB;AAAA,IAAA,GAGzB,EAAE,QAAAK,GAAQ,QAAAC,GAAQ,0BAAAC,GAA0B,gBAAAC,EAAA,IAChDC,GAAgBL,CAA4B,GAExCM,IAAeX;AAAA,MACnB,CAACY,GAAyBC,MAA4B;AACpD,YAAI,CAACpC,GAAO;AACV,kBAAQ,MAAM,0BAA0B;AACxC;AAAA,QACF;AAKA,YAFAoC,IAAaC,GAAqBF,GAAUf,GAAWgB,CAAU,GAE7DA,EAAW,SAAS,GAAG;AAEzB,UAAAJ,EAAA,GAKAD,EAAyBK,GAAYhB,GAAWe,CAAQ;AAGxD,gBAAMV,IAAea,GAA4BF,GAAYD,CAAQ;AAErE,UAAAX,EAAsBxB,GAAOyB,CAAY;AAAA,QAC3C;AAAA,MACF;AAAA,MACA;AAAA,QACEzB;AAAA,QACAoB;AAAA,QACAY;AAAA,QACAD;AAAA,QACAP;AAAA,MAAA;AAAA,IACF,GAGIe,IAAwBhB;AAAA,MAC5B,CAACiB,MAAgD;AAC/C,cAAM,EAAE,WAAAC,MAAcD;AACtB,YAAIC,KAAa,SACftD,EAAiBsD,CAAS,GAEtBzC,KAAS,QAAQlB,KAAa,OAAM;AACtC,gBAAM4D,IAAwBC;AAAA,YAC5BF;AAAA,YACAzC;AAAA,UAAA;AAGF,UAAAwB,EAAsBxB,GAAO;AAAA,YAC3B;AAAA,cACE,MAAM;AAAA,cACN,WAAWlB,EAAU,SAAA;AAAA,cACrB,WAAW4D;AAAA,YAAA;AAAA,UACb,CACD;AAAA,QACH;AAAA,MAEJ;AAAA,MACA,CAAClB,GAAuBxB,GAAOlB,CAAS;AAAA,IAAA,GAIpC8D,IAAsBvD,EAAsB,IAAI,GAChD,GAAGwD,CAAW,IAAIhE,EAAS,EAAE,GAE7BiE,KAA0BvB;AAAA,MAC9B,CAACwB,GAAyBC,MAA6B;AACrD,QAAAJ,EAAoB,UAAUG,GAC9BF,EAAY,CAAA,CAAE;AAAA,MAChB;AAAA,MACA,CAAA;AAAA,IAAC;AAGH,WAAI,CAACrD,KAAa,CAACD,GAAY,gCACrB0D,IAAA,EAAyB,sBAIhC,OAAA,EACC,UAAA,gBAAAC,EAACC,KAAK,WAAS,IAAC,SAAS,GACvB,UAAA;AAAA,MAAA,gBAAAC,EAACD,KAAK,MAAM,EAAE,IAAI,IAAI,IAAI,KACxB,UAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,KAAKjE;AAAA,UACL,iBAAiBR;AAAA,UACjB,iBAAiBG;AAAA,UACjB,MAAMN;AAAA,QAAA;AAAA,MAAA,GAEV;AAAA,MAEA,gBAAA2E,EAACD,GAAA,EAAK,MAAM,EAAE,IAAI,IAAI,IAAI,EAAA,GACvB,UAAA1E,KACC,gBAAAyE,EAAC,OAAA,EACC,UAAA;AAAA,QAAA,gBAAAA,EAAC,KAAA,EAAE,UAAA;AAAA,UAAA;AAAA,UAAavE,GAAS,aAAa;AAAA,QAAA,GAAqB;AAAA,0BAC1D,KAAA,EAAE,UAAA;AAAA,UAAA;AAAA,UAAaG,KAAa;AAAA,QAAA,GAAqB;AAAA,0BACjD,KAAA,EAAE,UAAA;AAAA,UAAA;AAAA,UACiB;AAAA,UACjBH,GAAS,kBAAkB;AAAA,QAAA,GAC9B;AAAA,0BACC,KAAA,EAAE,UAAA;AAAA,UAAA;AAAA,UACgB;AAAA,UAChBA,GAAS,qBACR;AAAA,QAAA,GACJ;AAAA,0BACC,KAAA,EAAE,UAAA;AAAA,UAAA;AAAA,UACc;AAAA,UACdwB,IACGA,EAAa,UAAU,GAAG,EAAE,KAC3BA,EAAa,SAAS,KACnB,UACAA,EAAa,UAAUA,EAAa,SAAS,EAAE,IAC/C,MACJ;AAAA,QAAA,GACN;AAAA,0BACC,KAAA,EAAE,UAAA;AAAA,UAAA;AAAA,UACiB;AAAA,UAClB,gBAAAiD,EAAC,UAAK,OAAO,EAAE,OAAOvD,IAAc,UAAU,MAAA,GAC3C,UAAAsB,EAAA,CACH;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,EAAA,CACF,EAAA,CAEJ;AAAA,MAECxC,KACC,gBAAAuE,EAAAI,GAAA,EAEG,UAAA;AAAA,QAAA,CAAClD,KACA,gBAAA8C,EAACC,GAAA,EAAK,MAAM,IACV,UAAA;AAAA,UAAA,gBAAAC,EAAC,QAAG,UAAA,qBAAA,CAAkB;AAAA,4BACrB,OAAA,EAAI,OAAO,EAAE,cAAc,UACzB,UAAA;AAAA,YAAA,CAACzE,KAAW,gBAAAyE,EAAC,KAAA,EAAE,UAAA,2BAAA,CAAwB;AAAA,YACvCzE,KAAW,CAACG,KACX,gBAAAsE,EAAC,OAAE,UAAA,gCAA4B;AAAA,YAEhCzE,KAAWG,KAAa,CAACqB,KACxB,gBAAAiD,EAAC,OAAE,UAAA,qCAAiC;AAAA,YAErCzE,KAAWG,KAAaqB,KAAgB,CAACN,KACxC,gBAAAuD,EAAC,OAAE,UAAA,2BAAuB;AAAA,YAE3BvD,KAAe,CAACE,KACf,gBAAAqD,EAAC,OAAE,UAAA,yBAAqB;AAAA,YAE1B,gBAAAA,EAACG,IAAA,EAAc,SAAS,GAAG,SAAS,EAAA,CAAG;AAAA,UAAA,EAAA,CACzC;AAAA,QAAA,GACF;AAAA,QAGDnD,KACC,gBAAA8C,EAAAI,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAF,EAACD,GAAA,EAAK,MAAM,IACV,UAAA,gBAAAD;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,cACX,SAAS;AAAA,cACT,IAAI,EAAE,gBAAgB,WAAA;AAAA,cAErB,UAAA;AAAA,gBAAA3B;AAAA,gBACAC;AAAA,gBACD,gBAAAsB;AAAA,kBAACK;AAAA,kBAAA;AAAA,oBACC,SAAS;AAAA,oBACT,SAAS,MAAMxE,EAAY,EAAI;AAAA,oBAC/B,6BAAYyE,IAAA,EAAgB;AAAA,oBAC7B,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGD,gBAAAN;AAAA,kBAACO;AAAA,kBAAA;AAAA,oBACC,qBAAAnF;AAAA,oBACA,MAAMQ;AAAA,oBACN,SAAS,MAAMC,EAAY,EAAK;AAAA,oBAChC,eAAeN,EAAQ;AAAA,oBACvB,gBAAgBG;AAAA,oBAChB,aAAY;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEbH,EAAQ,kBACP,gBAAAyE;AAAA,kBAACQ;AAAA,kBAAA;AAAA,oBACC,gBAAgBjF,EAAQ;AAAA,oBACxB,eAAeA,EAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAG1BA,EAAQ,aACP,gBAAAyE;AAAA,kBAACS;AAAA,kBAAA;AAAA,oBACC,eAAelF,EAAQ;AAAA,oBACvB,UACE,WAAWA,EAAQ,kBAAkB;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAI1CA,EAAQ,kBACP,gBAAAyE;AAAA,kBAACU;AAAA,kBAAA;AAAA,oBACC,gBAAgBnF,EAAQ;AAAA,oBACxB,eAAeA,EAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACzB;AAAA,YAAA;AAAA,UAAA,GAGN;AAAA,UACA,gBAAAyE,EAACD,GAAA,EAAK,MAAM,IACV,UAAA,gBAAAC;AAAA,YAACW;AAAA,YAAA;AAAA,cACC,SAAAzE;AAAA,cACA,WAAA8B;AAAA,cACA,aAAanB,GAAe,eAAe,CAAA;AAAA,cAC3C,aAAaA,GAAe,eAAe,CAAA;AAAA,cAC3C,sBAAAe;AAAA,cACA,cAAAD;AAAA,cACA,YAAAJ;AAAA,cACA,eAAAzB;AAAA,cACA,cAAAgD;AAAA,cACA,uBAAAK;AAAA,cACA,qBAAqBO;AAAA,YAAA;AAAA,UAAA,GAEzB;AAAA,UACA,gBAAAM,EAACD,GAAA,EAAK,MAAM,IACV,UAAA,gBAAAC;AAAA,YAACY;AAAA,YAAA;AAAA,cACC,kBAAkBpB,EAAoB;AAAA,cACtC,WAAAxB;AAAA,YAAA;AAAA,UAAA,EACF,CACF;AAAA,QAAA,GACF;AAAA,QAGD3C,KACC,gBAAAyE;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,OAAO;AAAA,cACL,QAAQ;AAAA,cACR,SAAS;AAAA,cACT,QAAQ;AAAA,cACR,WAAW;AAAA,cACX,WAAW;AAAA,YAAA;AAAA,YAGb,UAAA;AAAA,cAAA,gBAAAC,EAAC,QAAG,UAAA,QAAA,CAAK;AAAA,cACRpD,IACC,gBAAAoD,EAACa,IAAA,EAAkB,OAAAjE,EAAA,CAAc,IAEjC;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ,EAAA,CAEJ;AAAA,IAAA,EAAA,CAEJ,EAAA,CACF;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"SynapseGrid.js","sources":["../../../src/components/DataGrid/SynapseGrid.tsx"],"sourcesContent":["import GridMenuButton from '@/components/DataGrid/components/GridMenuButton/GridMenuButton'\nimport UploadCsvToGridButton from '@/components/DataGrid/components/UploadCsvToGridButton'\nimport ExportCsvFromGridButton from '@/components/DataGrid/components/ExportCsvFromGridButton'\nimport useGetSchemaForGrid from '@/components/DataGrid/hooks/useGetSchemaForGrid'\nimport MergeGridWithSourceTableButton from '@/components/DataGrid/MergeGridWithSourceTableButton'\nimport computeReplicaSelectionModel from '@/components/DataGrid/utils/computeReplicaSelectionModel'\nimport modelRowsToGrid from '@/components/DataGrid/utils/modelRowsToGrid'\nimport { SkeletonTable } from '@/components/index'\nimport { useGetEntity } from '@/synapse-queries/index'\nimport { getSchemaPropertiesInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport { Stack } from '@mui/material'\nimport Grid from '@mui/material/Grid'\nimport {\n CreateGridRequest,\n GridSession,\n} from '@sage-bionetworks/synapse-client'\nimport { ClickableJsonCrdt } from 'clickable-json'\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { DataSheetGridRef } from '@sage-bionetworks/react-datasheet-grid'\nimport { SelectionWithId } from '@sage-bionetworks/react-datasheet-grid'\nimport GridAgentChat from '../SynapseChat/GridAgentChat'\nimport DataGrid from './DataGrid'\nimport { DataGridRow, GridModel, Operation } from './DataGridTypes'\nimport { useGridUndoRedo } from './hooks/useGridUndoRedo'\nimport { StartGridSession, StartGridSessionHandle } from './StartGridSession'\nimport { useDataGridWebSocket } from './useDataGridWebsocket'\nimport { applyModelChange, ModelChange } from './utils/applyModelChange'\nimport { removeNoOpOperations } from './utils/DataGridUtils'\nimport { mapOperationsToModelChanges } from './utils/mapOperationsToModelChanges'\nimport { useGetCurrentUserBundle } from '@/synapse-queries'\nimport CertificationRequirement from '@/components/AccessRequirementList/RequirementItem/CertificationRequirement'\nimport { ValidationAlert } from './components/ValidationAlert'\n\nexport type SynapseGridProps = {\n agentRegistrationId?: string\n showDebugInfo?: boolean\n}\n\nexport type SynapseGridHandle = {\n initializeGrid: (request: CreateGridRequest) => void\n loadExistingSession: (sessionId: string) => void\n}\n\nconst SynapseGrid = forwardRef<SynapseGridHandle, SynapseGridProps>(\n ({ agentRegistrationId, showDebugInfo = false }, ref) => {\n const [session, setSession] = useState<GridSession | null>(null)\n const [replicaId, setReplicaId] = useState<number | null>(null)\n const [chatOpen, setChatOpen] = useState(false)\n const [lastSelection, setLastSelection] = useState<SelectionWithId | null>(\n null,\n )\n\n const startGridSessionRef = useRef<StartGridSessionHandle | null>(null)\n const gridRef = useRef<DataSheetGridRef | null>(null)\n\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n\n useImperativeHandle(\n ref,\n () => ({\n initializeGrid: (request: CreateGridRequest) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleStartSession(request)\n }\n },\n loadExistingSession: (sessionId: string) => {\n if (startGridSessionRef.current) {\n startGridSessionRef.current.handleLoadSession(sessionId)\n }\n },\n }),\n [],\n )\n\n // WebSocket state\n const {\n isConnected,\n websocketInstance,\n hasCompletedInitialSync,\n model,\n modelSnapshot,\n connect,\n presignedUrl,\n hasSufficientData,\n } = useDataGridWebSocket()\n\n const websocketInstanceRef = useRef<typeof websocketInstance | null>(null)\n\n useEffect(() => {\n websocketInstanceRef.current = websocketInstance\n }, [websocketInstance])\n\n // Track last connection parameters to avoid redundant connections\n const lastConnectParamsRef = useRef<{\n replicaId: number\n sessionId: string\n } | null>(null)\n\n useEffect(() => {\n if (\n replicaId === null ||\n replicaId === undefined ||\n !session?.sessionId\n ) {\n lastConnectParamsRef.current = null\n return\n }\n\n const nextParams = {\n replicaId,\n sessionId: session.sessionId,\n }\n\n const prevParams = lastConnectParamsRef.current\n\n if (\n prevParams &&\n prevParams.replicaId === nextParams.replicaId &&\n prevParams.sessionId === nextParams.sessionId\n ) {\n return\n }\n\n lastConnectParamsRef.current = nextParams\n connect(replicaId, session.sessionId)\n }, [replicaId, session?.sessionId, connect])\n\n // Reset grid state when model is reset (new session/replica)\n useEffect(() => {\n if (model === null) {\n // Clear any grid-specific state when starting a new session\n setLastSelection(null)\n // Clear active cell if grid exists\n if (gridRef.current) {\n gridRef.current.setActiveCell(null)\n }\n }\n }, [model])\n\n const jsonSchema = useGetSchemaForGrid(session)\n\n // Grid behaves differently for views vs recordSets\n // Note for future: can get modifiedOn to refresh grid when view changes\n const { data: entityData } = useGetEntity(\n session?.sourceEntityId,\n undefined,\n {\n enabled: !!session?.sourceEntityId,\n },\n )\n\n const entityIsView =\n entityData?.concreteType ===\n 'org.sagebionetworks.repo.model.table.EntityView'\n\n // Process schema properties once\n const schemaPropertiesInfo = useMemo(() => {\n return getSchemaPropertiesInfo(jsonSchema ?? null)\n }, [jsonSchema])\n\n const connectionStatus = isConnected ? 'Connected' : 'Disconnected'\n\n // Transform the model view rows and columns to DataSheetGrid format\n const rowValues = useMemo(\n () => (modelSnapshot ? modelRowsToGrid(model, modelSnapshot) : []),\n [model, modelSnapshot],\n )\n\n const commit = useCallback(() => {\n if (!isConnected || !websocketInstanceRef.current) {\n return\n }\n\n websocketInstanceRef.current.sendPatch()\n }, [isConnected, websocketInstanceRef])\n\n useEffect(() => {\n if (isConnected) {\n commit()\n }\n }, [isConnected, commit])\n\n const applyAndCommitChanges = useCallback(\n (model: GridModel, modelChanges: ModelChange[]) => {\n // Apply each change to the model\n modelChanges.forEach(change => {\n applyModelChange(model, change, schemaPropertiesInfo)\n })\n\n commit()\n },\n [commit, schemaPropertiesInfo],\n )\n\n const applyModelChangeFromUndoRedo = useCallback(\n (change: ModelChange) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n if (change.type === 'DELETE' && gridRef.current) {\n // The user may have set a cell as active that we are removing with an 'undo'. In that case, clear the active state\n gridRef.current.setActiveCell(null)\n }\n\n applyAndCommitChanges(model, [change])\n },\n [model, applyAndCommitChanges],\n )\n\n const { undoUI, redoUI, addOperationsToUndoStack, clearRedoStack } =\n useGridUndoRedo(applyModelChangeFromUndoRedo)\n\n const handleChange = useCallback(\n (newValue: DataGridRow[], operations: Operation[]) => {\n if (!model) {\n console.error('Model is not initialized')\n return\n }\n\n // Check that something changed before updating the model\n operations = removeNoOpOperations(newValue, rowValues, operations)\n\n if (operations.length > 0) {\n // Clear redo stack since new changes invalidate redo history\n clearRedoStack()\n\n // Track row creation, updates, and deletions to keep UI state and undo history in sync\n\n // Add all operations to the undo stack\n addOperationsToUndoStack(operations, rowValues, newValue)\n\n // Transform operations to model changes\n const modelChanges = mapOperationsToModelChanges(operations, newValue)\n\n applyAndCommitChanges(model, modelChanges)\n }\n },\n [\n model,\n rowValues,\n clearRedoStack,\n addOperationsToUndoStack,\n applyAndCommitChanges,\n ],\n )\n\n const handleSelectionChange = useCallback(\n (opts: { selection: SelectionWithId | null }) => {\n const { selection } = opts\n if (selection != null) {\n setLastSelection(selection)\n\n if (model != null && replicaId != null) {\n const replicaSelectionModel = computeReplicaSelectionModel(\n selection,\n model,\n )\n // insert it into the CRDT Model\n applyAndCommitChanges(model, [\n {\n type: 'SET_SELECTION',\n replicaId: replicaId.toString(),\n selection: replicaSelectionModel,\n },\n ])\n }\n }\n },\n [applyAndCommitChanges, model, replicaId],\n )\n\n // Track selected row index for validation display\n const selectedRowIndexRef = useRef<number | null>(null)\n const [, forceUpdate] = useState({})\n\n const handleSelectedRowChange = useCallback(\n (rowIndex: number | null, _row: DataGridRow | null) => {\n // Only update when a real row is selected — don't clear on blur/click-away\n // so the ValidationAlert stays open while the user interacts with it.\n if (rowIndex !== null) {\n selectedRowIndexRef.current = rowIndex\n forceUpdate({})\n }\n },\n [],\n )\n\n if (!isLoading && !userBundle?.isCertified) {\n return <CertificationRequirement />\n }\n\n return (\n <div>\n <Grid container spacing={2}>\n <Grid size={{ xs: 12, xl: 8 }}>\n <StartGridSession\n ref={startGridSessionRef}\n onSessionChange={setSession}\n onReplicaChange={setReplicaId}\n show={showDebugInfo}\n />\n </Grid>\n {/* Debug Information */}\n <Grid size={{ xs: 12, xl: 4 }}>\n {showDebugInfo && (\n <div>\n <p>Session ID: {session?.sessionId || 'No session created'}</p>\n <p>Replica ID: {replicaId || 'No replica created'}</p>\n <p>\n Source Entity ID:{' '}\n {session?.sourceEntityId || 'No source entity'}\n </p>\n <p>\n JSON Schema $id:{' '}\n {session?.gridJsonSchema$Id ||\n 'No schema attached to session'}\n </p>\n <p>\n Presigned URL:{' '}\n {presignedUrl\n ? presignedUrl.substring(0, 30) +\n (presignedUrl.length > 30\n ? ' ... ' +\n presignedUrl.substring(presignedUrl.length - 10)\n : '')\n : 'No URL generated'}\n </p>\n <p>\n WebSocket Status:{' '}\n <span style={{ color: isConnected ? 'green' : 'red' }}>\n {connectionStatus}\n </span>\n </p>\n </div>\n )}\n </Grid>\n\n {session && (\n <>\n {/* Grid Loading State */}\n {!hasSufficientData && (\n <Grid size={12}>\n <h3>Setting up grid...</h3>\n <div style={{ marginBottom: '10px' }}>\n {!session && <p>Creating grid session...</p>}\n {session && !replicaId && (\n <p>Setting up real-time sync...</p>\n )}\n {session && replicaId && !presignedUrl && (\n <p>Establishing secure connection...</p>\n )}\n {session && replicaId && presignedUrl && !isConnected && (\n <p>Connecting to server...</p>\n )}\n {isConnected && !hasCompletedInitialSync && (\n <p>Loading table data...</p>\n )}\n <SkeletonTable numRows={4} numCols={1} />\n </div>\n </Grid>\n )}\n {/* Grid */}\n {hasSufficientData && (\n <>\n <Grid size={12}>\n <Stack\n direction={'row'}\n spacing={1}\n sx={{ justifyContent: 'flex-end' }}\n >\n {undoUI}\n {redoUI}\n <GridMenuButton\n variant={'outlined'}\n onClick={() => setChatOpen(true)}\n startIcon={<SmartToyTwoTone />}\n >\n Open chat\n </GridMenuButton>\n <GridAgentChat\n agentRegistrationId={agentRegistrationId}\n open={chatOpen}\n onClose={() => setChatOpen(false)}\n gridSessionId={session.sessionId!}\n usersReplicaId={replicaId!}\n chatbotName=\"Grid Assistant\"\n />\n {session.sourceEntityId && (\n <UploadCsvToGridButton\n sourceEntityId={session.sourceEntityId}\n gridSessionId={session.sessionId!}\n />\n )}\n {session.sessionId && (\n <ExportCsvFromGridButton\n gridSessionId={session.sessionId}\n filename={\n 'grid-' + (session.sourceEntityId || 'export')\n }\n />\n )}\n {session.sourceEntityId && (\n <MergeGridWithSourceTableButton\n sourceEntityId={session.sourceEntityId}\n gridSessionId={session.sessionId!}\n />\n )}\n </Stack>\n </Grid>\n <Grid size={12}>\n <DataGrid\n gridRef={gridRef}\n rowValues={rowValues}\n columnNames={modelSnapshot?.columnNames ?? []}\n columnOrder={modelSnapshot?.columnOrder ?? []}\n schemaPropertiesInfo={schemaPropertiesInfo}\n entityIsView={entityIsView}\n jsonSchema={jsonSchema}\n lastSelection={lastSelection}\n handleChange={handleChange}\n handleSelectionChange={handleSelectionChange}\n onSelectedRowChange={handleSelectedRowChange}\n />\n </Grid>\n <Grid size={12}>\n <ValidationAlert\n selectedRowIndex={selectedRowIndexRef.current}\n rowValues={rowValues}\n />\n </Grid>\n </>\n )}\n {/* Debug Model Snapshot */}\n {showDebugInfo && (\n <Grid\n size={12}\n style={{\n margin: '10px 0',\n padding: '10px',\n border: '1px solid #ccc',\n maxHeight: '400px',\n overflowY: 'auto',\n }}\n >\n <h3>Model</h3>\n {model ? (\n <ClickableJsonCrdt model={model} />\n ) : (\n 'No model available'\n )}\n </Grid>\n )}\n </>\n )}\n </Grid>\n </div>\n )\n },\n)\n\nexport default SynapseGrid\n"],"names":["SynapseGrid","forwardRef","agentRegistrationId","showDebugInfo","ref","session","setSession","useState","replicaId","setReplicaId","chatOpen","setChatOpen","lastSelection","setLastSelection","startGridSessionRef","useRef","gridRef","userBundle","isLoading","useGetCurrentUserBundle","useImperativeHandle","request","sessionId","isConnected","websocketInstance","hasCompletedInitialSync","model","modelSnapshot","connect","presignedUrl","hasSufficientData","useDataGridWebSocket","websocketInstanceRef","useEffect","lastConnectParamsRef","nextParams","prevParams","jsonSchema","useGetSchemaForGrid","entityData","useGetEntity","entityIsView","schemaPropertiesInfo","useMemo","getSchemaPropertiesInfo","connectionStatus","rowValues","modelRowsToGrid","commit","useCallback","applyAndCommitChanges","modelChanges","change","applyModelChange","applyModelChangeFromUndoRedo","undoUI","redoUI","addOperationsToUndoStack","clearRedoStack","useGridUndoRedo","handleChange","newValue","operations","removeNoOpOperations","mapOperationsToModelChanges","handleSelectionChange","opts","selection","replicaSelectionModel","computeReplicaSelectionModel","selectedRowIndexRef","forceUpdate","handleSelectedRowChange","rowIndex","_row","CertificationRequirement","jsxs","Grid","jsx","StartGridSession","Fragment","SkeletonTable","Stack","GridMenuButton","SmartToyTwoTone","GridAgentChat","UploadCsvToGridButton","ExportCsvFromGridButton","MergeGridWithSourceTableButton","DataGrid","ValidationAlert","ClickableJsonCrdt"],"mappings":"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"}
@@ -29,7 +29,7 @@ import "universal-cookie";
29
29
  import "../../../utils/AppUtils/session/ApplicationSessionContext.js";
30
30
  import "../../../utils/context/FullContextProvider.js";
31
31
  import "../../../utils/context/DocumentMetadataContext.js";
32
- import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
32
+ import '../../Plot/SynapsePlot.css';import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
33
33
  import "react-router";
34
34
  import "@mui/icons-material/Close";
35
35
  import "../../styled/StyledPopover.js";
@@ -166,7 +166,6 @@ import "@mui/x-date-pickers/AdapterDayjs";
166
166
  import "@mui/x-date-pickers/LocalizationProvider";
167
167
  import "../../FeaturedDataTabs/FacetPlotsCardGrid.js";
168
168
  import "../../Forum/ForumTable.js";
169
- import "@mui/material/IconButton";
170
169
  import "@mui/icons-material/NavigateNext";
171
170
  import "@react-google-maps/api";
172
171
  import "../../Markdown/MarkdownUtils.js";
@@ -180,6 +179,7 @@ import "lodash-es/orderBy";
180
179
  import "../../styled/LargeButton.js";
181
180
  import "../../../assets/illustrations/diagonalLinePattern.svg.js";
182
181
  import "@upsetjs/react";
182
+ /* empty css */
183
183
  import "reactflow";
184
184
  import "../../ProvenanceGraph/ProvenanceUtils.js";
185
185
  import "reactflow/dist/style.css";
@@ -1 +1 @@
1
- {"version":3,"file":"useExportDataGridToCsv.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/hooks/useExportDataGridToCsv.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B;;;EA4D5E"}
1
+ {"version":3,"file":"useExportDataGridToCsv.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/hooks/useExportDataGridToCsv.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B;;;EA8D5E"}
@@ -2,14 +2,14 @@ import { useExportGridAsCsv as u } from "../../../synapse-queries/grid/useExport
2
2
  import { displayToast as n } from "../../ToastMessage/ToastMessage.js";
3
3
  import { useSynapseContext as f } from "../../../utils/context/SynapseContext.js";
4
4
  import { getFileHandleByIdURL as g } from "../../../synapse-client/SynapseClient.js";
5
- function U(c) {
6
- const { gridSessionId: d, filename: i } = c, { accessToken: a } = f(), { mutate: l, isPending: p } = u({
5
+ function R(d) {
6
+ const { gridSessionId: i, filename: c } = d, { accessToken: l } = f(), { mutate: a, isPending: p } = u({
7
7
  onSuccess: (o) => {
8
- o?.resultsFileHandleId && g(o.resultsFileHandleId, a).then((t) => fetch(t).then((r) => r.blob()).then((r) => {
8
+ o?.resultsFileHandleId && g(o.resultsFileHandleId, l).then((t) => fetch(t).then((r) => r.blob()).then((r) => {
9
9
  const s = URL.createObjectURL(r), e = document.createElement("a");
10
10
  e.href = s;
11
11
  const m = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
12
- e.setAttribute("download", `${i}-${m}.csv`), document.body.appendChild(e), e.click(), document.body.removeChild(e), URL.revokeObjectURL(s), n("CSV export completed successfully", "success");
12
+ e.setAttribute("download", `${c}-${m}.csv`), document.body.appendChild(e), e.click(), document.body.removeChild(e), URL.revokeObjectURL(s), n("CSV export completed successfully", "success");
13
13
  })).catch((t) => {
14
14
  n(
15
15
  `Failed to download CSV: ${t instanceof Error ? t.message : "Unknown error"}`,
@@ -26,8 +26,10 @@ function U(c) {
26
26
  });
27
27
  return {
28
28
  exportToCsv: () => {
29
- l({
30
- sessionId: d,
29
+ a({
30
+ sessionId: i,
31
+ includeEtag: !1,
32
+ includeRowIdAndRowVersion: !1,
31
33
  concreteType: "org.sagebionetworks.repo.model.grid.DownloadFromGridRequest"
32
34
  });
33
35
  },
@@ -35,6 +37,6 @@ function U(c) {
35
37
  };
36
38
  }
37
39
  export {
38
- U as useExportDataGridToCsv
40
+ R as useExportDataGridToCsv
39
41
  };
40
42
  //# sourceMappingURL=useExportDataGridToCsv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExportDataGridToCsv.js","sources":["../../../../src/components/DataGrid/hooks/useExportDataGridToCsv.ts"],"sourcesContent":["import { useExportGridAsCsv } from '@/synapse-queries/grid/useExportGrid'\nimport { displayToast } from '../../ToastMessage'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { getFileHandleByIdURL } from '@/synapse-client/SynapseClient'\n\nexport interface UseExportDataGridToCsvOptions {\n gridSessionId: string\n filename: string\n}\n\nexport function useExportDataGridToCsv(options: UseExportDataGridToCsvOptions) {\n const { gridSessionId, filename } = options\n const { accessToken } = useSynapseContext()\n\n const { mutate: exportGrid, isPending } = useExportGridAsCsv({\n onSuccess: data => {\n if (data?.resultsFileHandleId) {\n // Get presigned URL and trigger download\n getFileHandleByIdURL(data.resultsFileHandleId, accessToken)\n .then(presignedUrl => {\n // Fetch the file as a blob to control the filename\n return fetch(presignedUrl)\n .then(response => response.blob())\n .then(blob => {\n // Create a blob URL with our custom filename\n const blobUrl = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.href = blobUrl\n // Generate filename with timestamp\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-')\n link.setAttribute('download', `${filename}-${timestamp}.csv`)\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n // Clean up the blob URL\n URL.revokeObjectURL(blobUrl)\n\n displayToast('CSV export completed successfully', 'success')\n })\n })\n .catch(err => {\n displayToast(\n `Failed to download CSV: ${\n err instanceof Error ? err.message : 'Unknown error'\n }`,\n 'danger',\n )\n })\n }\n },\n onError: error => {\n displayToast(\n `CSV export failed: ${error.reason || 'Unknown error'}`,\n 'danger',\n )\n },\n })\n\n const exportToCsv = () => {\n exportGrid({\n sessionId: gridSessionId,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.DownloadFromGridRequest',\n })\n }\n\n return {\n exportToCsv,\n isExporting: isPending,\n }\n}\n"],"names":["useExportDataGridToCsv","options","gridSessionId","filename","accessToken","useSynapseContext","exportGrid","isPending","useExportGridAsCsv","data","getFileHandleByIdURL","presignedUrl","response","blob","blobUrl","link","timestamp","displayToast","err","error"],"mappings":";;;;AAUO,SAASA,EAAuBC,GAAwC;AAC7E,QAAM,EAAE,eAAAC,GAAe,UAAAC,EAAA,IAAaF,GAC9B,EAAE,aAAAG,EAAA,IAAgBC,EAAA,GAElB,EAAE,QAAQC,GAAY,WAAAC,EAAA,IAAcC,EAAmB;AAAA,IAC3D,WAAW,CAAAC,MAAQ;AACjB,MAAIA,GAAM,uBAERC,EAAqBD,EAAK,qBAAqBL,CAAW,EACvD,KAAK,CAAAO,MAEG,MAAMA,CAAY,EACtB,KAAK,CAAAC,MAAYA,EAAS,KAAA,CAAM,EAChC,KAAK,CAAAC,MAAQ;AAEZ,cAAMC,IAAU,IAAI,gBAAgBD,CAAI,GAClCE,IAAO,SAAS,cAAc,GAAG;AACvC,QAAAA,EAAK,OAAOD;AAEZ,cAAME,yBAAgB,KAAA,GAAO,cAAc,QAAQ,SAAS,GAAG;AAC/D,QAAAD,EAAK,aAAa,YAAY,GAAGZ,CAAQ,IAAIa,CAAS,MAAM,GAC5D,SAAS,KAAK,YAAYD,CAAI,GAC9BA,EAAK,MAAA,GACL,SAAS,KAAK,YAAYA,CAAI,GAE9B,IAAI,gBAAgBD,CAAO,GAE3BG,EAAa,qCAAqC,SAAS;AAAA,MAC7D,CAAC,CACJ,EACA,MAAM,CAAAC,MAAO;AACZ,QAAAD;AAAA,UACE,2BACEC,aAAe,QAAQA,EAAI,UAAU,eACvC;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,CAAC;AAAA,IAEP;AAAA,IACA,SAAS,CAAAC,MAAS;AAChB,MAAAF;AAAA,QACE,sBAAsBE,EAAM,UAAU,eAAe;AAAA,QACrD;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA,CACD;AAUD,SAAO;AAAA,IACL,aATkB,MAAM;AACxB,MAAAb,EAAW;AAAA,QACT,WAAWJ;AAAA,QACX,cACE;AAAA,MAAA,CACH;AAAA,IACH;AAAA,IAIE,aAAaK;AAAA,EAAA;AAEjB;"}
1
+ {"version":3,"file":"useExportDataGridToCsv.js","sources":["../../../../src/components/DataGrid/hooks/useExportDataGridToCsv.ts"],"sourcesContent":["import { useExportGridAsCsv } from '@/synapse-queries/grid/useExportGrid'\nimport { displayToast } from '../../ToastMessage'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { getFileHandleByIdURL } from '@/synapse-client/SynapseClient'\n\nexport interface UseExportDataGridToCsvOptions {\n gridSessionId: string\n filename: string\n}\n\nexport function useExportDataGridToCsv(options: UseExportDataGridToCsvOptions) {\n const { gridSessionId, filename } = options\n const { accessToken } = useSynapseContext()\n\n const { mutate: exportGrid, isPending } = useExportGridAsCsv({\n onSuccess: data => {\n if (data?.resultsFileHandleId) {\n // Get presigned URL and trigger download\n getFileHandleByIdURL(data.resultsFileHandleId, accessToken)\n .then(presignedUrl => {\n // Fetch the file as a blob to control the filename\n return fetch(presignedUrl)\n .then(response => response.blob())\n .then(blob => {\n // Create a blob URL with our custom filename\n const blobUrl = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.href = blobUrl\n // Generate filename with timestamp\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-')\n link.setAttribute('download', `${filename}-${timestamp}.csv`)\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n // Clean up the blob URL\n URL.revokeObjectURL(blobUrl)\n\n displayToast('CSV export completed successfully', 'success')\n })\n })\n .catch(err => {\n displayToast(\n `Failed to download CSV: ${\n err instanceof Error ? err.message : 'Unknown error'\n }`,\n 'danger',\n )\n })\n }\n },\n onError: error => {\n displayToast(\n `CSV export failed: ${error.reason || 'Unknown error'}`,\n 'danger',\n )\n },\n })\n\n const exportToCsv = () => {\n exportGrid({\n sessionId: gridSessionId,\n includeEtag: false,\n includeRowIdAndRowVersion: false,\n concreteType:\n 'org.sagebionetworks.repo.model.grid.DownloadFromGridRequest',\n })\n }\n\n return {\n exportToCsv,\n isExporting: isPending,\n }\n}\n"],"names":["useExportDataGridToCsv","options","gridSessionId","filename","accessToken","useSynapseContext","exportGrid","isPending","useExportGridAsCsv","data","getFileHandleByIdURL","presignedUrl","response","blob","blobUrl","link","timestamp","displayToast","err","error"],"mappings":";;;;AAUO,SAASA,EAAuBC,GAAwC;AAC7E,QAAM,EAAE,eAAAC,GAAe,UAAAC,EAAA,IAAaF,GAC9B,EAAE,aAAAG,EAAA,IAAgBC,EAAA,GAElB,EAAE,QAAQC,GAAY,WAAAC,EAAA,IAAcC,EAAmB;AAAA,IAC3D,WAAW,CAAAC,MAAQ;AACjB,MAAIA,GAAM,uBAERC,EAAqBD,EAAK,qBAAqBL,CAAW,EACvD,KAAK,CAAAO,MAEG,MAAMA,CAAY,EACtB,KAAK,CAAAC,MAAYA,EAAS,KAAA,CAAM,EAChC,KAAK,CAAAC,MAAQ;AAEZ,cAAMC,IAAU,IAAI,gBAAgBD,CAAI,GAClCE,IAAO,SAAS,cAAc,GAAG;AACvC,QAAAA,EAAK,OAAOD;AAEZ,cAAME,yBAAgB,KAAA,GAAO,cAAc,QAAQ,SAAS,GAAG;AAC/D,QAAAD,EAAK,aAAa,YAAY,GAAGZ,CAAQ,IAAIa,CAAS,MAAM,GAC5D,SAAS,KAAK,YAAYD,CAAI,GAC9BA,EAAK,MAAA,GACL,SAAS,KAAK,YAAYA,CAAI,GAE9B,IAAI,gBAAgBD,CAAO,GAE3BG,EAAa,qCAAqC,SAAS;AAAA,MAC7D,CAAC,CACJ,EACA,MAAM,CAAAC,MAAO;AACZ,QAAAD;AAAA,UACE,2BACEC,aAAe,QAAQA,EAAI,UAAU,eACvC;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,CAAC;AAAA,IAEP;AAAA,IACA,SAAS,CAAAC,MAAS;AAChB,MAAAF;AAAA,QACE,sBAAsBE,EAAM,UAAU,eAAe;AAAA,QACrD;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA,CACD;AAYD,SAAO;AAAA,IACL,aAXkB,MAAM;AACxB,MAAAb,EAAW;AAAA,QACT,WAAWJ;AAAA,QACX,aAAa;AAAA,QACb,2BAA2B;AAAA,QAC3B,cACE;AAAA,MAAA,CACH;AAAA,IACH;AAAA,IAIE,aAAaK;AAAA,EAAA;AAEjB;"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as r, jsx as i } from "react/jsx-runtime";
2
- import { styled as p, Skeleton as e, Paper as h, Box as a, Typography as d } from "@mui/material";
2
+ import { Skeleton as e, styled as p, Paper as h, Box as a, Typography as d } from "@mui/material";
3
3
  import x from "../../Icon/Icon.js";
4
4
  const o = p(h, {
5
5
  label: "ActionRequiredCardContainer"
@@ -28,7 +28,7 @@ import "lodash-es/xorWith";
28
28
  import "react-router";
29
29
  import "@sage-bionetworks/synapse-client";
30
30
  import "../../utils/types/IsType.js";
31
- import { useGetEntityBundle as T } from "../../synapse-queries/entity/useEntityBundle.js";
31
+ import T from "../../synapse-queries/entity/useEntityBundle.js";
32
32
  import { useGetFeatureFlag as _ } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
33
33
  import C from "../EntityAclEditor/EntityAclEditorModal.js";
34
34
  import { ActionRequiredCard as D } from "./ActionRequiredCard/ActionRequiredCard.js";
@@ -30,7 +30,7 @@ import "universal-cookie";
30
30
  import "../../utils/AppUtils/session/ApplicationSessionContext.js";
31
31
  import "../../utils/context/FullContextProvider.js";
32
32
  import "../../utils/context/DocumentMetadataContext.js";
33
- import '../FullWidthAlert/FullWidthAlert.css';import '../../style/components/_spinner.css';/* empty css */
33
+ import '../Plot/SynapsePlot.css';import '../FullWidthAlert/FullWidthAlert.css';import '../../style/components/_spinner.css';/* empty css */
34
34
  import "react-router";
35
35
  import "@mui/icons-material/Close";
36
36
  import "../styled/StyledPopover.js";
@@ -169,7 +169,6 @@ import "@mui/x-date-pickers/AdapterDayjs";
169
169
  import "@mui/x-date-pickers/LocalizationProvider";
170
170
  import "../FeaturedDataTabs/FacetPlotsCardGrid.js";
171
171
  import "../Forum/ForumTable.js";
172
- import "@mui/material/IconButton";
173
172
  import "@mui/icons-material/NavigateNext";
174
173
  import "@react-google-maps/api";
175
174
  import "../Markdown/MarkdownUtils.js";
@@ -183,6 +182,7 @@ import "lodash-es/orderBy";
183
182
  import "../styled/LargeButton.js";
184
183
  import "../../assets/illustrations/diagonalLinePattern.svg.js";
185
184
  import "@upsetjs/react";
185
+ /* empty css */
186
186
  import "reactflow";
187
187
  import "../ProvenanceGraph/ProvenanceUtils.js";
188
188
  import "reactflow/dist/style.css";
@@ -1,7 +1,7 @@
1
1
  import { jsx as n, jsxs as y } from "react/jsx-runtime";
2
2
  import C from "./EcosystemCard.js";
3
3
  import f from "./EcosystemSkeleton.js";
4
- import { MarkdownSynapse as I } from "../Markdown/MarkdownSynapse.js";
4
+ import { Markdown as I } from "../Markdown/MarkdownSynapse.js";
5
5
  import { ImageFileHandle as O } from "../widgets/ImageFileHandle.js";
6
6
  import { useGetFullTableQueryResults as S } from "../../synapse-queries/entity/useGetQueryResultBundle.js";
7
7
  import { parseEntityIdFromSqlStatement as U, getColumnIndex as i } from "../../utils/functions/SqlFunctions.js";
@@ -29,7 +29,7 @@ import "lodash-es/xorWith";
29
29
  import "react-router";
30
30
  import "@sage-bionetworks/synapse-client";
31
31
  import "../../utils/types/IsType.js";
32
- import { useGetEntityBundle as N } from "../../synapse-queries/entity/useEntityBundle.js";
32
+ import N from "../../synapse-queries/entity/useEntityBundle.js";
33
33
  import { ConfirmationDialog as v } from "../ConfirmationDialog/ConfirmationDialog.js";
34
34
  import { displayToast as A } from "../ToastMessage/ToastMessage.js";
35
35
  import O from "./EntityAclEditor.js";
@@ -1,6 +1,6 @@
1
1
  import { jsxs as e, jsx as n } from "react/jsx-runtime";
2
2
  import c from "../IconSvg/IconSvg.js";
3
- import { styled as d, Typography as a, Box as l } from "@mui/material";
3
+ import { Typography as a, styled as d, Box as l } from "@mui/material";
4
4
  const t = d(l, {
5
5
  label: "OpenDataContainer"
6
6
  })(({ theme: o }) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"EntityBadgeIcons.d.ts","sourceRoot":"","sources":["../../../src/components/EntityBadgeIcons/EntityBadgeIcons.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAMlD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EACP,MAAM,GACJ,QAAQ,GACR,cAAc,GACd,SAAS,GACT,SAAS,GACT,QAAQ,GACR,OAAO,GACP,cAAc,CAAA;IAClB,cAAc,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;IACnD,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,oFAAoF;IACpF,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,+HAA+H;IAC/H,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0FAA0F;IAC1F,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAEjC,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,wFAAwF;IACxF,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,qBAAqB,KAC3B,KAAK,CAAC,SAkTR,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"EntityBadgeIcons.d.ts","sourceRoot":"","sources":["../../../src/components/EntityBadgeIcons/EntityBadgeIcons.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAOlD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EACP,MAAM,GACJ,QAAQ,GACR,cAAc,GACd,SAAS,GACT,SAAS,GACT,QAAQ,GACR,OAAO,GACP,cAAc,CAAA;IAClB,cAAc,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;IACnD,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,oFAAoF;IACpF,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,+HAA+H;IAC/H,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0FAA0F;IAC1F,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAEjC,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,wFAAwF;IACxF,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,qBAAqB,KAC3B,KAAK,CAAC,SAqSR,CAAA;AAED,eAAe,gBAAgB,CAAA"}