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
|
@@ -2,21 +2,21 @@ import e from "../TextField/index.js";
|
|
|
2
2
|
import t from "./useCreateAndRegisterChallengeTeam.js";
|
|
3
3
|
import { forwardRef as n, useEffect as r, useImperativeHandle as i, useMemo as a, useState as o } from "react";
|
|
4
4
|
import { isEmpty as s, noop as c } from "lodash-es";
|
|
5
|
-
import { Alert as l, Box as u,
|
|
6
|
-
import { jsx as
|
|
7
|
-
import
|
|
5
|
+
import { Alert as l, Box as u, Stack as d, Typography as f } from "@mui/material";
|
|
6
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
7
|
+
import h from "papaparse";
|
|
8
8
|
//#region src/components/ChallengeTeamWizard/CreateChallengeTeam.tsx
|
|
9
|
-
var { parse:
|
|
10
|
-
let { challengeId:
|
|
9
|
+
var { parse: g } = h, _ = 3, v = "Please limit the initial number of invited members to three. You may add additional members after the team has been created.", y = n(function(n, h) {
|
|
10
|
+
let { challengeId: v, onCanSubmitChange: y = c, onFinished: b = c } = n, [x, S] = o({
|
|
11
11
|
name: "",
|
|
12
12
|
description: ""
|
|
13
|
-
}), [
|
|
14
|
-
|
|
15
|
-
...
|
|
13
|
+
}), [C, w] = o(""), [T, E] = o(""), D = (e) => {
|
|
14
|
+
S({
|
|
15
|
+
...x,
|
|
16
16
|
...e
|
|
17
17
|
});
|
|
18
|
-
}, { inviteesParseResult:
|
|
19
|
-
let e =
|
|
18
|
+
}, { inviteesParseResult: O, parsedInvitees: k } = a(() => {
|
|
19
|
+
let e = g(T, {
|
|
20
20
|
delimiter: ",",
|
|
21
21
|
transform(e) {
|
|
22
22
|
return e.trim();
|
|
@@ -26,110 +26,113 @@ var { parse: h } = m, g = 3, _ = "Please limit the initial number of invited mem
|
|
|
26
26
|
inviteesParseResult: e,
|
|
27
27
|
parsedInvitees: e.data[0] || []
|
|
28
28
|
};
|
|
29
|
-
}, [
|
|
29
|
+
}, [T]), A = k.length > _, j = !!(x && x.name && x.name.length > 1 && !A);
|
|
30
30
|
r(() => {
|
|
31
|
-
|
|
32
|
-
}, [
|
|
33
|
-
let { createAndRegisterTeam:
|
|
34
|
-
return i(
|
|
35
|
-
if (!
|
|
31
|
+
y(j);
|
|
32
|
+
}, [j, y]);
|
|
33
|
+
let { createAndRegisterTeam: M, isPending: N, errors: P } = t();
|
|
34
|
+
return i(h, () => ({ submit() {
|
|
35
|
+
if (!j) {
|
|
36
36
|
console.warn("Attempted to submit when form data was not valid. Nothing will happen.");
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
M(x, v, k, C).then(([e]) => {
|
|
40
|
+
b(e.id);
|
|
41
41
|
}).catch(() => {});
|
|
42
42
|
} }), [
|
|
43
|
-
A,
|
|
44
|
-
O,
|
|
45
43
|
j,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
disabled: M
|
|
65
|
-
}),
|
|
66
|
-
/* @__PURE__ */ f(u, {
|
|
67
|
-
sx: { display: "flex" },
|
|
68
|
-
children: /* @__PURE__ */ f(e, {
|
|
69
|
-
id: "description",
|
|
70
|
-
label: /* @__PURE__ */ f(u, {
|
|
71
|
-
sx: {
|
|
72
|
-
display: "flex",
|
|
73
|
-
gap: 2
|
|
74
|
-
},
|
|
75
|
-
children: /* @__PURE__ */ f(u, { children: "Team Description" })
|
|
76
|
-
}),
|
|
77
|
-
value: b.description,
|
|
44
|
+
k,
|
|
45
|
+
M,
|
|
46
|
+
x,
|
|
47
|
+
v,
|
|
48
|
+
C,
|
|
49
|
+
b
|
|
50
|
+
]), /* @__PURE__ */ m(d, {
|
|
51
|
+
gap: 2,
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ p(f, {
|
|
54
|
+
variant: "body1",
|
|
55
|
+
sx: { lineHeight: "20px" },
|
|
56
|
+
children: "Create a new team for this Challenge!"
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ p(e, {
|
|
59
|
+
id: "name",
|
|
60
|
+
label: "Team Name",
|
|
61
|
+
value: x.name,
|
|
78
62
|
fullWidth: !0,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
onChange: (e) =>
|
|
82
|
-
disabled:
|
|
83
|
-
})
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
63
|
+
autoFocus: !0,
|
|
64
|
+
required: !0,
|
|
65
|
+
onChange: (e) => D({ name: e.target.value }),
|
|
66
|
+
disabled: N
|
|
67
|
+
}),
|
|
68
|
+
/* @__PURE__ */ p(u, {
|
|
69
|
+
sx: { display: "flex" },
|
|
70
|
+
children: /* @__PURE__ */ p(e, {
|
|
71
|
+
id: "description",
|
|
72
|
+
label: /* @__PURE__ */ p(u, {
|
|
73
|
+
sx: {
|
|
74
|
+
display: "flex",
|
|
75
|
+
gap: 2
|
|
76
|
+
},
|
|
77
|
+
children: /* @__PURE__ */ p(u, { children: "Team Description" })
|
|
78
|
+
}),
|
|
79
|
+
value: x.description,
|
|
80
|
+
fullWidth: !0,
|
|
81
|
+
multiline: !0,
|
|
82
|
+
rows: 4,
|
|
83
|
+
onChange: (e) => D({ description: e.target.value }),
|
|
84
|
+
disabled: N
|
|
85
|
+
})
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ p(u, {
|
|
88
|
+
sx: { display: "flex" },
|
|
89
|
+
children: /* @__PURE__ */ p(e, {
|
|
90
|
+
id: "message",
|
|
91
|
+
label: /* @__PURE__ */ p(u, {
|
|
92
|
+
sx: {
|
|
93
|
+
display: "flex",
|
|
94
|
+
gap: 2
|
|
95
|
+
},
|
|
96
|
+
children: /* @__PURE__ */ p(u, { children: "Recruitment Message" })
|
|
97
|
+
}),
|
|
98
|
+
value: C,
|
|
99
|
+
fullWidth: !0,
|
|
100
|
+
multiline: !0,
|
|
101
|
+
rows: 4,
|
|
102
|
+
onChange: (e) => w(e.target.value),
|
|
103
|
+
disabled: N
|
|
104
|
+
})
|
|
105
|
+
}),
|
|
106
|
+
/* @__PURE__ */ p(e, {
|
|
107
|
+
id: "invitees",
|
|
108
|
+
label: "Emails of Additional Members to Invite (max 3)",
|
|
109
|
+
placeholder: "Enter emails separated by comma",
|
|
110
|
+
value: T,
|
|
97
111
|
fullWidth: !0,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
112
|
+
onChange: (e) => E(e.target.value),
|
|
113
|
+
disabled: N
|
|
114
|
+
}),
|
|
115
|
+
(A || !s(O.errors) || P) && /* @__PURE__ */ m(l, {
|
|
116
|
+
severity: "error",
|
|
117
|
+
children: [
|
|
118
|
+
A && /* @__PURE__ */ p(f, {
|
|
119
|
+
variant: "body1",
|
|
120
|
+
children: "Please limit the initial number of invited members to three. You may add additional members after the team has been created."
|
|
121
|
+
}),
|
|
122
|
+
O.errors.map((e, t) => /* @__PURE__ */ p(f, {
|
|
123
|
+
variant: "body1",
|
|
124
|
+
children: e.message
|
|
125
|
+
}, t)),
|
|
126
|
+
P && P.map((e) => /* @__PURE__ */ p(f, {
|
|
127
|
+
variant: "body1",
|
|
128
|
+
children: e.reason
|
|
129
|
+
}, e.reason))
|
|
130
|
+
]
|
|
102
131
|
})
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
id: "invitees",
|
|
106
|
-
label: "Emails of Additional Members to Invite (max 3)",
|
|
107
|
-
placeholder: "Enter emails separated by comma",
|
|
108
|
-
value: w,
|
|
109
|
-
fullWidth: !0,
|
|
110
|
-
onChange: (e) => T(e.target.value),
|
|
111
|
-
disabled: M
|
|
112
|
-
}),
|
|
113
|
-
(k || !s(D.errors) || N) && /* @__PURE__ */ p(l, {
|
|
114
|
-
severity: "error",
|
|
115
|
-
children: [
|
|
116
|
-
k && /* @__PURE__ */ f(d, {
|
|
117
|
-
variant: "body1",
|
|
118
|
-
children: "Please limit the initial number of invited members to three. You may add additional members after the team has been created."
|
|
119
|
-
}),
|
|
120
|
-
D.errors.map((e, t) => /* @__PURE__ */ f(d, {
|
|
121
|
-
variant: "body1",
|
|
122
|
-
children: e.message
|
|
123
|
-
}, t)),
|
|
124
|
-
N && N.map((e) => /* @__PURE__ */ f(d, {
|
|
125
|
-
variant: "body1",
|
|
126
|
-
children: e.reason
|
|
127
|
-
}, e.reason))
|
|
128
|
-
]
|
|
129
|
-
})
|
|
130
|
-
] });
|
|
132
|
+
]
|
|
133
|
+
});
|
|
131
134
|
});
|
|
132
135
|
//#endregion
|
|
133
|
-
export {
|
|
136
|
+
export { y as CreateChallengeTeam, v as TOO_MANY_INVITEES_ERROR };
|
|
134
137
|
|
|
135
138
|
//# sourceMappingURL=CreateChallengeTeam.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateChallengeTeam.js","names":[],"sources":["../../../src/components/ChallengeTeamWizard/CreateChallengeTeam.tsx"],"sourcesContent":["import {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { Alert, Box, Typography } from '@mui/material'\nimport TextField from '../TextField'\nimport { CreateTeamRequest, Team } from '@sage-bionetworks/synapse-types'\nimport useCreateAndRegisterChallengeTeam from './useCreateAndRegisterChallengeTeam'\nimport { isEmpty, noop } from 'lodash-es'\nimport papaparseLib from 'papaparse'\n// papaparse is CJS-only; pull named values from the default export.\nconst { parse } = papaparseLib\n\nexport type CreateChallengeTeamProps = {\n challengeId: string\n onCanSubmitChange?: (canSubmit: boolean) => void\n onFinished?: (teamId: string) => void\n}\n\nconst INVITEE_LIMIT = 3\nexport const TOO_MANY_INVITEES_ERROR =\n 'Please limit the initial number of invited members to three. You may add additional members after the team has been created.'\n\nexport type CreateChallengeTeamHandle = {\n // Allow the parent component to trigger a submit of the form, so this may be embedded in an arbitrary modal.\n submit: () => void\n}\n\nexport const CreateChallengeTeam = forwardRef(function CreateChallengeTeam(\n props: CreateChallengeTeamProps,\n ref: ForwardedRef<CreateChallengeTeamHandle>,\n) {\n const { challengeId, onCanSubmitChange = noop, onFinished = noop } = props\n const [team, setTeam] = useState<CreateTeamRequest>({\n name: '',\n description: '',\n })\n const [invitationMessage, setInvitationMessage] = useState('')\n const [rawInvitees, setRawInvitees] = useState('')\n\n const handleTeamUpdate = (update: Partial<Team>) => {\n const updatedTeam: CreateTeamRequest = { ...team, ...update }\n setTeam(updatedTeam)\n }\n\n const { inviteesParseResult, parsedInvitees } = useMemo(() => {\n const inviteesParseResult = parse<string[]>(rawInvitees, {\n delimiter: ',',\n transform(value) {\n return value.trim()\n },\n })\n const parsedInvitees: string[] = inviteesParseResult.data[0] || []\n\n return { inviteesParseResult, parsedInvitees }\n }, [rawInvitees])\n\n const numberOfInvitees = parsedInvitees.length\n const tooManyInvitees = numberOfInvitees > INVITEE_LIMIT\n\n const formDataIsValid = Boolean(\n team && team.name && team.name.length > 1 && !tooManyInvitees,\n )\n\n useEffect(() => {\n onCanSubmitChange(formDataIsValid)\n }, [formDataIsValid, onCanSubmitChange])\n\n const {\n createAndRegisterTeam,\n isPending: mutationIsPending,\n errors,\n } = useCreateAndRegisterChallengeTeam()\n\n useImperativeHandle(
|
|
1
|
+
{"version":3,"file":"CreateChallengeTeam.js","names":[],"sources":["../../../src/components/ChallengeTeamWizard/CreateChallengeTeam.tsx"],"sourcesContent":["import {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { Alert, Box, Stack, Typography } from '@mui/material'\nimport TextField from '../TextField'\nimport { CreateTeamRequest, Team } from '@sage-bionetworks/synapse-types'\nimport useCreateAndRegisterChallengeTeam from './useCreateAndRegisterChallengeTeam'\nimport { isEmpty, noop } from 'lodash-es'\nimport papaparseLib from 'papaparse'\n// papaparse is CJS-only; pull named values from the default export.\nconst { parse } = papaparseLib\n\nexport type CreateChallengeTeamProps = {\n challengeId: string\n onCanSubmitChange?: (canSubmit: boolean) => void\n onFinished?: (teamId: string) => void\n}\n\nconst INVITEE_LIMIT = 3\nexport const TOO_MANY_INVITEES_ERROR =\n 'Please limit the initial number of invited members to three. You may add additional members after the team has been created.'\n\nexport type CreateChallengeTeamHandle = {\n // Allow the parent component to trigger a submit of the form, so this may be embedded in an arbitrary modal.\n submit: () => void\n}\n\nexport const CreateChallengeTeam = forwardRef(function CreateChallengeTeam(\n props: CreateChallengeTeamProps,\n ref: ForwardedRef<CreateChallengeTeamHandle>,\n) {\n const { challengeId, onCanSubmitChange = noop, onFinished = noop } = props\n const [team, setTeam] = useState<CreateTeamRequest>({\n name: '',\n description: '',\n })\n const [invitationMessage, setInvitationMessage] = useState('')\n const [rawInvitees, setRawInvitees] = useState('')\n\n const handleTeamUpdate = (update: Partial<Team>) => {\n const updatedTeam: CreateTeamRequest = { ...team, ...update }\n setTeam(updatedTeam)\n }\n\n const { inviteesParseResult, parsedInvitees } = useMemo(() => {\n const inviteesParseResult = parse<string[]>(rawInvitees, {\n delimiter: ',',\n transform(value) {\n return value.trim()\n },\n })\n const parsedInvitees: string[] = inviteesParseResult.data[0] || []\n\n return { inviteesParseResult, parsedInvitees }\n }, [rawInvitees])\n\n const numberOfInvitees = parsedInvitees.length\n const tooManyInvitees = numberOfInvitees > INVITEE_LIMIT\n\n const formDataIsValid = Boolean(\n team && team.name && team.name.length > 1 && !tooManyInvitees,\n )\n\n useEffect(() => {\n onCanSubmitChange(formDataIsValid)\n }, [formDataIsValid, onCanSubmitChange])\n\n const {\n createAndRegisterTeam,\n isPending: mutationIsPending,\n errors,\n } = useCreateAndRegisterChallengeTeam()\n\n useImperativeHandle(ref, () => {\n return {\n submit() {\n if (!formDataIsValid) {\n console.warn(\n 'Attempted to submit when form data was not valid. Nothing will happen.',\n )\n return\n }\n createAndRegisterTeam(\n team,\n challengeId,\n parsedInvitees,\n invitationMessage,\n )\n .then(([newTeam]) => {\n onFinished(newTeam.id)\n })\n .catch(() => {\n // The hook will return errors, so no need to handle them here\n })\n },\n }\n }, [\n formDataIsValid,\n parsedInvitees,\n createAndRegisterTeam,\n team,\n challengeId,\n invitationMessage,\n onFinished,\n ])\n\n return (\n <Stack gap={2}>\n <Typography variant=\"body1\" sx={{ lineHeight: '20px' }}>\n Create a new team for this Challenge!\n </Typography>\n <TextField\n id=\"name\"\n label=\"Team Name\"\n value={team.name}\n fullWidth\n autoFocus\n required\n onChange={event => handleTeamUpdate({ name: event.target.value })}\n disabled={mutationIsPending}\n />\n <Box\n sx={{\n display: 'flex',\n }}\n >\n <TextField\n id=\"description\"\n label={\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n }}\n >\n <Box>Team Description</Box>\n </Box>\n }\n value={team.description}\n fullWidth\n multiline\n rows={4}\n onChange={event =>\n handleTeamUpdate({ description: event.target.value })\n }\n disabled={mutationIsPending}\n />\n </Box>\n <Box\n sx={{\n display: 'flex',\n }}\n >\n <TextField\n id=\"message\"\n label={\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n }}\n >\n <Box>Recruitment Message</Box>\n </Box>\n }\n value={invitationMessage}\n fullWidth\n multiline\n rows={4}\n onChange={event => setInvitationMessage(event.target.value)}\n disabled={mutationIsPending}\n />\n </Box>\n <TextField\n id=\"invitees\"\n label=\"Emails of Additional Members to Invite (max 3)\"\n placeholder=\"Enter emails separated by comma\"\n value={rawInvitees}\n fullWidth\n onChange={event => setRawInvitees(event.target.value)}\n disabled={mutationIsPending}\n />\n {(tooManyInvitees || !isEmpty(inviteesParseResult.errors) || errors) && (\n <Alert severity=\"error\">\n {tooManyInvitees && (\n <Typography variant={'body1'}>{TOO_MANY_INVITEES_ERROR}</Typography>\n )}\n {inviteesParseResult.errors.map((error, index) => (\n <Typography key={index} variant={'body1'}>\n {error.message}\n </Typography>\n ))}\n {errors &&\n errors.map(error => (\n <Typography key={error.reason} variant={'body1'}>\n {error.reason}\n </Typography>\n ))}\n </Alert>\n )}\n </Stack>\n )\n})\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MembershipRequestForm.d.ts","sourceRoot":"","sources":["../../../src/components/ChallengeTeamWizard/MembershipRequestForm.tsx"],"names":[],"mappings":"AAgBA,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IAExC,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"MembershipRequestForm.d.ts","sourceRoot":"","sources":["../../../src/components/ChallengeTeamWizard/MembershipRequestForm.tsx"],"names":[],"mappings":"AAgBA,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IAExC,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,8HA8EhC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MembershipRequestForm.js","names":[],"sources":["../../../src/components/ChallengeTeamWizard/MembershipRequestForm.tsx"],"sourcesContent":["import {\n useGetCurrentUserProfile,\n useGetTeam,\n useRequestToJoinTeam,\n} from '@/synapse-queries'\nimport { Alert, Box, TextField, Typography } from '@mui/material'\nimport { noop } from 'lodash-es'\nimport {\n ChangeEvent,\n ForwardedRef,\n forwardRef,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\n\ntype JoinRequestFormProps = {\n teamId: string\n onRequestSubmitted: () => void\n}\n\nexport type MembershipRequestFormHandle = {\n // Allow the parent component to trigger a submit of the form, so this may be embedded in an arbitrary modal.\n submit: () => void\n}\n\n/**\n * Component that provides a form that a user can use to create a MembershipRequest for a Team.\n *\n * To submit the form, pass a ref and call the `submit` handle on the ref.\n */\nexport const MembershipRequestForm = forwardRef(function MembershipRequestForm(\n props: JoinRequestFormProps,\n ref: ForwardedRef<MembershipRequestFormHandle>,\n) {\n const { teamId, onRequestSubmitted = noop } = props\n const [message, setMessage] = useState<string>('')\n\n const { data: userProfile } = useGetCurrentUserProfile()\n\n const {\n data: team,\n status,\n error,\n } = useGetTeam(teamId, { enabled: !!teamId })\n\n const { mutate: requestToJoinTeam } = useRequestToJoinTeam({\n onSuccess: () => {\n onRequestSubmitted()\n },\n })\n const handleMessageChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n const value = event.target.value\n setMessage(value)\n }\n\n useImperativeHandle(
|
|
1
|
+
{"version":3,"file":"MembershipRequestForm.js","names":[],"sources":["../../../src/components/ChallengeTeamWizard/MembershipRequestForm.tsx"],"sourcesContent":["import {\n useGetCurrentUserProfile,\n useGetTeam,\n useRequestToJoinTeam,\n} from '@/synapse-queries'\nimport { Alert, Box, TextField, Typography } from '@mui/material'\nimport { noop } from 'lodash-es'\nimport {\n ChangeEvent,\n ForwardedRef,\n forwardRef,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\n\ntype JoinRequestFormProps = {\n teamId: string\n onRequestSubmitted: () => void\n}\n\nexport type MembershipRequestFormHandle = {\n // Allow the parent component to trigger a submit of the form, so this may be embedded in an arbitrary modal.\n submit: () => void\n}\n\n/**\n * Component that provides a form that a user can use to create a MembershipRequest for a Team.\n *\n * To submit the form, pass a ref and call the `submit` handle on the ref.\n */\nexport const MembershipRequestForm = forwardRef(function MembershipRequestForm(\n props: JoinRequestFormProps,\n ref: ForwardedRef<MembershipRequestFormHandle>,\n) {\n const { teamId, onRequestSubmitted = noop } = props\n const [message, setMessage] = useState<string>('')\n\n const { data: userProfile } = useGetCurrentUserProfile()\n\n const {\n data: team,\n status,\n error,\n } = useGetTeam(teamId, { enabled: !!teamId })\n\n const { mutate: requestToJoinTeam } = useRequestToJoinTeam({\n onSuccess: () => {\n onRequestSubmitted()\n },\n })\n const handleMessageChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n const value = event.target.value\n setMessage(value)\n }\n\n useImperativeHandle(ref, () => {\n return {\n submit() {\n if (userProfile) {\n requestToJoinTeam({\n teamId: teamId,\n userId: userProfile.ownerId,\n message: message,\n expiresOn: undefined,\n })\n }\n },\n }\n }, [message, requestToJoinTeam, teamId, userProfile])\n\n if (status === 'pending') {\n return (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n }}\n >\n <SynapseSpinner />\n </Box>\n )\n }\n\n if (status === 'error') {\n return <Alert severity={'error'}>{error.message}</Alert>\n }\n\n return (\n <>\n <Typography variant=\"body1\" sx={{ lineHeight: '20px' }}>\n The following message will be sent to the Team Manager(s) of the{' '}\n <strong>{team.name}</strong> team.\n </Typography>\n <Box>\n <TextField\n label={'Your Message to Team Managers(s)'}\n id=\"membershipRequestMessage\"\n value={message}\n fullWidth\n multiline\n rows={4}\n autoFocus\n onChange={handleMessageChange}\n />\n </Box>\n </>\n )\n})\n"],"mappings":";;;;;;;;;;AA+BA,IAAa,IAAwB,EAAW,SAC9C,GACA,GACA;CACA,IAAM,EAAE,WAAQ,wBAAqB,MAAS,GACxC,CAAC,GAAS,KAAc,EAAiB,GAAG,EAE5C,EAAE,MAAM,MAAgB,GAA0B,EAElD,EACJ,MAAM,GACN,WACA,aACE,EAAW,GAAQ,EAAE,SAAS,CAAC,CAAC,GAAQ,CAAC,EAEvC,EAAE,QAAQ,MAAsB,EAAqB,EACzD,iBAAiB;AACf,KAAoB;IAEvB,CAAC;AAuCF,QAjCA,EAAoB,UACX,EACL,SAAS;AACP,EAAI,KACF,EAAkB;GACR;GACR,QAAQ,EAAY;GACX;GACT,WAAW,KAAA;GACZ,CAAC;IAGP,GACA;EAAC;EAAS;EAAmB;EAAQ;EAAY,CAAC,EAEjD,MAAW,YAEX,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GACf,KAAK;GACN;YAED,kBAAC,GAAD,EAAkB,CAAA;EACd,CAAA,GAIN,MAAW,UACN,kBAAC,GAAD;EAAO,UAAU;YAAU,EAAM;EAAgB,CAAA,GAIxD,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAQ;EAAQ,IAAI,EAAE,YAAY,QAAQ;YAAtD;GAAwD;GACW;GACjE,kBAAC,UAAD,EAAA,UAAS,EAAK,MAAc,CAAA;;GACjB;KACb,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EACE,OAAO;EACP,IAAG;EACH,OAAO;EACP,WAAA;EACA,WAAA;EACA,MAAM;EACN,WAAA;EACA,WArDqB,MAA4C;GACvE,IAAM,IAAQ,EAAM,OAAO;AAC3B,KAAW,EAAM;;EAoDX,CAAA,EACE,CAAA,CACL,EAAA,CAAA;EAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateAndRegisterChallengeTeam.d.ts","sourceRoot":"","sources":["../../../src/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCreateAndRegisterChallengeTeam.d.ts","sourceRoot":"","sources":["../../../src/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,IAAI,EACL,MAAM,iCAAiC,CAAA;AAGxC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,iCAAiC;0CAyCrC,iBAAiB,eAClB,MAAM,YACT,MAAM,EAAE,qBACC,MAAM,KACxB,OAAO,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC,CAAC;;;EA4C5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateAndRegisterChallengeTeam.js","names":[],"sources":["../../../src/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useCreateAndRegisterChallengeTeam.js","names":[],"sources":["../../../src/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.ts"],"sourcesContent":["import {\n useCreateTeam,\n useInviteUserToTeam,\n useRegisterTeamForChallenge,\n} from '@/synapse-queries'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport {\n ChallengeTeam,\n CreateTeamRequest,\n MembershipInvitation,\n Team,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback, useMemo } from 'react'\n\n/**\n * Hook that in one call will\n * - Create a team\n * - Register that team for a challenge\n * - Send invitations to join the team to a defined list of email addresses\n */\nexport default function useCreateAndRegisterChallengeTeam() {\n const {\n mutateAsync: createTeam,\n isPending: createTeamIsPending,\n error: createTeamError,\n } = useCreateTeam()\n const {\n mutateAsync: inviteUserToTeam,\n isPending: invitationIsPending,\n error: invitationError,\n } = useInviteUserToTeam()\n const {\n mutateAsync: registerTeamForChallenge,\n isPending: challengeRegistrationIsPending,\n error: challengeRegistrationError,\n } = useRegisterTeamForChallenge()\n\n // Invite the list of emails to join the team\n const handleInviteTeamMembers = useCallback(\n async (\n teamId: string,\n inviteeEmails: string[],\n invitationMessage: string,\n ) => {\n const results: MembershipInvitation[] = []\n // Send the invitations sequentially\n for (const inviteeEmail of inviteeEmails) {\n const membershipInvitation = await inviteUserToTeam({\n teamId: teamId,\n inviteeEmail: inviteeEmail.trim(),\n message: invitationMessage,\n })\n results.push(membershipInvitation)\n }\n return results\n },\n [inviteUserToTeam],\n )\n\n const createAndRegisterTeam = useCallback(\n async (\n teamToCreate: CreateTeamRequest,\n challengeId: string,\n invitees: string[],\n invitationMessage: string,\n ): Promise<[Team, ChallengeTeam, MembershipInvitation[]]> => {\n // Create the team\n const newTeam = await createTeam(teamToCreate)\n\n // Register for the challenge and invite the team members--we can do these simultaneously\n const registerPromise = registerTeamForChallenge({\n teamId: newTeam.id,\n challengeId,\n })\n const sendInvitationsPromise = handleInviteTeamMembers(\n newTeam.id,\n invitees,\n invitationMessage,\n )\n\n return Promise.all([\n Promise.resolve(newTeam),\n registerPromise,\n sendInvitationsPromise,\n ])\n },\n [createTeam, handleInviteTeamMembers, registerTeamForChallenge],\n )\n\n const errors = useMemo(() => {\n const hasError =\n createTeamError || invitationError || challengeRegistrationError\n const errors = hasError\n ? [createTeamError, invitationError, challengeRegistrationError].filter(\n (e): e is SynapseClientError => e != null,\n )\n : undefined\n\n return errors\n }, [challengeRegistrationError, createTeamError, invitationError])\n\n return {\n createAndRegisterTeam,\n isPending:\n createTeamIsPending ||\n invitationIsPending ||\n challengeRegistrationIsPending,\n errors,\n }\n}\n"],"mappings":";;;;;;AAoBA,SAAwB,IAAoC;CAC1D,IAAM,EACJ,aAAa,GACb,WAAW,GACX,OAAO,MACL,GAAe,EACb,EACJ,aAAa,GACb,WAAW,GACX,OAAO,MACL,GAAqB,EACnB,EACJ,aAAa,GACb,WAAW,GACX,OAAO,MACL,GAA6B,EAG3B,IAA0B,EAC9B,OACE,GACA,GACA,MACG;EACH,IAAM,IAAkC,EAAE;AAE1C,OAAK,IAAM,KAAgB,GAAe;GACxC,IAAM,IAAuB,MAAM,EAAiB;IAC1C;IACR,cAAc,EAAa,MAAM;IACjC,SAAS;IACV,CAAC;AACF,KAAQ,KAAK,EAAqB;;AAEpC,SAAO;IAET,CAAC,EAAiB,CACnB,EAEK,IAAwB,EAC5B,OACE,GACA,GACA,GACA,MAC2D;EAE3D,IAAM,IAAU,MAAM,EAAW,EAAa,EAGxC,IAAkB,EAAyB;GAC/C,QAAQ,EAAQ;GAChB;GACD,CAAC,EACI,IAAyB,EAC7B,EAAQ,IACR,GACA,EACD;AAED,SAAO,QAAQ,IAAI;GACjB,QAAQ,QAAQ,EAAQ;GACxB;GACA;GACD,CAAC;IAEJ;EAAC;EAAY;EAAyB;EAAyB,CAChE,EAEK,IAAS,QAEX,KAAmB,KAAmB,IAEpC;EAAC;EAAiB;EAAiB;EAA2B,CAAC,QAC5D,MAA+B,KAAK,KACtC,GACD,KAAA,GAGH;EAAC;EAA4B;EAAiB;EAAgB,CAAC;AAElE,QAAO;EACL;EACA,WACE,KACA,KACA;EACF;EACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateProjectModal.d.ts","sourceRoot":"","sources":["../../../src/components/CreateProjectModal/CreateProjectModal.tsx"],"names":[],"mappings":"AAgBA,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,cAAsB,EACtB,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"CreateProjectModal.d.ts","sourceRoot":"","sources":["../../../src/components/CreateProjectModal/CreateProjectModal.tsx"],"names":[],"mappings":"AAgBA,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,CAAA;AAED,wBAAgB,kBAAkB,CAAC,EACjC,cAAsB,EACtB,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,2CA+MzB"}
|
|
@@ -61,20 +61,20 @@ function h({ isShowingModal: h = !1, onClose: g, gotoPlace: _ }) {
|
|
|
61
61
|
id: "projectInput",
|
|
62
62
|
label: "Project Name",
|
|
63
63
|
required: !0,
|
|
64
|
-
|
|
64
|
+
description: "Pick a unique title for your project",
|
|
65
65
|
value: y,
|
|
66
66
|
fullWidth: !0,
|
|
67
67
|
onChange: (e) => {
|
|
68
68
|
b(e.target.value);
|
|
69
69
|
},
|
|
70
|
-
|
|
70
|
+
slotProps: { htmlInput: { onKeyDown: (e) => {
|
|
71
71
|
e.key === "Enter" && y !== "" && k.mutate();
|
|
72
|
-
} }
|
|
72
|
+
} } }
|
|
73
73
|
}),
|
|
74
74
|
/* @__PURE__ */ d(a, {
|
|
75
75
|
id: "descriptionInput",
|
|
76
76
|
label: "Description",
|
|
77
|
-
|
|
77
|
+
description: "(optional)",
|
|
78
78
|
placeholder: "Brief description of this project",
|
|
79
79
|
multiline: !0,
|
|
80
80
|
minRows: 3,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateProjectModal.js","names":[],"sources":["../../../src/components/CreateProjectModal/CreateProjectModal.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useGetRealmPrincipals } from '@/synapse-queries/realm/useRealmPrincipals'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Alert, Stack } from '@mui/material'\nimport { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\nimport { KeyboardEvent, useState } from 'react'\nimport { useMutation } from '@tanstack/react-query'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport TextField from '../TextField/TextField'\nimport {\n ProjectVisibility,\n ProjectVisibilityRadioGroup,\n} from './ProjectVisibilityRadioGroup'\n\nexport type CreateProjectModalProps = {\n isShowingModal?: boolean\n onClose: () => void\n gotoPlace?: (href: string) => void\n}\n\nexport function CreateProjectModal({\n isShowingModal = false,\n onClose,\n gotoPlace,\n}: CreateProjectModalProps) {\n const { accessToken } = useSynapseContext()\n const [projectName, setProjectName] = useState<string>('')\n const [description, setDescription] = useState<string>('')\n const [visibility, setVisibility] =\n useState<ProjectVisibility>('DISCOVERABLE')\n\n const { data: realmPrincipals } = useGetRealmPrincipals()\n const publicGroupId = realmPrincipals?.publicGroup\n const authenticatedUsersId = realmPrincipals?.authenticatedUsers\n\n const applyVisibilityAcl = async (projectId: string): Promise<void> => {\n if (visibility === 'PRIVATE') {\n return\n }\n try {\n const currentAcl = await SynapseClient.getEntityACL(\n projectId,\n accessToken,\n )\n\n const upsertAccessTypes = (\n entries: typeof currentAcl.resourceAccess,\n principalId: number,\n accessTypes: ACCESS_TYPE[],\n ): typeof currentAcl.resourceAccess => {\n const existing = entries.find(e => e.principalId === principalId)\n if (existing) {\n return entries.map(e =>\n e.principalId === principalId\n ? {\n ...e,\n accessType: [...new Set([...e.accessType, ...accessTypes])],\n }\n : e,\n )\n }\n return [...entries, { principalId, accessType: accessTypes }]\n }\n\n let newResourceAccess = [...currentAcl.resourceAccess]\n\n if (visibility === 'DISCOVERABLE') {\n if (publicGroupId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(publicGroupId),\n [ACCESS_TYPE.READ],\n )\n }\n if (authenticatedUsersId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(authenticatedUsersId),\n [ACCESS_TYPE.READ],\n )\n }\n } else if (visibility === 'PUBLIC') {\n if (publicGroupId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(publicGroupId),\n [ACCESS_TYPE.READ],\n )\n }\n if (authenticatedUsersId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(authenticatedUsersId),\n [ACCESS_TYPE.READ, ACCESS_TYPE.DOWNLOAD],\n )\n }\n }\n\n await SynapseClient.updateEntityACL(\n { ...currentAcl, resourceAccess: newResourceAccess },\n accessToken,\n )\n } catch (e) {\n const err = e as SynapseClientError\n throw new Error(\n `Project was created, but visibility could not be set: ${\n err.reason ?? err.message\n }`,\n )\n }\n }\n\n const createProjectMutation = useMutation({\n mutationFn: async () => {\n const newProject = await SynapseClient.createProject(\n projectName,\n description,\n accessToken,\n )\n let aclError: string | undefined\n try {\n await applyVisibilityAcl(newProject.id!)\n } catch (e) {\n aclError = (e as Error).message\n }\n return { newProject, aclError }\n },\n onError: error => {\n const synapseError = error as SynapseClientError\n displayToast(synapseError.reason ?? error.message, 'danger')\n },\n onSuccess: ({ newProject, aclError }) => {\n // Note - Do NOT call createProjectMutation.reset() here — in TanStack Query v5,\n // reset() inside onSuccess interrupts the rest of this callback.\n // Note 2 - displayToast is not shown in Storybook (with the window.location.href change), but works when\n // integrated in the Synapse.org app.\n if (aclError) {\n displayToast(aclError, 'danger')\n } else {\n displayToast('Project created', 'success')\n }\n setProjectName('')\n setDescription('')\n setVisibility('DISCOVERABLE')\n onClose()\n const href = `/Synapse:${newProject.id}`\n if (gotoPlace) {\n gotoPlace(href)\n } else {\n window.location.href = href\n }\n },\n })\n\n const hide = () => {\n setProjectName('')\n setDescription('')\n setVisibility('DISCOVERABLE')\n createProjectMutation.reset()\n onClose()\n }\n\n const dialogContent = (\n <Stack gap={2}>\n <TextField\n id=\"projectInput\"\n label=\"Project Name\"\n required\n
|
|
1
|
+
{"version":3,"file":"CreateProjectModal.js","names":[],"sources":["../../../src/components/CreateProjectModal/CreateProjectModal.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useGetRealmPrincipals } from '@/synapse-queries/realm/useRealmPrincipals'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { Alert, Stack } from '@mui/material'\nimport { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\nimport { KeyboardEvent, useState } from 'react'\nimport { useMutation } from '@tanstack/react-query'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport TextField from '../TextField/TextField'\nimport {\n ProjectVisibility,\n ProjectVisibilityRadioGroup,\n} from './ProjectVisibilityRadioGroup'\n\nexport type CreateProjectModalProps = {\n isShowingModal?: boolean\n onClose: () => void\n gotoPlace?: (href: string) => void\n}\n\nexport function CreateProjectModal({\n isShowingModal = false,\n onClose,\n gotoPlace,\n}: CreateProjectModalProps) {\n const { accessToken } = useSynapseContext()\n const [projectName, setProjectName] = useState<string>('')\n const [description, setDescription] = useState<string>('')\n const [visibility, setVisibility] =\n useState<ProjectVisibility>('DISCOVERABLE')\n\n const { data: realmPrincipals } = useGetRealmPrincipals()\n const publicGroupId = realmPrincipals?.publicGroup\n const authenticatedUsersId = realmPrincipals?.authenticatedUsers\n\n const applyVisibilityAcl = async (projectId: string): Promise<void> => {\n if (visibility === 'PRIVATE') {\n return\n }\n try {\n const currentAcl = await SynapseClient.getEntityACL(\n projectId,\n accessToken,\n )\n\n const upsertAccessTypes = (\n entries: typeof currentAcl.resourceAccess,\n principalId: number,\n accessTypes: ACCESS_TYPE[],\n ): typeof currentAcl.resourceAccess => {\n const existing = entries.find(e => e.principalId === principalId)\n if (existing) {\n return entries.map(e =>\n e.principalId === principalId\n ? {\n ...e,\n accessType: [...new Set([...e.accessType, ...accessTypes])],\n }\n : e,\n )\n }\n return [...entries, { principalId, accessType: accessTypes }]\n }\n\n let newResourceAccess = [...currentAcl.resourceAccess]\n\n if (visibility === 'DISCOVERABLE') {\n if (publicGroupId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(publicGroupId),\n [ACCESS_TYPE.READ],\n )\n }\n if (authenticatedUsersId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(authenticatedUsersId),\n [ACCESS_TYPE.READ],\n )\n }\n } else if (visibility === 'PUBLIC') {\n if (publicGroupId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(publicGroupId),\n [ACCESS_TYPE.READ],\n )\n }\n if (authenticatedUsersId) {\n newResourceAccess = upsertAccessTypes(\n newResourceAccess,\n Number(authenticatedUsersId),\n [ACCESS_TYPE.READ, ACCESS_TYPE.DOWNLOAD],\n )\n }\n }\n\n await SynapseClient.updateEntityACL(\n { ...currentAcl, resourceAccess: newResourceAccess },\n accessToken,\n )\n } catch (e) {\n const err = e as SynapseClientError\n throw new Error(\n `Project was created, but visibility could not be set: ${\n err.reason ?? err.message\n }`,\n )\n }\n }\n\n const createProjectMutation = useMutation({\n mutationFn: async () => {\n const newProject = await SynapseClient.createProject(\n projectName,\n description,\n accessToken,\n )\n let aclError: string | undefined\n try {\n await applyVisibilityAcl(newProject.id!)\n } catch (e) {\n aclError = (e as Error).message\n }\n return { newProject, aclError }\n },\n onError: error => {\n const synapseError = error as SynapseClientError\n displayToast(synapseError.reason ?? error.message, 'danger')\n },\n onSuccess: ({ newProject, aclError }) => {\n // Note - Do NOT call createProjectMutation.reset() here — in TanStack Query v5,\n // reset() inside onSuccess interrupts the rest of this callback.\n // Note 2 - displayToast is not shown in Storybook (with the window.location.href change), but works when\n // integrated in the Synapse.org app.\n if (aclError) {\n displayToast(aclError, 'danger')\n } else {\n displayToast('Project created', 'success')\n }\n setProjectName('')\n setDescription('')\n setVisibility('DISCOVERABLE')\n onClose()\n const href = `/Synapse:${newProject.id}`\n if (gotoPlace) {\n gotoPlace(href)\n } else {\n window.location.href = href\n }\n },\n })\n\n const hide = () => {\n setProjectName('')\n setDescription('')\n setVisibility('DISCOVERABLE')\n createProjectMutation.reset()\n onClose()\n }\n\n const dialogContent = (\n <Stack gap={2}>\n <TextField\n id=\"projectInput\"\n label=\"Project Name\"\n required\n description=\"Pick a unique title for your project\"\n value={projectName}\n fullWidth\n onChange={event => {\n setProjectName(event.target.value)\n }}\n slotProps={{\n htmlInput: {\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if (projectName !== '') {\n createProjectMutation.mutate()\n }\n }\n },\n },\n }}\n />\n <TextField\n id=\"descriptionInput\"\n label=\"Description\"\n description=\"(optional)\"\n placeholder=\"Brief description of this project\"\n multiline\n minRows={3}\n value={description}\n fullWidth\n maxCharacterCount={350}\n onChange={event => {\n setDescription(event.target.value)\n }}\n />\n <ProjectVisibilityRadioGroup\n value={visibility}\n onChange={setVisibility}\n />\n <Alert severity=\"warning\">\n You can update project visibility at any time in Project Tools, or\n manage access at a more granular level for individual files and folders.\n </Alert>\n </Stack>\n )\n\n return (\n <>\n <ConfirmationDialog\n open={isShowingModal}\n title=\"Create a new Project\"\n content={dialogContent}\n confirmButtonProps={{\n children: 'Save',\n disabled: createProjectMutation.isPending,\n loading: createProjectMutation.isPending,\n }}\n onConfirm={() => {\n createProjectMutation.mutate()\n }}\n onCancel={hide}\n maxWidth=\"sm\"\n dense\n />\n </>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { useGetFeatureFlag as e } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
|
|
2
2
|
import "../../synapse-queries/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { FeatureFlagEnum as t } from "../../utils/featureflag/FeatureFlags.js";
|
|
4
|
+
import { TextField as n } from "@mui/material";
|
|
5
|
+
import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/CreateTableViewWizard/TableNameForm.tsx
|
|
7
7
|
function o(o) {
|
|
8
|
-
let { name: s, setName: c, description: l, setDescription: u } = o, d = e(
|
|
9
|
-
return /* @__PURE__ */
|
|
8
|
+
let { name: s, setName: c, description: l, setDescription: u } = o, d = e(t.DESCRIPTION_FIELD);
|
|
9
|
+
return /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i(n, {
|
|
10
10
|
required: !0,
|
|
11
11
|
label: "Name",
|
|
12
12
|
value: s,
|
|
@@ -14,7 +14,7 @@ function o(o) {
|
|
|
14
14
|
c(e.target.value);
|
|
15
15
|
},
|
|
16
16
|
fullWidth: !0
|
|
17
|
-
}), d && /* @__PURE__ */
|
|
17
|
+
}), d && /* @__PURE__ */ i(n, {
|
|
18
18
|
label: "Description",
|
|
19
19
|
value: l,
|
|
20
20
|
onChange: (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableNameForm.js","names":[],"sources":["../../../src/components/CreateTableViewWizard/TableNameForm.tsx"],"sourcesContent":["import { useGetFeatureFlag } from '@/synapse-queries'\nimport { TextField } from '@mui/material'\nimport { FeatureFlagEnum } from '
|
|
1
|
+
{"version":3,"file":"TableNameForm.js","names":[],"sources":["../../../src/components/CreateTableViewWizard/TableNameForm.tsx"],"sourcesContent":["import { useGetFeatureFlag } from '@/synapse-queries'\nimport { TextField } from '@mui/material'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\nimport { Dispatch, SetStateAction } from 'react'\n\ntype TableNameFormProps = {\n name: string\n setName: Dispatch<SetStateAction<string>>\n description: string | undefined\n setDescription: Dispatch<SetStateAction<string | undefined>>\n}\n\n/**\n * React component for the naming a new table or view.\n * Renders UI to provide the name and description of a table or view.\n */\nexport default function TableNameForm(props: TableNameFormProps) {\n const { name, setName, description, setDescription } = props\n const isFeatureEnabled = useGetFeatureFlag(FeatureFlagEnum.DESCRIPTION_FIELD)\n return (\n <>\n <TextField\n required\n label={'Name'}\n value={name}\n onChange={e => {\n setName(e.target.value)\n }}\n fullWidth\n />\n {isFeatureEnabled && (\n <TextField\n label={'Description'}\n value={description}\n onChange={e => {\n setDescription(e.target.value || undefined)\n }}\n fullWidth\n multiline\n rows={3}\n sx={{ my: 2 }}\n />\n )}\n </>\n )\n}\n"],"mappings":";;;;;;AAgBA,SAAwB,EAAc,GAA2B;CAC/D,IAAM,EAAE,SAAM,YAAS,gBAAa,sBAAmB,GACjD,IAAmB,EAAkB,EAAgB,kBAAkB;AAC7E,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,UAAA;EACA,OAAO;EACP,OAAO;EACP,WAAU,MAAK;AACb,KAAQ,EAAE,OAAO,MAAM;;EAEzB,WAAA;EACA,CAAA,EACD,KACC,kBAAC,GAAD;EACE,OAAO;EACP,OAAO;EACP,WAAU,MAAK;AACb,KAAe,EAAE,OAAO,SAAS,KAAA,EAAU;;EAE7C,WAAA;EACA,WAAA;EACA,MAAM;EACN,IAAI,EAAE,IAAI,GAAG;EACb,CAAA,CAEH,EAAA,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { useGetFeatureFlag as e } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
|
|
2
2
|
import "../../synapse-queries/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { FeatureFlagEnum as t } from "../../utils/featureflag/FeatureFlags.js";
|
|
4
|
+
import { useEffect as n } from "react";
|
|
5
5
|
//#region src/components/CrispChat/CrispChat.tsx
|
|
6
6
|
var r = !1;
|
|
7
7
|
function i() {
|
|
8
|
-
let i = e(
|
|
9
|
-
return
|
|
8
|
+
let i = e(t.CRISP_CHAT);
|
|
9
|
+
return n(() => {
|
|
10
10
|
if (i && !r) {
|
|
11
11
|
window.$crisp = window.$crisp || [], window.CRISP_WEBSITE_ID = "c9bf8451-61b5-4b7e-b564-5772f85d54bd";
|
|
12
12
|
let e = document.createElement("script");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrispChat.js","names":[],"sources":["../../../src/components/CrispChat/CrispChat.tsx"],"sourcesContent":["import './CrispTypes'\nimport React, { useEffect } from 'react'\nimport { FeatureFlagEnum } from '
|
|
1
|
+
{"version":3,"file":"CrispChat.js","names":[],"sources":["../../../src/components/CrispChat/CrispChat.tsx"],"sourcesContent":["import './CrispTypes'\nimport React, { useEffect } from 'react'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\nimport { useGetFeatureFlag } from '@/synapse-queries'\n\n// Ensure script is only loaded once\nlet isScriptLoaded = false\n\n/**\n * CrispChat component that loads the Crisp chat widget when the CRISP_CHAT feature flag is enabled.\n * The script is only loaded once, even if the component is mounted multiple times.\n */\nexport function CrispChat(): React.ReactNode {\n const isCrispChatEnabled = useGetFeatureFlag(FeatureFlagEnum.CRISP_CHAT)\n\n useEffect(() => {\n if (isCrispChatEnabled && !isScriptLoaded) {\n // Initialize Crisp\n window.$crisp = window.$crisp || []\n window.CRISP_WEBSITE_ID = 'c9bf8451-61b5-4b7e-b564-5772f85d54bd'\n\n // Create and append the script\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = 'https://client.crisp.chat/l.js'\n script.async = true\n\n const target = document.head ?? document.body\n target?.appendChild(script)\n\n isScriptLoaded = true\n }\n }, [isCrispChatEnabled])\n\n return null\n}\n\nexport default CrispChat\n"],"mappings":";;;;;AAMA,IAAI,IAAiB;AAMrB,SAAgB,IAA6B;CAC3C,IAAM,IAAqB,EAAkB,EAAgB,WAAW;AAqBxE,QAnBA,QAAgB;AACd,MAAI,KAAsB,CAAC,GAAgB;AAGzC,GADA,OAAO,SAAS,OAAO,UAAU,EAAE,EACnC,OAAO,mBAAmB;GAG1B,IAAM,IAAS,SAAS,cAAc,SAAS;AAQ/C,GAPA,EAAO,OAAO,mBACd,EAAO,MAAM,kCACb,EAAO,QAAQ,KAEA,SAAS,QAAQ,SAAS,OACjC,YAAY,EAAO,EAE3B,IAAiB;;IAElB,CAAC,EAAmB,CAAC,EAEjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._dataExplorerTitle_q328i_1.MuiTypography-root{color:var(--data-explorer-title-color,var(--synapse-primary-action-color));margin-bottom:10px;font-size:36px;line-height:40px}._dataExplorerSubtitle_q328i_8.MuiTypography-root{line-height:140%}._dataExplorerButton_q328i_12{width:fit-content}._dataExplorerTextContainer_q328i_16{flex:0 0 30%;gap:16px;max-width:30%}._dataExplorerContainer_q328i_22{flex:1 0 0;align-items:flex-start;gap:60px;padding:40px 0;display:flex}._dataContainer_q328i_30{flex:60%;grid-template-rows:repeat(9,fit-content(100%));grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;display:inline-grid}._dataRowTitle_q328i_40{color:var(--synapse-primary-action-color,#4d558d);overflow-wrap:break-word;word-break:break-word;flex:0 auto;min-width:0;font-size:19.8px;font-weight:400;line-height:26.4px}._dataRowInner_q328i_51{flex:1;justify-content:space-between;align-items:center;min-width:0;display:flex}._dataRow_q328i_40{border:1px solid #0000;border-radius:3.3px;justify-content:space-between;justify-self:stretch;align-items:center;gap:17.6px;min-height:66.6px;padding:8.8px 26.4px;transition:background-color .2s,border-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative;text-decoration:none!important}._dataRow_q328i_40:hover{z-index:1;background-color:#fff;border-color:#e1e1e1;transform:scale(1.1);box-shadow:0 4px 8px #0000001a}._dataRow_q328i_40:hover ._viewCta_q328i_80{opacity:1;pointer-events:auto}._dataRowLeft_q328i_85{flex:1;align-items:center;gap:16px;min-width:0;display:inline-flex}._iconContainer_q328i_93{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:49px;height:49px;display:flex}._dataRowNamePill_q328i_103{flex:1 1 0;align-items:center;gap:8px;min-width:0;display:flex}._fileCount_q328i_111{color:#787090;border:1px solid #d8d5e0;border-radius:80px;flex-shrink:0;justify-content:center;align-items:center;gap:10px;padding:4px 8px;font-size:14px;font-weight:400;line-height:24px;display:flex}._viewCta_q328i_80{opacity:0;white-space:nowrap;color:var(--synapse-primary-action-color,#4d558d);background:linear-gradient(90deg,#0000,#fff 25% 100%);border-radius:0 2px 2px 0;align-items:center;gap:4px;padding-left:40px;padding-right:26.4px;transition:opacity .2s;display:inline-flex;position:absolute;top:0;bottom:0;right:0}._viewCtaText_q328i_144{color:var(--synapse-primary-action-color,#4d558d);font-size:16px;font-weight:400;line-height:26.4px}._viewCtaIcon_q328i_151.MuiSvgIcon-root{color:var(--synapse-primary-action-color,#5a488f);font-size:24px}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type DataExplorerProps = {
|
|
2
|
+
title?: React.ReactNode;
|
|
3
|
+
subtitle?: React.ReactNode;
|
|
4
|
+
buttonText?: string;
|
|
5
|
+
buttonLink?: string;
|
|
6
|
+
sql: string;
|
|
7
|
+
explorePath?: string;
|
|
8
|
+
exploreQuerySql?: string;
|
|
9
|
+
filterColumnName?: string;
|
|
10
|
+
};
|
|
11
|
+
export default function DataExplorer({ sql, title, subtitle, buttonText, buttonLink, explorePath, exploreQuerySql, filterColumnName, }: DataExplorerProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=DataExplorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataExplorer.d.ts","sourceRoot":"","sources":["../../../src/components/DataExplorer/DataExplorer.tsx"],"names":[],"mappings":"AAaA,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AASD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,GAAG,EACH,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,EAAE,iBAAiB,2CA8InB"}
|