synapse-react-client 4.0.3 → 4.0.5-b
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.
- package/dist/SWC.index.js +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.svg +14 -0
- package/dist/assets/DefaultColorfulPortalCardBackground.svg.js +7 -0
- package/dist/assets/DefaultColorfulPortalCardBackground.svg.js.map +1 -0
- package/dist/assets/homepage/nih-aging.svg +27 -27
- package/dist/assets/homepage/nih-aging.svg.js +1 -1
- package/dist/assets/homepage/nih-aging.svg.js.map +1 -1
- package/dist/assets/homepage/nih-heart.svg +39 -46
- package/dist/assets/homepage/nih-heart.svg.js +3 -3
- package/dist/assets/homepage/nih-heart.svg.js.map +1 -1
- package/dist/assets/homepage/nih-nci.svg +6 -0
- package/dist/assets/homepage/nih-nci.svg.js +7 -0
- package/dist/assets/homepage/nih-nci.svg.js.map +1 -0
- package/dist/assets/homepage/nih-nimh.svg +14 -0
- package/dist/assets/homepage/nih-nimh.svg.js +7 -0
- package/dist/assets/homepage/nih-nimh.svg.js.map +1 -0
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +4 -4
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +8 -7
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +4 -4
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js +11 -11
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js +9 -9
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js +5 -5
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.d.ts.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +33 -32
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js +8 -8
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js +34 -34
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js +6 -5
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.d.ts +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.d.ts.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js +12 -12
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.module.scss +6 -0
- package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.css +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.d.ts.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +24 -23
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss +15 -5
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss.js +1 -1
- package/dist/components/CardContainer/CardLink.d.ts +12 -0
- package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +12 -12
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +7 -7
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.d.ts.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js +13 -12
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +3 -4
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +2 -2
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +35 -35
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +2 -2
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js +9 -7
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js +2 -2
- package/dist/components/Ecosystem/TableQueryEcosystem.js +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
- package/dist/components/EntityAclEditor/OpenData.js +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +113 -127
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.d.ts.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js +39 -39
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts +8 -0
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts.map +1 -0
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js +46 -0
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -0
- package/dist/components/Evaluation/EvaluationCard.d.ts.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js +35 -41
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.d.ts.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js +95 -90
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.d.ts.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js +133 -124
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js +1 -1
- package/dist/components/Forum/DiscussionReply.js +10 -10
- package/dist/components/Forum/DiscussionThread.js +21 -21
- package/dist/components/GenericCard/CardUtils.d.ts.map +1 -1
- package/dist/components/GenericCard/CardUtils.js +36 -36
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js +25 -25
- package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +72 -67
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts +4 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +98 -96
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.d.ts.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js +14 -15
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js +1 -1
- package/dist/components/HasAccess/HasAccessV2.js +1 -1
- package/dist/components/HasAccess/useHasAccess.js +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js +23 -23
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.d.ts +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.d.ts.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js +9 -9
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js +7 -7
- package/dist/components/Markdown/MarkdownEditor.js +11 -11
- package/dist/components/Markdown/MarkdownGithub.js +1 -1
- package/dist/components/Markdown/MarkdownPopover.js +6 -6
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +139 -135
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +8 -0
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +139 -65
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js +18 -18
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js +3 -3
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.d.ts.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +9 -8
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.css +1 -0
- package/dist/components/Plot/SynapsePlot.d.ts +2 -0
- package/dist/components/Plot/SynapsePlot.d.ts.map +1 -1
- package/dist/components/Plot/SynapsePlot.js +43 -39
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.scss +8 -0
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +114 -113
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js +7 -7
- package/dist/components/Resources/Resources.Mobile.js +6 -6
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js +3 -3
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js +10 -10
- package/dist/components/SynapseChat/SynapseChatInteraction.js +5 -5
- package/dist/components/SynapseForm/WarningDialog.d.ts +1 -0
- package/dist/components/SynapseForm/WarningDialog.d.ts.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js +18 -16
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js +17 -12
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.d.ts.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +39 -39
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +21 -22
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +5 -5
- package/dist/components/SynapseTable/ExpandableTableDataCell.d.ts.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js +3 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js +4 -4
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js +122 -122
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +5 -5
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js +9 -9
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js +10 -10
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +9 -9
- package/dist/components/UserSearchBox/UserSearchBox.d.ts +23 -0
- package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -0
- package/dist/components/UserSearchBox/UserSearchBox.js +146 -0
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -0
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js +13 -13
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js +3 -3
- package/dist/components/dataaccess/AccessHistoryDashboard.js +5 -5
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +5 -5
- package/dist/components/dataaccess/UseAccessRequirementTable.js +3 -3
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +2 -2
- package/dist/components/entity/metadata/EntityModal.js +1 -1
- package/dist/components/entity/metadata/MetadataTable.js +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +27 -26
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/index.js +109 -107
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/InfiniteTableLayout.js +1 -1
- package/dist/components/styled/HoverPopover.css +1 -0
- package/dist/components/styled/HoverPopover.d.ts +28 -0
- package/dist/components/styled/HoverPopover.d.ts.map +1 -0
- package/dist/components/styled/HoverPopover.js +104 -0
- package/dist/components/styled/HoverPopover.js.map +1 -0
- package/dist/components/styled/HoverPopover.module.scss +10 -0
- package/dist/components/styled/HoverPopover.module.scss.js +10 -0
- package/dist/components/styled/HoverPopover.module.scss.js.map +1 -0
- package/dist/components/styled/index.d.ts +2 -0
- package/dist/components/styled/index.d.ts.map +1 -1
- package/dist/components/styled/index.js +11 -9
- package/dist/components/styled/index.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js +2 -2
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +2 -2
- package/dist/components/widgets/Range.js +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -32
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js +69 -68
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js +24 -21
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js +3 -3
- package/dist/features/curator/GridPage/GridPage.js +2 -2
- package/dist/features/curator/GridPage/components/GridPageTitle.js +2 -2
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/index.js +157 -155
- package/dist/index.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js +5 -5
- package/dist/mocks/msw/handlers/projectStorageHandlers.js +5 -5
- package/dist/mocks/msw/handlers/wikiHandlers.js +1 -1
- package/dist/mocks/msw/handlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers.js +67 -59
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/style/base/_core.scss +0 -1
- package/dist/style/components/_all.scss +0 -1
- package/dist/style/components/_entity-badge.scss +0 -2
- package/dist/style/components/_expandable_table_data.scss +3 -3
- package/dist/style/components/facet_nav/_facet-nav-panel.scss +3 -0
- package/dist/style/components/facet_nav/_facet-nav.scss +4 -0
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/SynapseClient.js +118 -118
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js +1 -1
- package/dist/synapse-queries/entity/index.js +6 -6
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
- package/dist/synapse-queries/index.js +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js +1 -1
- package/dist/testutils/vitest.setup.js +10 -11
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js +1 -1
- package/dist/theme/ThemeProvider.d.ts +2 -1
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/ThemeProvider.js +11 -10
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/theme/mergeTheme.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/AppUtils.js +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.d.ts.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js +34 -40
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js +10 -10
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/hooks/index.js +6 -6
- package/dist/utils/hooks/useDetectSSOCode.js +3 -3
- package/dist/utils/hooks/useGetEntityMetadata.js +1 -1
- package/dist/utils/hooks/useNativeSearchParams.d.ts.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.d.ts.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js +15 -15
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.d.ts +1 -0
- package/dist/utils/hooks/useSourceAppConfigs.d.ts.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js +79 -77
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/index.js +4 -4
- package/package.json +17 -18
- package/dist/_virtual/index.js +0 -6
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/index2.js +0 -5
- package/dist/_virtual/index2.js.map +0 -1
- package/dist/_virtual/index3.js +0 -5
- package/dist/_virtual/index3.js.map +0 -1
- package/dist/_virtual/index4.js +0 -5
- package/dist/_virtual/index4.js.map +0 -1
- package/dist/_virtual/index5.js +0 -5
- package/dist/_virtual/index5.js.map +0 -1
- package/dist/assets/homepage/nci.svg +0 -6
- package/dist/assets/homepage/nci.svg.js +0 -7
- package/dist/assets/homepage/nci.svg.js.map +0 -1
- package/dist/assets/homepage/nih-mental.svg +0 -9
- package/dist/assets/homepage/nih-mental.svg.js +0 -7
- package/dist/assets/homepage/nih-mental.svg.js.map +0 -1
- package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts +0 -21
- package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts.map +0 -1
- package/dist/components/UserSearchBox/UserSearchBoxV2.js +0 -144
- package/dist/components/UserSearchBox/UserSearchBoxV2.js.map +0 -1
- package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +0 -53
- package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js.map +0 -1
- package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +0 -948
- package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js.map +0 -1
- package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +0 -30
- package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js.map +0 -1
- 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
- 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
- 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
|
|
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
|
|
30
|
+
import { Stack as lt } from "@mui/material";
|
|
31
31
|
import "@sage-bionetworks/synapse-client";
|
|
32
|
-
import { useGetEntity as
|
|
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
|
|
228
|
-
import { GridAgentChat as
|
|
229
|
-
import
|
|
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] =
|
|
240
|
+
const [o, P] = g(null), [p, A] = g(null), [j, v] = g(!1), [F, w] = g(
|
|
241
241
|
null
|
|
242
|
-
), a =
|
|
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 =
|
|
264
|
+
} = Et(), C = I(null);
|
|
265
265
|
E(() => {
|
|
266
266
|
C.current = T;
|
|
267
267
|
}, [T]);
|
|
268
|
-
const x =
|
|
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 } =
|
|
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 =
|
|
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
|
|
297
|
+
const l = d(
|
|
298
298
|
(r, e) => {
|
|
299
|
-
e.forEach((
|
|
300
|
-
Rt(r,
|
|
299
|
+
e.forEach((S) => {
|
|
300
|
+
Rt(r, S, b);
|
|
301
301
|
}), y();
|
|
302
302
|
},
|
|
303
303
|
[y, b]
|
|
304
|
-
), q =
|
|
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),
|
|
310
|
+
r.type === "DELETE" && u.current && u.current.setActiveCell(null), l(i, [r]);
|
|
311
311
|
},
|
|
312
|
-
[i,
|
|
313
|
-
), { undoUI: Y, redoUI: K, addOperationsToUndoStack: M, clearRedoStack: O } = Ct(q), Q =
|
|
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
|
|
322
|
-
|
|
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
|
-
|
|
330
|
+
l
|
|
331
331
|
]
|
|
332
|
-
), X =
|
|
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
|
|
336
|
+
const S = pt(
|
|
337
337
|
e,
|
|
338
338
|
i
|
|
339
339
|
);
|
|
340
|
-
|
|
340
|
+
l(i, [
|
|
341
341
|
{
|
|
342
342
|
type: "SET_SELECTION",
|
|
343
343
|
replicaId: p.toString(),
|
|
344
|
-
selection:
|
|
344
|
+
selection: S
|
|
345
345
|
}
|
|
346
346
|
]);
|
|
347
347
|
}
|
|
348
348
|
},
|
|
349
|
-
[
|
|
350
|
-
), U =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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":"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"}
|
|
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;;;
|
|
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
|
|
6
|
-
const { gridSessionId:
|
|
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,
|
|
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", `${
|
|
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
|
-
|
|
30
|
-
sessionId:
|
|
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
|
-
|
|
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;
|
|
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 {
|
|
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
|
|
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 {
|
|
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
|
|
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 {
|
|
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;
|
|
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"}
|