synapse-react-client 4.0.17 → 4.0.19
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/README.md +5 -3
- package/dist/SWC.index.d.ts +2 -0
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +3 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.d.ts.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.d.ts.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +56 -54
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/Authentication/PasswordField.d.ts +1 -1
- package/dist/components/Authentication/PasswordField.d.ts.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js +1 -2
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.d.ts.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js +32 -29
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/CardContainer/CardLink.d.ts +2 -2
- package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
- package/dist/components/CardDeck/CardDeckCardProps.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +106 -103
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.d.ts.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js +4 -4
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js +6 -6
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js +4 -4
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.css +1 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts +13 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.js +119 -0
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.js +22 -0
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.scss +156 -0
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +106 -102
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +97 -89
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +19 -8
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js +64 -43
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +9 -9
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +8 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js +14 -14
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.d.ts.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.d.ts +17 -0
- package/dist/components/EntityFinder/EntityIdTextField.d.ts.map +1 -0
- package/dist/components/EntityFinder/EntityIdTextField.js +35 -0
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -0
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.d.ts.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js +22 -16
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.d.ts.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.d.ts.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.d.ts.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.d.ts.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.d.ts.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js +34 -33
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +67 -65
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +1 -0
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js +1 -0
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.d.ts.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.d.ts.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +9 -9
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js +4 -4
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +25 -25
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TextField/TextField.css +1 -1
- package/dist/components/TextField/TextField.d.ts +14 -3
- package/dist/components/TextField/TextField.d.ts.map +1 -1
- package/dist/components/TextField/TextField.js +41 -43
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextField.module.js +3 -4
- package/dist/components/TextField/TextField.module.js.map +1 -1
- package/dist/components/TextField/TextField.module.scss +18 -10
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.d.ts.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +20 -16
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.d.ts.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js +13 -13
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js +23 -23
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/index.js +17 -17
- package/dist/components/styled/StyledFormControl.d.ts +15 -0
- package/dist/components/styled/StyledFormControl.d.ts.map +1 -1
- package/dist/components/styled/StyledFormControl.js +1 -0
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/index.js +3 -3
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts +18 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +116 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts +5 -5
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +27 -76
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts +19 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +41 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts +12 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js +25 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts +18 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js +55 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts +19 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js +35 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts +22 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +32 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts +14 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js +23 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -0
- package/dist/components/utils/ConditionalWrapper.d.ts.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +69 -62
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +1 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +27 -26
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.d.ts +1 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js +2 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +44 -43
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +13 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +398 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +49 -19
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +49 -25
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts +0 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +20 -22
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +25 -27
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +29 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/index.js +17 -17
- package/dist/mockServiceWorker.js +6 -8
- package/dist/mocks/curation/mockCurationTask.d.ts +2 -2
- package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js +9 -5
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.d.ts +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/style/components/_cards.scss +0 -3
- package/dist/style/components/_data-grid-extra.scss +2 -2
- package/dist/style/components/_login.scss +6 -2
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/SynapseClient.d.ts +2 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +16 -6
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.d.ts +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.d.ts.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.d.ts.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.d.ts.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/theme/palette/Palettes.d.ts +2 -2
- package/dist/theme/palette/Palettes.d.ts.map +1 -1
- package/dist/theme/palette/Palettes.js +2 -2
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/ThemeTypes.d.ts +5 -6
- package/dist/utils/AppUtils/session/SynapseSessionManager.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +13 -0
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -0
- package/dist/utils/featureflag/FeatureFlags.js +8 -0
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -0
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.d.ts.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/slots/SlotUtils.d.ts.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/package.json +5 -6
|
@@ -1,94 +1,45 @@
|
|
|
1
1
|
import { ErrorBanner as e } from "../../error/ErrorBanner.js";
|
|
2
2
|
import { DialogBase as t } from "../../DialogBase.js";
|
|
3
3
|
import "../../index.js";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import { RefreshTwoTone as d } from "@mui/icons-material";
|
|
10
|
-
import f from "@mui/material/Typography";
|
|
11
|
-
import p from "@mui/material/Stack";
|
|
12
|
-
import m from "@mui/material/Button";
|
|
13
|
-
import h from "@mui/icons-material/ExpandMore";
|
|
14
|
-
import g from "@mui/material/Accordion";
|
|
15
|
-
import _ from "@mui/material/AccordionDetails";
|
|
16
|
-
import v from "@mui/material/AccordionSummary";
|
|
4
|
+
import n, { CsvUploadPreviewStep as r } from "./useCsvUploadPreview.js";
|
|
5
|
+
import i from "./CsvUploadPreviewContent.js";
|
|
6
|
+
import { useCallback as a } from "react";
|
|
7
|
+
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
8
|
+
import l from "@mui/material/Button";
|
|
17
9
|
//#region src/components/table/CsvPreview/CsvPreviewDialog.tsx
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
F(e), D(y.COLUMN_PREVIEW);
|
|
30
|
-
}, []), L = o(null), R = o(null), z = /* @__PURE__ */ l(n, {
|
|
31
|
-
ref: L,
|
|
32
|
-
allowMultipleUpload: !1,
|
|
33
|
-
onFileUploadComplete: (e) => {
|
|
34
|
-
I(e);
|
|
35
|
-
},
|
|
36
|
-
disableDragAndDrop: !0
|
|
37
|
-
}), B = /* @__PURE__ */ u(p, {
|
|
38
|
-
spacing: 2,
|
|
39
|
-
children: [P && /* @__PURE__ */ l(r, {
|
|
40
|
-
fileHandleId: P,
|
|
41
|
-
csvTableDescriptor: O,
|
|
42
|
-
onCsvPreviewDataChange: j,
|
|
43
|
-
onIsLoadingChange: N
|
|
44
|
-
}), /* @__PURE__ */ u(g, { children: [/* @__PURE__ */ l(v, {
|
|
45
|
-
expandIcon: /* @__PURE__ */ l(h, {}),
|
|
46
|
-
children: /* @__PURE__ */ l(f, {
|
|
47
|
-
variant: "headline3",
|
|
48
|
-
children: "Show Options"
|
|
49
|
-
})
|
|
50
|
-
}), /* @__PURE__ */ u(_, { children: [/* @__PURE__ */ l(i, {
|
|
51
|
-
defaultValue: O,
|
|
52
|
-
ref: R
|
|
53
|
-
}), /* @__PURE__ */ l(m, {
|
|
54
|
-
variant: "outlined",
|
|
55
|
-
startIcon: /* @__PURE__ */ l(d, {}),
|
|
56
|
-
sx: { mt: 2 },
|
|
57
|
-
onClick: () => {
|
|
58
|
-
R.current && k(R.current.getFormData());
|
|
59
|
-
},
|
|
60
|
-
children: "Refresh Preview"
|
|
61
|
-
})] })] })]
|
|
62
|
-
});
|
|
63
|
-
return /* @__PURE__ */ l(t, {
|
|
10
|
+
function u(u) {
|
|
11
|
+
let { open: d, onClose: f, onConfirm: p, confirmIsPending: m, errorMessage: h } = u, g = n(), _ = a(() => {
|
|
12
|
+
let e = g.csvPreviewData?.suggestedColumns;
|
|
13
|
+
e && g.uploadedFileHandleId != null && p(g.uploadedFileHandleId, e, g.csvTableDescriptor);
|
|
14
|
+
}, [
|
|
15
|
+
g.csvPreviewData,
|
|
16
|
+
g.uploadedFileHandleId,
|
|
17
|
+
g.csvTableDescriptor,
|
|
18
|
+
p
|
|
19
|
+
]);
|
|
20
|
+
return /* @__PURE__ */ s(t, {
|
|
64
21
|
maxWidth: "lg",
|
|
65
22
|
title: "Upload CSV",
|
|
66
|
-
onCancel:
|
|
67
|
-
open:
|
|
68
|
-
content: /* @__PURE__ */
|
|
69
|
-
|
|
70
|
-
E === y.COLUMN_PREVIEW && B,
|
|
71
|
-
T && /* @__PURE__ */ l(e, { error: T })
|
|
72
|
-
] }),
|
|
73
|
-
actions: /* @__PURE__ */ u(c, { children: [/* @__PURE__ */ l(m, {
|
|
23
|
+
onCancel: f,
|
|
24
|
+
open: d,
|
|
25
|
+
content: /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s(i, { workflow: g }), h && /* @__PURE__ */ s(e, { error: h })] }),
|
|
26
|
+
actions: /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s(l, {
|
|
74
27
|
variant: "outlined",
|
|
75
|
-
disabled:
|
|
28
|
+
disabled: g.isLoadingPreview,
|
|
76
29
|
onClick: () => {
|
|
77
|
-
|
|
30
|
+
f();
|
|
78
31
|
},
|
|
79
32
|
children: "Cancel"
|
|
80
|
-
}),
|
|
81
|
-
disabled:
|
|
33
|
+
}), g.step === r.COLUMN_PREVIEW && /* @__PURE__ */ s(l, {
|
|
34
|
+
disabled: g.isLoadingPreview,
|
|
82
35
|
variant: "contained",
|
|
83
|
-
onClick:
|
|
84
|
-
|
|
85
|
-
},
|
|
86
|
-
loading: w,
|
|
36
|
+
onClick: _,
|
|
37
|
+
loading: m,
|
|
87
38
|
children: "Confirm"
|
|
88
39
|
})] })
|
|
89
40
|
});
|
|
90
41
|
}
|
|
91
42
|
//#endregion
|
|
92
|
-
export {
|
|
43
|
+
export { u as default };
|
|
93
44
|
|
|
94
45
|
//# sourceMappingURL=CsvPreviewDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CsvPreviewDialog.js","names":[],"sources":["../../../../src/components/table/CsvPreview/CsvPreviewDialog.tsx"],"sourcesContent":["import { DialogBase } from '@/components/DialogBase'\nimport {
|
|
1
|
+
{"version":3,"file":"CsvPreviewDialog.js","names":[],"sources":["../../../../src/components/table/CsvPreview/CsvPreviewDialog.tsx"],"sourcesContent":["import { DialogBase } from '@/components/DialogBase'\nimport { ErrorBanner } from '@/components/index'\nimport CsvUploadPreviewContent from '@/components/table/CsvPreview/CsvUploadPreviewContent'\nimport useCsvUploadPreview, {\n CsvUploadPreviewStep,\n} from '@/components/table/CsvPreview/useCsvUploadPreview'\nimport Button from '@mui/material/Button'\nimport {\n ColumnModel,\n CsvTableDescriptor,\n} from '@sage-bionetworks/synapse-client'\nimport { useCallback } from 'react'\n\nexport type CsvPreviewDialogProps = {\n /** Whether the dialog is open */\n open: boolean\n /** Callback when the dialog is closed */\n onClose: () => void\n /** Whether the confirm action is pending */\n confirmIsPending?: boolean\n /** An optional error message to display */\n errorMessage?: string\n /** Callback when the user confirms the column models\n * @param dataFileHandleId - The file handle ID of the uploaded CSV\n * @param columnModels - The confirmed column models\n */\n onConfirm: (\n dataFileHandleId: string,\n columnModels: ColumnModel[],\n csvTableDescriptor: CsvTableDescriptor,\n ) => void\n}\n\nexport default function CsvPreviewDialog(props: CsvPreviewDialogProps) {\n const { open, onClose, onConfirm, confirmIsPending, errorMessage } = props\n\n const csvUploadPreviewWorkflow = useCsvUploadPreview()\n\n const handlePreviewConfirm = useCallback(() => {\n const suggestedColumns =\n csvUploadPreviewWorkflow.csvPreviewData?.suggestedColumns\n if (!suggestedColumns) {\n return\n }\n\n if (csvUploadPreviewWorkflow.uploadedFileHandleId != null) {\n onConfirm(\n csvUploadPreviewWorkflow.uploadedFileHandleId,\n suggestedColumns,\n csvUploadPreviewWorkflow.csvTableDescriptor,\n )\n }\n }, [\n csvUploadPreviewWorkflow.csvPreviewData,\n csvUploadPreviewWorkflow.uploadedFileHandleId,\n csvUploadPreviewWorkflow.csvTableDescriptor,\n onConfirm,\n ])\n\n return (\n <DialogBase\n maxWidth={'lg'}\n title={'Upload CSV'}\n onCancel={onClose}\n open={open}\n content={\n <>\n <CsvUploadPreviewContent workflow={csvUploadPreviewWorkflow} />\n {errorMessage && <ErrorBanner error={errorMessage} />}\n </>\n }\n actions={\n <>\n <Button\n variant={'outlined'}\n disabled={csvUploadPreviewWorkflow.isLoadingPreview}\n onClick={() => {\n onClose()\n }}\n >\n Cancel\n </Button>\n {csvUploadPreviewWorkflow.step ===\n CsvUploadPreviewStep.COLUMN_PREVIEW && (\n <Button\n disabled={csvUploadPreviewWorkflow.isLoadingPreview}\n variant={'contained'}\n onClick={handlePreviewConfirm}\n loading={confirmIsPending}\n >\n Confirm\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;AAiCA,SAAwB,EAAiB,GAA8B;CACrE,IAAM,EAAE,SAAM,YAAS,cAAW,qBAAkB,oBAAiB,GAE/D,IAA2B,GAAqB,EAEhD,IAAuB,QAAkB;EAC7C,IAAM,IACJ,EAAyB,gBAAgB;AACtC,OAID,EAAyB,wBAAwB,QACnD,EACE,EAAyB,sBACzB,GACA,EAAyB,mBAC1B;IAEF;EACD,EAAyB;EACzB,EAAyB;EACzB,EAAyB;EACzB;EACD,CAAC;AAEF,QACE,kBAAC,GAAD;EACE,UAAU;EACV,OAAO;EACP,UAAU;EACJ;EACN,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAyB,UAAU,GAA4B,CAAA,EAC9D,KAAgB,kBAAC,GAAD,EAAa,OAAO,GAAgB,CAAA,CACpD,EAAA,CAAA;EAEL,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAS;GACT,UAAU,EAAyB;GACnC,eAAe;AACb,OAAS;;aAEZ;GAEQ,CAAA,EACR,EAAyB,SACxB,EAAqB,kBACrB,kBAAC,GAAD;GACE,UAAU,EAAyB;GACnC,SAAS;GACT,SAAS;GACT,SAAS;aACV;GAEQ,CAAA,CAEV,EAAA,CAAA;EAEL,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CsvTableDescriptor, UploadToTablePreviewResult } from '@sage-bionetworks/synapse-client';
|
|
2
|
+
export type CsvPreviewWithOptionsProps = {
|
|
3
|
+
/** File handle ID of the uploaded CSV, or null if not yet uploaded */
|
|
4
|
+
fileHandleId: string | null;
|
|
5
|
+
/** Current CSV parsing configuration */
|
|
6
|
+
csvTableDescriptor: CsvTableDescriptor;
|
|
7
|
+
/** Called when the user clicks "Refresh Preview" with the form's current values */
|
|
8
|
+
onCsvTableDescriptorChange: (descriptor: CsvTableDescriptor) => void;
|
|
9
|
+
/** Called when the CSV preview data is fetched */
|
|
10
|
+
onCsvPreviewDataChange?: (data: UploadToTablePreviewResult) => void;
|
|
11
|
+
/** Called when the preview load state changes */
|
|
12
|
+
onIsLoadingChange?: (isLoading: boolean) => void;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Displays a CSV preview table with expandable parsing options.
|
|
16
|
+
* For upload/preview flows, prefer useCsvUploadPreview with CsvUploadPreviewContent.
|
|
17
|
+
*/
|
|
18
|
+
export default function CsvPreviewWithOptions({ fileHandleId, csvTableDescriptor, onCsvTableDescriptorChange, onCsvPreviewDataChange, onIsLoadingChange, }: CsvPreviewWithOptionsProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=CsvPreviewWithOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CsvPreviewWithOptions.d.ts","sourceRoot":"","sources":["../../../../src/components/table/CsvPreview/CsvPreviewWithOptions.tsx"],"names":[],"mappings":"AAUA,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,kCAAkC,CAAA;AAOzC,MAAM,MAAM,0BAA0B,GAAG;IACvC,sEAAsE;IACtE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,wCAAwC;IACxC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,mFAAmF;IACnF,0BAA0B,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACpE,kDAAkD;IAClD,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAA;IACnE,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACjD,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,GAClB,EAAE,0BAA0B,2CAwC5B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import e from "../CsvTableDescriptorForm/CsvTableDescriptorForm.js";
|
|
2
|
+
import t from "./CsvPreview.js";
|
|
3
|
+
import { useRef as n } from "react";
|
|
4
|
+
import { Accordion as r, AccordionDetails as i, AccordionSummary as a, Button as o, Stack as s, Typography as c } from "@mui/material";
|
|
5
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
|
+
import { RefreshTwoTone as d } from "@mui/icons-material";
|
|
7
|
+
import f from "@mui/icons-material/ExpandMore";
|
|
8
|
+
//#region src/components/table/CsvPreview/CsvPreviewWithOptions.tsx
|
|
9
|
+
function p({ fileHandleId: p, csvTableDescriptor: m, onCsvTableDescriptorChange: h, onCsvPreviewDataChange: g, onIsLoadingChange: _ }) {
|
|
10
|
+
let v = n(null);
|
|
11
|
+
return /* @__PURE__ */ u(s, {
|
|
12
|
+
spacing: 2,
|
|
13
|
+
children: [p && /* @__PURE__ */ l(t, {
|
|
14
|
+
fileHandleId: p,
|
|
15
|
+
csvTableDescriptor: m,
|
|
16
|
+
onCsvPreviewDataChange: g,
|
|
17
|
+
onIsLoadingChange: _
|
|
18
|
+
}), /* @__PURE__ */ u(r, { children: [/* @__PURE__ */ l(a, {
|
|
19
|
+
expandIcon: /* @__PURE__ */ l(f, {}),
|
|
20
|
+
children: /* @__PURE__ */ l(c, {
|
|
21
|
+
variant: "headline3",
|
|
22
|
+
children: "Show Options"
|
|
23
|
+
})
|
|
24
|
+
}), /* @__PURE__ */ u(i, { children: [/* @__PURE__ */ l(e, {
|
|
25
|
+
defaultValue: m,
|
|
26
|
+
ref: v
|
|
27
|
+
}), /* @__PURE__ */ l(o, {
|
|
28
|
+
variant: "outlined",
|
|
29
|
+
startIcon: /* @__PURE__ */ l(d, {}),
|
|
30
|
+
sx: { mt: 2 },
|
|
31
|
+
onClick: () => {
|
|
32
|
+
v.current && h(v.current.getFormData());
|
|
33
|
+
},
|
|
34
|
+
children: "Refresh Preview"
|
|
35
|
+
})] })] })]
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { p as default };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=CsvPreviewWithOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CsvPreviewWithOptions.js","names":[],"sources":["../../../../src/components/table/CsvPreview/CsvPreviewWithOptions.tsx"],"sourcesContent":["import { RefreshTwoTone } from '@mui/icons-material'\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n Stack,\n Typography,\n} from '@mui/material'\nimport {\n CsvTableDescriptor,\n UploadToTablePreviewResult,\n} from '@sage-bionetworks/synapse-client'\nimport CsvTableDescriptorForm, {\n CsvTableDescriptorFormHandle,\n} from '@/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm'\nimport { useRef } from 'react'\nimport CsvPreview from '@/components/table/CsvPreview/CsvPreview'\n\nexport type CsvPreviewWithOptionsProps = {\n /** File handle ID of the uploaded CSV, or null if not yet uploaded */\n fileHandleId: string | null\n /** Current CSV parsing configuration */\n csvTableDescriptor: CsvTableDescriptor\n /** Called when the user clicks \"Refresh Preview\" with the form's current values */\n onCsvTableDescriptorChange: (descriptor: CsvTableDescriptor) => void\n /** Called when the CSV preview data is fetched */\n onCsvPreviewDataChange?: (data: UploadToTablePreviewResult) => void\n /** Called when the preview load state changes */\n onIsLoadingChange?: (isLoading: boolean) => void\n}\n\n/**\n * Displays a CSV preview table with expandable parsing options.\n * For upload/preview flows, prefer useCsvUploadPreview with CsvUploadPreviewContent.\n */\nexport default function CsvPreviewWithOptions({\n fileHandleId,\n csvTableDescriptor,\n onCsvTableDescriptorChange,\n onCsvPreviewDataChange,\n onIsLoadingChange,\n}: CsvPreviewWithOptionsProps) {\n const csvDescriptorFormRef = useRef<CsvTableDescriptorFormHandle | null>(null)\n\n return (\n <Stack spacing={2}>\n {fileHandleId && (\n <CsvPreview\n fileHandleId={fileHandleId}\n csvTableDescriptor={csvTableDescriptor}\n onCsvPreviewDataChange={onCsvPreviewDataChange}\n onIsLoadingChange={onIsLoadingChange}\n />\n )}\n <Accordion>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant={'headline3'}>Show Options</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CsvTableDescriptorForm\n defaultValue={csvTableDescriptor}\n ref={csvDescriptorFormRef}\n />\n <Button\n variant={'outlined'}\n startIcon={<RefreshTwoTone />}\n sx={{ mt: 2 }}\n onClick={() => {\n if (csvDescriptorFormRef.current) {\n onCsvTableDescriptorChange(\n csvDescriptorFormRef.current.getFormData(),\n )\n }\n }}\n >\n Refresh Preview\n </Button>\n </AccordionDetails>\n </Accordion>\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;AAqCA,SAAwB,EAAsB,EAC5C,iBACA,uBACA,+BACA,2BACA,wBAC6B;CAC7B,IAAM,IAAuB,EAA4C,KAAK;AAE9E,QACE,kBAAC,GAAD;EAAO,SAAS;YAAhB,CACG,KACC,kBAAC,GAAD;GACgB;GACM;GACI;GACL;GACnB,CAAA,EAEJ,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GAAkB,YAAY,kBAAC,GAAD,EAAkB,CAAA;aAC9C,kBAAC,GAAD;IAAY,SAAS;cAAa;IAAyB,CAAA;GAC1C,CAAA,EACnB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,cAAc;GACd,KAAK;GACL,CAAA,EACF,kBAAC,GAAD;GACE,SAAS;GACT,WAAW,kBAAC,GAAD,EAAkB,CAAA;GAC7B,IAAI,EAAE,IAAI,GAAG;GACb,eAAe;AACb,IAAI,EAAqB,WACvB,EACE,EAAqB,QAAQ,aAAa,CAC3C;;aAGN;GAEQ,CAAA,CACQ,EAAA,CAAA,CACT,EAAA,CAAA,CACN"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import useCsvUploadPreview from './useCsvUploadPreview';
|
|
2
|
+
export type CsvUploadPreviewContentProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Shared upload/preview workflow state and callbacks from useCsvUploadPreview.
|
|
5
|
+
*/
|
|
6
|
+
workflow: ReturnType<typeof useCsvUploadPreview>;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Renders the active CSV upload workflow step: file upload first, then preview/options.
|
|
10
|
+
*/
|
|
11
|
+
export default function CsvUploadPreviewContent({ workflow, }: CsvUploadPreviewContentProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=CsvUploadPreviewContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CsvUploadPreviewContent.d.ts","sourceRoot":"","sources":["../../../../src/components/table/CsvPreview/CsvUploadPreviewContent.tsx"],"names":[],"mappings":"AACA,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AAQvD,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,QAAQ,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;CACjD,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,QAAQ,GACT,EAAE,4BAA4B,2CAmC9B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BasicFileHandleUpload as e } from "../../file/upload/BasicFileHandleUpload.js";
|
|
2
|
+
import { CsvUploadPreviewStep as t } from "./useCsvUploadPreview.js";
|
|
3
|
+
import n from "./CsvPreviewWithOptions.js";
|
|
4
|
+
import { useRef as r } from "react";
|
|
5
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/table/CsvPreview/CsvUploadPreviewContent.tsx
|
|
7
|
+
function a({ workflow: a }) {
|
|
8
|
+
let { step: o, uploadedFileHandleId: s, onFileUploaded: c, csvTableDescriptor: l, setCsvTableDescriptor: u, setCsvPreviewData: d, setIsLoadingPreview: f } = a, p = r(null);
|
|
9
|
+
return o === t.UPLOAD_CSV ? /* @__PURE__ */ i(e, {
|
|
10
|
+
ref: p,
|
|
11
|
+
allowMultipleUpload: !1,
|
|
12
|
+
onFileUploadComplete: c,
|
|
13
|
+
disableDragAndDrop: !0
|
|
14
|
+
}) : /* @__PURE__ */ i(n, {
|
|
15
|
+
fileHandleId: s,
|
|
16
|
+
csvTableDescriptor: l,
|
|
17
|
+
onCsvTableDescriptorChange: u,
|
|
18
|
+
onCsvPreviewDataChange: d,
|
|
19
|
+
onIsLoadingChange: f
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { a as default };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=CsvUploadPreviewContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CsvUploadPreviewContent.js","names":[],"sources":["../../../../src/components/table/CsvPreview/CsvUploadPreviewContent.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport useCsvUploadPreview from './useCsvUploadPreview'\nimport {\n BasicFileHandleUpload,\n FileUploadHandle,\n} from '@/components/file/upload/BasicFileHandleUpload'\nimport { CsvUploadPreviewStep } from '@/components/table/CsvPreview/useCsvUploadPreview'\nimport CsvPreviewWithOptions from './CsvPreviewWithOptions'\n\nexport type CsvUploadPreviewContentProps = {\n /**\n * Shared upload/preview workflow state and callbacks from useCsvUploadPreview.\n */\n workflow: ReturnType<typeof useCsvUploadPreview>\n}\n\n/**\n * Renders the active CSV upload workflow step: file upload first, then preview/options.\n */\nexport default function CsvUploadPreviewContent({\n workflow,\n}: CsvUploadPreviewContentProps) {\n const {\n step,\n uploadedFileHandleId,\n onFileUploaded,\n csvTableDescriptor,\n setCsvTableDescriptor,\n setCsvPreviewData,\n setIsLoadingPreview,\n } = workflow\n\n const uploadRef = useRef<FileUploadHandle | null>(null)\n\n // Upload step\n if (step === CsvUploadPreviewStep.UPLOAD_CSV) {\n return (\n <BasicFileHandleUpload\n ref={uploadRef}\n allowMultipleUpload={false}\n onFileUploadComplete={onFileUploaded}\n disableDragAndDrop={true}\n />\n )\n }\n\n // Preview step\n return (\n <CsvPreviewWithOptions\n fileHandleId={uploadedFileHandleId}\n csvTableDescriptor={csvTableDescriptor}\n onCsvTableDescriptorChange={setCsvTableDescriptor}\n onCsvPreviewDataChange={setCsvPreviewData}\n onIsLoadingChange={setIsLoadingPreview}\n />\n )\n}\n"],"mappings":";;;;;;AAmBA,SAAwB,EAAwB,EAC9C,eAC+B;CAC/B,IAAM,EACJ,SACA,yBACA,mBACA,uBACA,0BACA,sBACA,2BACE,GAEE,IAAY,EAAgC,KAAK;AAevD,QAZI,MAAS,EAAqB,aAE9B,kBAAC,GAAD;EACE,KAAK;EACL,qBAAqB;EACrB,sBAAsB;EACtB,oBAAoB;EACpB,CAAA,GAMJ,kBAAC,GAAD;EACE,cAAc;EACM;EACpB,4BAA4B;EAC5B,wBAAwB;EACxB,mBAAmB;EACnB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type UpdateTableWithCsvDialogProps = {
|
|
2
|
+
/** Whether the dialog is open */
|
|
3
|
+
open: boolean;
|
|
4
|
+
/** Callback when the dialog is closed */
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
/** If provided, upload csv rows to existing table */
|
|
7
|
+
tableId: string;
|
|
8
|
+
/** Invoked after all backend operations successfully complete */
|
|
9
|
+
onSuccess?: () => void;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* A dialog used to upload CSV data to an existing Synapse Table entity.
|
|
13
|
+
* It handles a single-phase workflow:
|
|
14
|
+
* 1. CSV Upload & Preview: Displays data preview and applies the rows directly
|
|
15
|
+
* to the target table upon confirmation.
|
|
16
|
+
*/
|
|
17
|
+
export default function UpdateTableWithCsvDialog(props: UpdateTableWithCsvDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=UpdateTableWithCsvDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateTableWithCsvDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/table/CsvPreview/UpdateTableWithCsvDialog.tsx"],"names":[],"mappings":"AAUA,MAAM,MAAM,6BAA6B,GAAG;IAC1C,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,yCAAyC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,6BAA6B,2CA8DrC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { displayToast as e } from "../../ToastMessage/ToastMessage.js";
|
|
2
|
+
import { DialogBase as t } from "../../DialogBase.js";
|
|
3
|
+
import n, { CsvUploadPreviewStep as r } from "./useCsvUploadPreview.js";
|
|
4
|
+
import i from "./CsvUploadPreviewContent.js";
|
|
5
|
+
import a from "./useUploadCsvToExistingTable.js";
|
|
6
|
+
import { useCallback as o } from "react";
|
|
7
|
+
import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
8
|
+
import u from "@mui/material/Button";
|
|
9
|
+
//#region src/components/table/CsvPreview/UpdateTableWithCsvDialog.tsx
|
|
10
|
+
function d(d) {
|
|
11
|
+
let { open: f, onClose: p, tableId: m, onSuccess: h } = d, g = n(), { mutate: _, isPending: v } = a({
|
|
12
|
+
onSuccess() {
|
|
13
|
+
h?.();
|
|
14
|
+
},
|
|
15
|
+
onError(t) {
|
|
16
|
+
e(t.message, "danger");
|
|
17
|
+
}
|
|
18
|
+
}), y = o(() => {
|
|
19
|
+
_({
|
|
20
|
+
tableId: m,
|
|
21
|
+
csvTableDescriptor: g.csvTableDescriptor,
|
|
22
|
+
fileHandleId: g.uploadedFileHandleId
|
|
23
|
+
});
|
|
24
|
+
}, [
|
|
25
|
+
_,
|
|
26
|
+
m,
|
|
27
|
+
g.csvTableDescriptor,
|
|
28
|
+
g.uploadedFileHandleId
|
|
29
|
+
]);
|
|
30
|
+
return /* @__PURE__ */ c(t, {
|
|
31
|
+
maxWidth: "lg",
|
|
32
|
+
title: "Upload CSV",
|
|
33
|
+
onCancel: p,
|
|
34
|
+
open: f,
|
|
35
|
+
content: /* @__PURE__ */ c(i, { workflow: g }),
|
|
36
|
+
actions: /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c(u, {
|
|
37
|
+
variant: "outlined",
|
|
38
|
+
disabled: g.isLoadingPreview,
|
|
39
|
+
onClick: () => {
|
|
40
|
+
p();
|
|
41
|
+
},
|
|
42
|
+
children: "Cancel"
|
|
43
|
+
}), g.step === r.COLUMN_PREVIEW && /* @__PURE__ */ c(u, {
|
|
44
|
+
disabled: g.isLoadingPreview,
|
|
45
|
+
variant: "contained",
|
|
46
|
+
onClick: y,
|
|
47
|
+
loading: v,
|
|
48
|
+
children: "Confirm"
|
|
49
|
+
})] })
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { d as default };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=UpdateTableWithCsvDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateTableWithCsvDialog.js","names":[],"sources":["../../../../src/components/table/CsvPreview/UpdateTableWithCsvDialog.tsx"],"sourcesContent":["import { DialogBase } from '@/components/DialogBase'\nimport { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport useCsvUploadPreview, {\n CsvUploadPreviewStep,\n} from '@/components/table/CsvPreview/useCsvUploadPreview'\nimport Button from '@mui/material/Button'\nimport { useCallback } from 'react'\nimport useUploadCsvToExistingTable from './useUploadCsvToExistingTable'\nimport CsvUploadPreviewContent from './CsvUploadPreviewContent'\n\nexport type UpdateTableWithCsvDialogProps = {\n /** Whether the dialog is open */\n open: boolean\n /** Callback when the dialog is closed */\n onClose: () => void\n /** If provided, upload csv rows to existing table */\n tableId: string\n /** Invoked after all backend operations successfully complete */\n onSuccess?: () => void\n}\n\n/**\n * A dialog used to upload CSV data to an existing Synapse Table entity.\n * It handles a single-phase workflow:\n * 1. CSV Upload & Preview: Displays data preview and applies the rows directly\n * to the target table upon confirmation.\n */\nexport default function UpdateTableWithCsvDialog(\n props: UpdateTableWithCsvDialogProps,\n) {\n const { open, onClose, tableId, onSuccess } = props\n const csvUploadPreviewWorkflow = useCsvUploadPreview()\n\n const { mutate: uploadCsvToExistingTable, isPending: isUploading } =\n useUploadCsvToExistingTable({\n onSuccess() {\n onSuccess?.()\n },\n onError(error) {\n displayToast(error.message, 'danger')\n },\n })\n\n const handleFinish = useCallback(() => {\n // table already exists; upload csv rows directly to table\n uploadCsvToExistingTable({\n tableId,\n csvTableDescriptor: csvUploadPreviewWorkflow.csvTableDescriptor,\n fileHandleId: csvUploadPreviewWorkflow.uploadedFileHandleId!,\n })\n }, [\n uploadCsvToExistingTable,\n tableId,\n csvUploadPreviewWorkflow.csvTableDescriptor,\n csvUploadPreviewWorkflow.uploadedFileHandleId,\n ])\n\n return (\n <DialogBase\n maxWidth={'lg'}\n title={'Upload CSV'}\n onCancel={onClose}\n open={open}\n content={<CsvUploadPreviewContent workflow={csvUploadPreviewWorkflow} />}\n actions={\n <>\n <Button\n variant={'outlined'}\n disabled={csvUploadPreviewWorkflow.isLoadingPreview}\n onClick={() => {\n onClose()\n }}\n >\n Cancel\n </Button>\n {csvUploadPreviewWorkflow.step ===\n CsvUploadPreviewStep.COLUMN_PREVIEW && (\n <Button\n disabled={csvUploadPreviewWorkflow.isLoadingPreview}\n variant={'contained'}\n onClick={handleFinish}\n loading={isUploading}\n >\n Confirm\n </Button>\n )}\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;AA2BA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,SAAM,YAAS,YAAS,iBAAc,GACxC,IAA2B,GAAqB,EAEhD,EAAE,QAAQ,GAA0B,WAAW,MACnD,EAA4B;EAC1B,YAAY;AACV,QAAa;;EAEf,QAAQ,GAAO;AACb,KAAa,EAAM,SAAS,SAAS;;EAExC,CAAC,EAEE,IAAe,QAAkB;AAErC,IAAyB;GACvB;GACA,oBAAoB,EAAyB;GAC7C,cAAc,EAAyB;GACxC,CAAC;IACD;EACD;EACA;EACA,EAAyB;EACzB,EAAyB;EAC1B,CAAC;AAEF,QACE,kBAAC,GAAD;EACE,UAAU;EACV,OAAO;EACP,UAAU;EACJ;EACN,SAAS,kBAAC,GAAD,EAAyB,UAAU,GAA4B,CAAA;EACxE,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,SAAS;GACT,UAAU,EAAyB;GACnC,eAAe;AACb,OAAS;;aAEZ;GAEQ,CAAA,EACR,EAAyB,SACxB,EAAqB,kBACrB,kBAAC,GAAD;GACE,UAAU,EAAyB;GACnC,SAAS;GACT,SAAS;GACT,SAAS;aACV;GAEQ,CAAA,CAEV,EAAA,CAAA;EAEL,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CsvTableDescriptor, TableUpdateTransactionResponse } from '@sage-bionetworks/synapse-client';
|
|
2
|
+
import { UseMutationOptions } from '@tanstack/react-query';
|
|
3
|
+
import { ColumnModel as SynapseTypesColumnModel } from '@sage-bionetworks/synapse-types';
|
|
4
|
+
import { SetOptional } from 'type-fest';
|
|
5
|
+
import { SynapseClientError } from '@/utils/index';
|
|
6
|
+
type CreateTableFromCsvProps = {
|
|
7
|
+
parentId: string;
|
|
8
|
+
tableName: string;
|
|
9
|
+
columnModels: SetOptional<SynapseTypesColumnModel, 'id'>[];
|
|
10
|
+
csvTableDescriptor: CsvTableDescriptor;
|
|
11
|
+
fileHandleId: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Mutation hook that creates a new Synapse Table from a CSV.
|
|
15
|
+
* Creates ColumnModels, creates the TableEntity, then uploads the CSV rows.
|
|
16
|
+
*/
|
|
17
|
+
export default function useCreateTableFromCsv(options?: Omit<UseMutationOptions<TableUpdateTransactionResponse, SynapseClientError, CreateTableFromCsvProps>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<TableUpdateTransactionResponse, SynapseClientError, CreateTableFromCsvProps, unknown>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=useCreateTableFromCsv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateTableFromCsv.d.ts","sourceRoot":"","sources":["../../../../src/components/table/CsvPreview/useCreateTableFromCsv.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,8BAA8B,EAC/B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAEL,WAAW,IAAI,uBAAuB,EAEvC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAKlD,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,WAAW,CAAC,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAA;IAC1D,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAChB,8BAA8B,EAC9B,kBAAkB,EAClB,uBAAuB,CACxB,EACD,YAAY,CACb,2IAkDF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useCreateEntity as e } from "../../../synapse-queries/entity/useEntity.js";
|
|
2
|
+
import "../../../synapse-queries/index.js";
|
|
3
|
+
import { useCreateColumnModels as t } from "../../../synapse-queries/table/useColumnModel.js";
|
|
4
|
+
import { useTableUpdateTransaction as n } from "../../../synapse-queries/table/useTableUpdateTransaction.js";
|
|
5
|
+
import { useMutation as r } from "@tanstack/react-query";
|
|
6
|
+
//#region src/components/table/CsvPreview/useCreateTableFromCsv.ts
|
|
7
|
+
function i(i) {
|
|
8
|
+
let { mutateAsync: a } = t(), { mutateAsync: o } = e(), { mutateAsync: s } = n();
|
|
9
|
+
return r({
|
|
10
|
+
...i,
|
|
11
|
+
mutationFn: async ({ parentId: e, tableName: t, columnModels: n, csvTableDescriptor: r, fileHandleId: i }) => {
|
|
12
|
+
let c = await a(n), l = {
|
|
13
|
+
name: t,
|
|
14
|
+
parentId: e,
|
|
15
|
+
concreteType: "org.sagebionetworks.repo.model.table.TableEntity"
|
|
16
|
+
};
|
|
17
|
+
l.columnIds = c.map((e) => e.id);
|
|
18
|
+
let u = await o(l);
|
|
19
|
+
return s({
|
|
20
|
+
concreteType: "org.sagebionetworks.repo.model.table.TableUpdateTransactionRequest",
|
|
21
|
+
entityId: u.id,
|
|
22
|
+
changes: [{
|
|
23
|
+
tableId: u.id,
|
|
24
|
+
uploadFileHandleId: i,
|
|
25
|
+
csvTableDescriptor: r,
|
|
26
|
+
concreteType: "org.sagebionetworks.repo.model.table.UploadToTableRequest"
|
|
27
|
+
}]
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { i as default };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=useCreateTableFromCsv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateTableFromCsv.js","names":[],"sources":["../../../../src/components/table/CsvPreview/useCreateTableFromCsv.ts"],"sourcesContent":["import {\n CsvTableDescriptor,\n TableUpdateTransactionRequest,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport {\n Entity,\n ColumnModel as SynapseTypesColumnModel,\n Table,\n} from '@sage-bionetworks/synapse-types'\nimport { SetOptional } from 'type-fest'\nimport { SynapseClientError } from '@/utils/index'\nimport { useCreateEntity } from '@/synapse-queries'\nimport { useCreateColumnModels } from '@/synapse-queries/table/useColumnModel'\nimport { useTableUpdateTransaction } from '@/synapse-queries/table/useTableUpdateTransaction'\n\ntype CreateTableFromCsvProps = {\n parentId: string\n tableName: string\n columnModels: SetOptional<SynapseTypesColumnModel, 'id'>[]\n csvTableDescriptor: CsvTableDescriptor\n fileHandleId: string\n}\n\n/**\n * Mutation hook that creates a new Synapse Table from a CSV.\n * Creates ColumnModels, creates the TableEntity, then uploads the CSV rows.\n */\nexport default function useCreateTableFromCsv(\n options?: Omit<\n UseMutationOptions<\n TableUpdateTransactionResponse,\n SynapseClientError,\n CreateTableFromCsvProps\n >,\n 'mutationFn'\n >,\n) {\n const { mutateAsync: createColumnModels } = useCreateColumnModels()\n const { mutateAsync: createEntity } = useCreateEntity()\n const { mutateAsync: updateTableInTransaction } = useTableUpdateTransaction()\n\n return useMutation<\n TableUpdateTransactionResponse,\n SynapseClientError,\n CreateTableFromCsvProps\n >({\n ...options,\n mutationFn: async ({\n parentId,\n tableName,\n columnModels,\n csvTableDescriptor,\n fileHandleId,\n }) => {\n const createdColumnModelResults = await createColumnModels(columnModels)\n\n const entityToCreate: Entity = {\n name: tableName,\n parentId: parentId,\n concreteType: 'org.sagebionetworks.repo.model.table.TableEntity',\n }\n ;(entityToCreate as Table)['columnIds'] = createdColumnModelResults.map(\n cm => cm.id,\n )\n\n const newEntity = await createEntity(entityToCreate)\n\n const tableUpdateRequest: TableUpdateTransactionRequest = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.TableUpdateTransactionRequest',\n entityId: newEntity.id!,\n changes: [\n {\n tableId: newEntity.id!,\n uploadFileHandleId: fileHandleId,\n csvTableDescriptor,\n concreteType:\n 'org.sagebionetworks.repo.model.table.UploadToTableRequest',\n },\n ],\n }\n\n return updateTableInTransaction(tableUpdateRequest)\n },\n })\n}\n"],"mappings":";;;;;;AA6BA,SAAwB,EACtB,GAQA;CACA,IAAM,EAAE,aAAa,MAAuB,GAAuB,EAC7D,EAAE,aAAa,MAAiB,GAAiB,EACjD,EAAE,aAAa,MAA6B,GAA2B;AAE7E,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAO,EACjB,aACA,cACA,iBACA,uBACA,sBACI;GACJ,IAAM,IAA4B,MAAM,EAAmB,EAAa,EAElE,IAAyB;IAC7B,MAAM;IACI;IACV,cAAc;IACf;AACC,KAAyB,YAAe,EAA0B,KAClE,MAAM,EAAG,GACV;GAED,IAAM,IAAY,MAAM,EAAa,EAAe;AAiBpD,UAAO,EAAyB;IAd9B,cACE;IACF,UAAU,EAAU;IACpB,SAAS,CACP;KACE,SAAS,EAAU;KACnB,oBAAoB;KACpB;KACA,cACE;KACH,CACF;IAG6B,CAAmB;;EAEtD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CsvTableDescriptor, UploadToTablePreviewResult } from '@sage-bionetworks/synapse-client';
|
|
2
|
+
export declare enum CsvUploadPreviewStep {
|
|
3
|
+
UPLOAD_CSV = 0,
|
|
4
|
+
COLUMN_PREVIEW = 1
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Shared state and logic for CSV upload/preview dialogs.
|
|
8
|
+
* Manages the common state needed for uploading a CSV file and previewing its contents.
|
|
9
|
+
*/
|
|
10
|
+
export default function useCsvUploadPreview(): {
|
|
11
|
+
step: CsvUploadPreviewStep;
|
|
12
|
+
setStep: import("react").Dispatch<import("react").SetStateAction<CsvUploadPreviewStep>>;
|
|
13
|
+
csvTableDescriptor: CsvTableDescriptor;
|
|
14
|
+
setCsvTableDescriptor: import("react").Dispatch<import("react").SetStateAction<CsvTableDescriptor>>;
|
|
15
|
+
uploadedFileHandleId: string | null;
|
|
16
|
+
csvPreviewData: UploadToTablePreviewResult | null;
|
|
17
|
+
setCsvPreviewData: import("react").Dispatch<import("react").SetStateAction<UploadToTablePreviewResult | null>>;
|
|
18
|
+
isLoadingPreview: boolean;
|
|
19
|
+
setIsLoadingPreview: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
20
|
+
onFileUploaded: (fileHandleId: string) => void;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=useCsvUploadPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCsvUploadPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/table/CsvPreview/useCsvUploadPreview.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,kCAAkC,CAAA;AAUzC,oBAAY,oBAAoB;IAC9B,UAAU,IAAI;IACd,cAAc,IAAI;CACnB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB;;;;;;;;;;mCAWS,MAAM;EAiBzD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useCallback as e, useState as t } from "react";
|
|
2
|
+
//#region src/components/table/CsvPreview/useCsvUploadPreview.ts
|
|
3
|
+
var n = {
|
|
4
|
+
separator: ",",
|
|
5
|
+
quoteCharacter: "\"",
|
|
6
|
+
escapeCharacter: "\\",
|
|
7
|
+
lineEnd: "\n",
|
|
8
|
+
isFirstLineHeader: !0
|
|
9
|
+
}, r = /* @__PURE__ */ function(e) {
|
|
10
|
+
return e[e.UPLOAD_CSV = 0] = "UPLOAD_CSV", e[e.COLUMN_PREVIEW = 1] = "COLUMN_PREVIEW", e;
|
|
11
|
+
}({});
|
|
12
|
+
function i() {
|
|
13
|
+
let [i, a] = t(r.UPLOAD_CSV), [o, s] = t(n), [c, l] = t(null), [u, d] = t(null), [f, p] = t(!1);
|
|
14
|
+
return {
|
|
15
|
+
step: i,
|
|
16
|
+
setStep: a,
|
|
17
|
+
csvTableDescriptor: o,
|
|
18
|
+
setCsvTableDescriptor: s,
|
|
19
|
+
uploadedFileHandleId: c,
|
|
20
|
+
csvPreviewData: u,
|
|
21
|
+
setCsvPreviewData: d,
|
|
22
|
+
isLoadingPreview: f,
|
|
23
|
+
setIsLoadingPreview: p,
|
|
24
|
+
onFileUploaded: e((e) => {
|
|
25
|
+
l(e), a(r.COLUMN_PREVIEW);
|
|
26
|
+
}, [])
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { r as CsvUploadPreviewStep, i as default };
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=useCsvUploadPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCsvUploadPreview.js","names":[],"sources":["../../../../src/components/table/CsvPreview/useCsvUploadPreview.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\nimport {\n CsvTableDescriptor,\n UploadToTablePreviewResult,\n} from '@sage-bionetworks/synapse-client'\n\nconst DEFAULT_CSV_TABLE_DESCRIPTOR: CsvTableDescriptor = {\n separator: ',',\n quoteCharacter: '\"',\n escapeCharacter: '\\\\',\n lineEnd: '\\n',\n isFirstLineHeader: true,\n}\n\nexport enum CsvUploadPreviewStep {\n UPLOAD_CSV = 0,\n COLUMN_PREVIEW = 1,\n}\n\n/**\n * Shared state and logic for CSV upload/preview dialogs.\n * Manages the common state needed for uploading a CSV file and previewing its contents.\n */\nexport default function useCsvUploadPreview() {\n const [step, setStep] = useState(CsvUploadPreviewStep.UPLOAD_CSV)\n const [csvTableDescriptor, setCsvTableDescriptor] =\n useState<CsvTableDescriptor>(DEFAULT_CSV_TABLE_DESCRIPTOR)\n const [uploadedFileHandleId, setUploadedFileHandleId] = useState<\n string | null\n >(null)\n const [csvPreviewData, setCsvPreviewData] =\n useState<UploadToTablePreviewResult | null>(null)\n const [isLoadingPreview, setIsLoadingPreview] = useState(false)\n\n const onFileUploaded = useCallback((fileHandleId: string) => {\n setUploadedFileHandleId(fileHandleId)\n setStep(CsvUploadPreviewStep.COLUMN_PREVIEW)\n }, [])\n\n return {\n step,\n setStep,\n csvTableDescriptor,\n setCsvTableDescriptor,\n uploadedFileHandleId,\n csvPreviewData,\n setCsvPreviewData,\n isLoadingPreview,\n setIsLoadingPreview,\n onFileUploaded,\n }\n}\n"],"mappings":";;AAMA,IAAM,IAAmD;CACvD,WAAW;CACX,gBAAgB;CAChB,iBAAiB;CACjB,SAAS;CACT,mBAAmB;CACpB,EAEW,IAAL,yBAAA,GAAA;QACL,EAAA,EAAA,aAAa,KAAA,cACb,EAAA,EAAA,iBAAiB,KAAA;KAClB;AAMD,SAAwB,IAAsB;CAC5C,IAAM,CAAC,GAAM,KAAW,EAAS,EAAqB,WAAW,EAC3D,CAAC,GAAoB,KACzB,EAA6B,EAA6B,EACtD,CAAC,GAAsB,KAA2B,EAEtD,KAAK,EACD,CAAC,GAAgB,KACrB,EAA4C,KAAK,EAC7C,CAAC,GAAkB,KAAuB,EAAS,GAAM;AAO/D,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,gBAfqB,GAAa,MAAyB;AAE3D,GADA,EAAwB,EAAa,EACrC,EAAQ,EAAqB,eAAe;KAC3C,EAAE,CAYH;EACD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CsvTableDescriptor, TableUpdateTransactionResponse } from '@sage-bionetworks/synapse-client';
|
|
2
|
+
import { UseMutationOptions } from '@tanstack/react-query';
|
|
3
|
+
import { SynapseClientError } from '@/utils/index';
|
|
4
|
+
type UploadCsvToExistingTableProps = {
|
|
5
|
+
tableId: string;
|
|
6
|
+
csvTableDescriptor: CsvTableDescriptor;
|
|
7
|
+
fileHandleId: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Mutation hook that uploads CSV rows to an existing Synapse Table.
|
|
11
|
+
*/
|
|
12
|
+
export default function useUploadCsvToExistingTable(options?: Omit<UseMutationOptions<TableUpdateTransactionResponse, SynapseClientError, UploadCsvToExistingTableProps>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<TableUpdateTransactionResponse, SynapseClientError, UploadCsvToExistingTableProps, unknown>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=useUploadCsvToExistingTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUploadCsvToExistingTable.d.ts","sourceRoot":"","sources":["../../../../src/components/table/CsvPreview/useUploadCsvToExistingTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,8BAA8B,EAC/B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAe,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAGlD,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,2BAA2B,CACjD,OAAO,CAAC,EAAE,IAAI,CACZ,kBAAkB,CAChB,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,CAC9B,EACD,YAAY,CACb,iJA6BF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useTableUpdateTransaction as e } from "../../../synapse-queries/table/useTableUpdateTransaction.js";
|
|
2
|
+
import { useMutation as t } from "@tanstack/react-query";
|
|
3
|
+
//#region src/components/table/CsvPreview/useUploadCsvToExistingTable.ts
|
|
4
|
+
function n(n) {
|
|
5
|
+
let { mutateAsync: r } = e();
|
|
6
|
+
return t({
|
|
7
|
+
...n,
|
|
8
|
+
mutationFn: async ({ tableId: e, csvTableDescriptor: t, fileHandleId: n }) => r({
|
|
9
|
+
concreteType: "org.sagebionetworks.repo.model.table.TableUpdateTransactionRequest",
|
|
10
|
+
entityId: e,
|
|
11
|
+
changes: [{
|
|
12
|
+
tableId: e,
|
|
13
|
+
uploadFileHandleId: n,
|
|
14
|
+
csvTableDescriptor: t,
|
|
15
|
+
concreteType: "org.sagebionetworks.repo.model.table.UploadToTableRequest"
|
|
16
|
+
}]
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { n as default };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=useUploadCsvToExistingTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUploadCsvToExistingTable.js","names":[],"sources":["../../../../src/components/table/CsvPreview/useUploadCsvToExistingTable.ts"],"sourcesContent":["import {\n CsvTableDescriptor,\n TableUpdateTransactionRequest,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { SynapseClientError } from '@/utils/index'\nimport { useTableUpdateTransaction } from '@/synapse-queries/table/useTableUpdateTransaction'\n\ntype UploadCsvToExistingTableProps = {\n tableId: string\n csvTableDescriptor: CsvTableDescriptor\n fileHandleId: string\n}\n\n/**\n * Mutation hook that uploads CSV rows to an existing Synapse Table.\n */\nexport default function useUploadCsvToExistingTable(\n options?: Omit<\n UseMutationOptions<\n TableUpdateTransactionResponse,\n SynapseClientError,\n UploadCsvToExistingTableProps\n >,\n 'mutationFn'\n >,\n) {\n const { mutateAsync: updateTableInTransaction } = useTableUpdateTransaction()\n\n return useMutation<\n TableUpdateTransactionResponse,\n SynapseClientError,\n UploadCsvToExistingTableProps\n >({\n ...options,\n mutationFn: async ({ tableId, csvTableDescriptor, fileHandleId }) => {\n const tableUpdateRequest: TableUpdateTransactionRequest = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.TableUpdateTransactionRequest',\n entityId: tableId,\n changes: [\n {\n tableId: tableId,\n uploadFileHandleId: fileHandleId,\n csvTableDescriptor,\n concreteType:\n 'org.sagebionetworks.repo.model.table.UploadToTableRequest',\n },\n ],\n }\n\n return updateTableInTransaction(tableUpdateRequest)\n },\n })\n}\n"],"mappings":";;;AAkBA,SAAwB,EACtB,GAQA;CACA,IAAM,EAAE,aAAa,MAA6B,GAA2B;AAE7E,QAAO,EAIL;EACA,GAAG;EACH,YAAY,OAAO,EAAE,YAAS,uBAAoB,sBAgBzC,EAAyB;GAd9B,cACE;GACF,UAAU;GACV,SAAS,CACP;IACW;IACT,oBAAoB;IACpB;IACA,cACE;IACH,CACF;GAG6B,CAAmB;EAEtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionalWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/utils/ConditionalWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,SAAS,EACV,MAAM,OAAO,CAAA;AAEd,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,aAAa,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"ConditionalWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/utils/ConditionalWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,SAAS,EACV,MAAM,OAAO,CAAA;AAEd,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,aAAa,CAAC,iBAAiB,CAAC,GAC/C,aAAa,CAAC,iBAAiB,CAAC,IAChC;IACF,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,QAAQ,CAAA;IACjB,YAAY,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAA;IACzD,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAQxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionalWrapper.js","names":[],"sources":["../../../src/components/utils/ConditionalWrapper.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentType,\n PropsWithChildren,\n ReactNode,\n} from 'react'\n\ntype ConditionalWrapperProps<\n TWrapper extends ComponentType<PropsWithChildren>
|
|
1
|
+
{"version":3,"file":"ConditionalWrapper.js","names":[],"sources":["../../../src/components/utils/ConditionalWrapper.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentType,\n PropsWithChildren,\n ReactNode,\n} from 'react'\n\ntype ConditionalWrapperProps<\n TWrapper extends ComponentType<PropsWithChildren> =\n ComponentType<PropsWithChildren>,\n> = {\n condition: boolean\n wrapper: TWrapper\n wrapperProps?: Omit<ComponentProps<TWrapper>, 'children'>\n children: ReactNode\n}\n\nexport default function ConditionalWrapper(props: ConditionalWrapperProps) {\n const { condition, wrapper: Wrapper, wrapperProps, children } = props\n\n return condition ? (\n <Wrapper {...wrapperProps}>{children}</Wrapper>\n ) : (\n <>{children}</>\n )\n}\n"],"mappings":";;AAiBA,SAAwB,EAAmB,GAAgC;CACzE,IAAM,EAAE,cAAW,SAAS,GAAS,iBAAc,gBAAa;AAEhE,QAAO,IACL,kBAAC,GAAD;EAAS,GAAI;EAAe;EAAmB,CAAA,GAE/C,kBAAA,GAAA,EAAG,aAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementWithTooltip.js","names":[],"sources":["../../../src/components/widgets/ElementWithTooltip.tsx"],"sourcesContent":["import React from 'react'\nimport { Menu, Tooltip } from '@mui/material'\nimport {\n ComponentElement,\n CSSProperties,\n MouseEvent,\n PropsWithChildren,\n ReactNode,\n useState,\n} from 'react'\nimport IconSvg, { IconSvgProps } from '../IconSvg/IconSvg'\nimport { Icon } from '../row_renderers/utils'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ntype CustomImageProps = {\n svgImg: ComponentElement<any, any>\n altText: string\n}\n\nexport type TooltipVisualProps = {\n delayShow: number\n place: 'top' | 'right' | 'bottom' | 'left'\n type: 'dark' | 'success' | 'warning' | 'error' | 'info' | 'light'\n effect: 'float' | 'solid'\n border?: boolean\n}\n\nconst DEFAULT_TOOLTIP_VISUAL_PROPS: Partial<TooltipVisualProps> = {\n place: 'top',\n}\n\n/*****************************************\n * The control needs to either have a child element or needs to have an image supplied\n * If the child element is supplied the control renders the child applying additional properties\n * If the image is supplied the control renders a clickable image\n * If there are no children and callback Fn is not supplied it is assumed to be a a dropdown trigger\n */\n\ntype ElementWithTooltipProps = PropsWithChildren<{\n image?: IconSvgProps | CustomImageProps\n imageColor?: string\n tooltipText: string\n callbackFn?: () => void\n className?: string\n tooltipVisualProps?: Partial<TooltipVisualProps>\n darkTheme?: boolean\n size?: string\n icon?: ReactNode\n /** The items to show in the menu -- NOTE: this cannot be a Fragment!\n * @see https://stackoverflow.com/questions/75083605/mui-the-menu-component-doesnt-accept-a-fragment-as-a-child-consider-providing\n */\n menuItems?: React.ReactNode\n}>\n\nfunction getTooltipTriggerContents(\n image: IconSvgProps | CustomImageProps,\n imageColor: string | undefined,\n size: CSSProperties['width'] | undefined,\n) {\n if ('svgImg' in image) {\n return image.svgImg\n } else {\n return <IconSvg {...image} sx={{ color: imageColor, width: size }} />\n }\n}\n\nexport const ElementWithTooltip = ({\n image,\n callbackFn,\n tooltipText,\n className = '',\n imageColor,\n tooltipVisualProps = DEFAULT_TOOLTIP_VISUAL_PROPS,\n children,\n darkTheme,\n size,\n icon,\n menuItems,\n}: ElementWithTooltipProps): React.ReactNode => {\n const { place } = tooltipVisualProps\n const iconComponent = icon ? (\n typeof icon === 'string' ? (\n <Icon type={icon}></Icon>\n ) : (\n icon\n )\n ) : undefined\n const tooltipTriggerContents = iconComponent\n ? iconComponent\n : image\n
|
|
1
|
+
{"version":3,"file":"ElementWithTooltip.js","names":[],"sources":["../../../src/components/widgets/ElementWithTooltip.tsx"],"sourcesContent":["import React from 'react'\nimport { Menu, Tooltip } from '@mui/material'\nimport {\n ComponentElement,\n CSSProperties,\n MouseEvent,\n PropsWithChildren,\n ReactNode,\n useState,\n} from 'react'\nimport IconSvg, { IconSvgProps } from '../IconSvg/IconSvg'\nimport { Icon } from '../row_renderers/utils'\nimport { TOOLTIP_DELAY_SHOW } from '../SynapseTable/SynapseTableConstants'\n\ntype CustomImageProps = {\n svgImg: ComponentElement<any, any>\n altText: string\n}\n\nexport type TooltipVisualProps = {\n delayShow: number\n place: 'top' | 'right' | 'bottom' | 'left'\n type: 'dark' | 'success' | 'warning' | 'error' | 'info' | 'light'\n effect: 'float' | 'solid'\n border?: boolean\n}\n\nconst DEFAULT_TOOLTIP_VISUAL_PROPS: Partial<TooltipVisualProps> = {\n place: 'top',\n}\n\n/*****************************************\n * The control needs to either have a child element or needs to have an image supplied\n * If the child element is supplied the control renders the child applying additional properties\n * If the image is supplied the control renders a clickable image\n * If there are no children and callback Fn is not supplied it is assumed to be a a dropdown trigger\n */\n\ntype ElementWithTooltipProps = PropsWithChildren<{\n image?: IconSvgProps | CustomImageProps\n imageColor?: string\n tooltipText: string\n callbackFn?: () => void\n className?: string\n tooltipVisualProps?: Partial<TooltipVisualProps>\n darkTheme?: boolean\n size?: string\n icon?: ReactNode\n /** The items to show in the menu -- NOTE: this cannot be a Fragment!\n * @see https://stackoverflow.com/questions/75083605/mui-the-menu-component-doesnt-accept-a-fragment-as-a-child-consider-providing\n */\n menuItems?: React.ReactNode\n}>\n\nfunction getTooltipTriggerContents(\n image: IconSvgProps | CustomImageProps,\n imageColor: string | undefined,\n size: CSSProperties['width'] | undefined,\n) {\n if ('svgImg' in image) {\n return image.svgImg\n } else {\n return <IconSvg {...image} sx={{ color: imageColor, width: size }} />\n }\n}\n\nexport const ElementWithTooltip = ({\n image,\n callbackFn,\n tooltipText,\n className = '',\n imageColor,\n tooltipVisualProps = DEFAULT_TOOLTIP_VISUAL_PROPS,\n children,\n darkTheme,\n size,\n icon,\n menuItems,\n}: ElementWithTooltipProps): React.ReactNode => {\n const { place } = tooltipVisualProps\n const iconComponent = icon ? (\n typeof icon === 'string' ? (\n <Icon type={icon}></Icon>\n ) : (\n icon\n )\n ) : undefined\n const tooltipTriggerContents = iconComponent\n ? iconComponent\n : image\n ? getTooltipTriggerContents(image, imageColor, size)\n : children || <></>\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const open = Boolean(anchorEl)\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n const handleClose = () => {\n setAnchorEl(null)\n }\n //if there is no callbackFn - assume it's a toggle\n\n let tooltipTrigger: ReactNode\n if (!children) {\n tooltipTrigger = (\n <button\n tabIndex={0}\n className={`ElementWithTooltip SRC-hand-cursor SRC-grey-background-hover ${className} ${\n darkTheme ? 'dark-theme' : ''\n } `}\n onClick={e => {\n if (callbackFn) {\n callbackFn()\n } else {\n // open dropdown menu\n handleClick(e)\n }\n }}\n aria-label={tooltipText}\n >\n {tooltipTriggerContents}\n </button>\n )\n } else {\n tooltipTrigger = <div className=\"SRC-hand-cursor\">{children}</div>\n }\n\n return (\n <>\n <Tooltip\n title={tooltipText}\n enterNextDelay={TOOLTIP_DELAY_SHOW}\n placement={place}\n data-testid=\"ElementTooltip\"\n >\n {tooltipTrigger}\n </Tooltip>\n {menuItems && (\n <Menu anchorEl={anchorEl} open={open} onClose={handleClose}>\n {menuItems}\n </Menu>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;;;AA2BA,IAAM,IAA4D,EAChE,OAAO,OACR;AAyBD,SAAS,EACP,GACA,GACA,GACA;AAIE,QAHE,YAAY,IACP,EAAM,SAEN,kBAAC,GAAD;EAAS,GAAI;EAAO,IAAI;GAAE,OAAO;GAAY,OAAO;GAAM;EAAI,CAAA;;AAIzE,IAAa,KAAsB,EACjC,UACA,eACA,gBACA,eAAY,IACZ,eACA,wBAAqB,GACrB,aACA,cACA,SACA,SACA,mBAC8C;CAC9C,IAAM,EAAE,aAAU,GAQZ,KAPgB,IACpB,OAAO,KAAS,WACd,kBAAC,GAAD,EAAM,MAAM,GAAa,CAAA,GAEzB,IAEA,KAAA,OAGA,IACE,EAA0B,GAAO,GAAY,EAAK,GAClD,KAAY,kBAAA,GAAA,EAAK,CAAA,GAEjB,CAAC,GAAU,KAAe,EAA6B,KAAK,EAC5D,IAAO,EAAQ,GACf,KAAe,MAAyC;AAC5D,IAAY,EAAM,cAAc;IAE5B,UAAoB;AACxB,IAAY,KAAK;IAIf;AAyBJ,QAxBA,AACE,IADG,IAqBc,kBAAC,OAAD;EAAK,WAAU;EAAmB;EAAe,CAAA,GAnBhE,kBAAC,UAAD;EACE,UAAU;EACV,WAAW,gEAAgE,EAAU,GACnF,IAAY,eAAe,GAC5B;EACD,UAAS,MAAK;AACZ,GAAI,IACF,GAAY,GAGZ,EAAY,EAAE;;EAGlB,cAAY;YAEX;EACM,CAAA,EAOX,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,OAAO;EACP,gBAAA;EACA,WAAW;EACX,eAAY;YAEX;EACO,CAAA,EACT,KACC,kBAAC,GAAD;EAAgB;EAAgB;EAAM,SAAS;YAC5C;EACI,CAAA,CAER,EAAA,CAAA"}
|