synapse-react-client 4.0.9 → 4.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -0
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +2 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/icons/TasksIcon.d.ts.map +1 -1
- package/dist/assets/icons/TasksIcon.js +6 -10
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.d.ts.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js +69 -63
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.d.ts.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js +38 -37
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/Constants.d.ts +1 -0
- package/dist/components/Authentication/Constants.d.ts.map +1 -1
- package/dist/components/Authentication/Constants.js +2 -2
- package/dist/components/Authentication/Constants.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js +2 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/DataGrid/DataGrid.d.ts +0 -1
- package/dist/components/DataGrid/DataGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +4 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -8
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +326 -268
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +2 -0
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +113 -67
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts +2 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +126 -122
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +58 -0
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -0
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js +52 -0
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -0
- package/dist/components/DataGrid/components/ValidationAlert.d.ts +5 -2
- package/dist/components/DataGrid/components/ValidationAlert.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js +429 -24
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +7 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +16 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js +8 -8
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.d.ts.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js +103 -103
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.d.ts.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +36 -30
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCard.js +12 -7
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +105 -105
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.d.ts +6 -1
- package/dist/components/HeaderCard.d.ts.map +1 -1
- package/dist/components/HeaderCard.js +107 -76
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.d.ts.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js +45 -39
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.d.ts.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js +43 -41
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js +4 -2
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts +8 -7
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +173 -164
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.d.ts +1 -0
- package/dist/components/TanStackTable/ColumnHeader.d.ts.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js +8 -8
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/layout/SWCHeader.d.ts +9 -0
- package/dist/components/layout/SWCHeader.d.ts.map +1 -0
- package/dist/components/layout/SWCHeader.js +19 -0
- package/dist/components/layout/SWCHeader.js.map +1 -0
- package/dist/components/layout/SWCPageLayout.d.ts +9 -0
- package/dist/components/layout/SWCPageLayout.d.ts.map +1 -0
- package/dist/components/layout/SWCPageLayout.js +14 -0
- package/dist/components/layout/SWCPageLayout.js.map +1 -0
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js +2 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.d.ts.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js +23 -30
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.d.ts +2 -0
- package/dist/features/curator/dashboard/CuratorDashboard.d.ts.map +1 -0
- package/dist/features/curator/dashboard/CuratorDashboard.js +45 -0
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts +9 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.js +106 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +12 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +52 -0
- package/dist/features/curator/dashboard/components/NextStepButton.css +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.d.ts +14 -0
- package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.js +35 -0
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.module.js +11 -0
- package/dist/features/curator/dashboard/components/NextStepButton.module.js.map +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.module.scss +57 -0
- package/dist/features/curator/dashboard/components/UserOrTeamChip.css +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.module.js +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.module.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.module.scss +5 -5
- package/dist/features/curator/dashboard/components/shared.css +1 -0
- package/dist/features/curator/dashboard/components/shared.module.js +5 -0
- package/dist/features/curator/dashboard/components/shared.module.js.map +1 -0
- package/dist/features/curator/dashboard/components/shared.module.scss +8 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +0 -2
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +16 -34
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts +10 -0
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +37 -0
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/utils/constants.js +6 -0
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -0
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/style/components/_cards.scss +4 -0
- package/dist/style/components/_data-grid-extra.css +1 -1
- package/dist/style/components/_data-grid-extra.scss +2 -0
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts +2 -0
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.d.ts.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.d.ts +4 -0
- package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js +12 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.d.ts +4 -0
- package/dist/utils/functions/RealmUtils.d.ts.map +1 -1
- package/dist/utils/functions/RealmUtils.js +9 -3
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.d.ts.map +1 -1
- package/dist/utils/hooks/useLogin.js +53 -52
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/package.json +4 -4
package/dist/SWC.index.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ declare const SynapseComponents: {
|
|
|
40
40
|
CreateTableViewWizard: import("react").LazyExoticComponent<typeof import("./components/CreateTableViewWizard/CreateTableViewWizard").default>;
|
|
41
41
|
CreatedByModifiedBy: import("react").LazyExoticComponent<typeof import("./components/entity/page/CreatedByModifiedBy").CreatedByModifiedBy>;
|
|
42
42
|
CsvPreview: import("react").LazyExoticComponent<typeof import("./components/table/CsvPreview/CsvPreview").default>;
|
|
43
|
+
CuratorDashboard: import("react").LazyExoticComponent<typeof import("./features/curator/dashboard/CuratorDashboard").default>;
|
|
43
44
|
DatasetItemsEditor: import("react").LazyExoticComponent<typeof import("./components/SynapseTable/datasets/DatasetItemsEditor").DatasetItemsEditor>;
|
|
44
45
|
DiscussionThread: import("react").LazyExoticComponent<typeof import("./components").DiscussionThread>;
|
|
45
46
|
DownloadCartPage: import("react").LazyExoticComponent<typeof import("./components").DownloadCartPage>;
|
package/dist/SWC.index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SWC.index.d.ts","sourceRoot":"","sources":["../src/SWC.index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,qBAAqB,EACtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAA;AACnD,OAAO,QAAQ,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAEL,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,mBAAmB,CAAA;AAK1B,QAAA,MAAM,YAAY;;CAEjB,CAAA;AAED,QAAA,MAAM,cAAc;;;;;CAKnB,CAAA;AAED,QAAA,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"SWC.index.d.ts","sourceRoot":"","sources":["../src/SWC.index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,qBAAqB,EACtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAA;AACnD,OAAO,QAAQ,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAEL,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,mBAAmB,CAAA;AAK1B,QAAA,MAAM,YAAY;;CAEjB,CAAA;AAED,QAAA,MAAM,cAAc;;;;;CAKnB,CAAA;AAED,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6LtB,CAAA;AAED,QAAA,MAAM,SAAS;;;;;;CAMd,CAAA;AAGD,QAAA,MAAM,yBAAyB,QAAkB,CAAA;AAEjD,OAAO,EACL,SAAS,EACT,UAAU,EACV,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,UAAU,EACV,qBAAqB,GACtB,CAAA"}
|
package/dist/SWC.index.js
CHANGED
|
@@ -38,6 +38,7 @@ var x = { BackendDestinationEnum: r }, S = {
|
|
|
38
38
|
CreateTableViewWizard: b(() => import("./components/CreateTableViewWizard/CreateTableViewWizard.js")),
|
|
39
39
|
CreatedByModifiedBy: b(() => import("./components/entity/page/CreatedByModifiedBy.js")),
|
|
40
40
|
CsvPreview: b(() => import("./components/table/CsvPreview/CsvPreview.js")),
|
|
41
|
+
CuratorDashboard: b(() => import("./features/curator/dashboard/CuratorDashboard.js")),
|
|
41
42
|
DatasetItemsEditor: b(() => import("./components/SynapseTable/datasets/DatasetItemsEditor.js")),
|
|
42
43
|
DiscussionThread: b(() => import("./components/Forum/DiscussionThread.js")),
|
|
43
44
|
DownloadCartPage: b(() => import("./components/DownloadCart/DownloadCartPage.js")),
|
|
@@ -108,7 +109,7 @@ var x = { BackendDestinationEnum: r }, S = {
|
|
|
108
109
|
sendSearchResultsReturnedEvent: y,
|
|
109
110
|
sendSearchResultReturnedEvent: v,
|
|
110
111
|
sendSearchResultClickedEvent: _
|
|
111
|
-
}, T = "4.0.
|
|
112
|
+
}, T = "4.0.10";
|
|
112
113
|
//#endregion
|
|
113
114
|
export { w as Analytics, a as HttpClient, d as Palettes, o as SynapseClient, C as SynapseComponents, n as SynapseConstants, S as SynapseContext, x as SynapseEnums, m as SynapseQueries, T as SynapseReactClientVersion, p as SynapseSessionManager, i as xssOptions };
|
|
114
115
|
|
package/dist/SWC.index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SWC.index.js","names":[],"sources":["../src/SWC.index.ts"],"sourcesContent":["/**\n * SWC.index.ts represents the entry point for the Synapse React Client library as it is published to NPM and\n * used by SynapseWebClient.\n *\n * If you wish to export a component or other object to be used by SynapseWebClient, you should add it to this file.\n */\n\nimport { lazy } from 'react'\nimport {\n displayToast,\n SynapseToastContainer,\n} from './components/ToastMessage/ToastMessage'\nimport SynapseClient, { HttpClient } from './synapse-client'\nimport * as SynapseQueries from './synapse-queries'\nimport Palettes from './theme/palette/Palettes'\nimport { SynapseConstants } from './utils'\nimport { sendAnalyticsEvent } from './utils/analytics/sendAnalyticsEvent'\nimport {\n sendSearchQuerySubmittedEvent,\n sendSearchResultClickedEvent,\n sendSearchResultReturnedEvent,\n sendSearchResultsReturnedEvent,\n} from './utils/analytics/sendSearchEvent'\nimport { FullContextProvider } from './utils/context/FullContextProvider'\nimport {\n SynapseContextConsumer,\n SynapseContextProvider,\n useSynapseContext,\n} from './utils/context/SynapseContext'\nimport { BackendDestinationEnum } from './utils/functions'\nimport { xssOptions } from './utils/functions/SanitizeHtmlUtils'\nimport { getCurrentCookiePreferences } from './utils/hooks'\nimport { SynapseSessionManager } from './utils/AppUtils'\n\n// Also include scss in the bundle\nimport './style/main.scss'\n\n// Injected at build time by Vite's `define`\ndeclare const __SRC_VERSION__: string\n\nconst SynapseEnums = {\n BackendDestinationEnum,\n}\n\nconst SynapseContext = {\n FullContextProvider,\n SynapseContextProvider,\n SynapseContextConsumer,\n useSynapseContext,\n}\n\nconst SynapseComponents = {\n AccessRequirementAclEditor: lazy(\n () => import('./components/AccessRequirementAclEditor'),\n ),\n AccessRequirementList: lazy(\n () => import('./components/AccessRequirementList/AccessRequirementList'),\n ),\n AccessRequirementRelatedProjectsList: lazy(\n () => import('./components/AccessRequirementRelatedProjectsList'),\n ),\n AccountLevelBadges: lazy(\n () => import('./components/AccountLevelBadges/AccountLevelBadges'),\n ),\n AddToDownloadListConfirmationAlert: lazy(\n () =>\n import(\n './components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\n ),\n ),\n AvailableEvaluationQueueList: lazy(\n () =>\n import('./components/ChallengeSubmission/AvailableEvaluationQueueList'),\n ),\n CertificationQuiz: lazy(\n () => import('./components/CertificationQuiz/CertificationQuiz'),\n ),\n CookiesNotification: lazy(() => import('./components/CookiesNotification')),\n CreateOrUpdateAccessRequirementWizard: lazy(\n () => import('./components/CreateOrUpdateAccessRequirementWizard'),\n ),\n CreateOrUpdateDoiModal: lazy(\n () => import('./components/doi/CreateOrUpdateDoiModal'),\n ),\n CreateTableViewWizard: lazy(\n () => import('./components/CreateTableViewWizard/CreateTableViewWizard'),\n ),\n CreatedByModifiedBy: lazy(\n () => import('./components/entity/page/CreatedByModifiedBy'),\n ),\n CsvPreview: lazy(() => import('./components/table/CsvPreview/CsvPreview')),\n DatasetItemsEditor: lazy(\n () => import('./components/SynapseTable/datasets/DatasetItemsEditor'),\n ),\n DiscussionThread: lazy(() => import('./components/Forum/DiscussionThread')),\n DownloadCartPage: lazy(\n () => import('./components/DownloadCart/DownloadCartPage'),\n ),\n EntityAclEditorModal: lazy(\n () => import('./components/EntityAclEditor/EntityAclEditorModal'),\n ),\n EntityActionMenu: lazy(\n () => import('./components/entity/page/action_menu/EntityActionMenu'),\n ),\n EntityBadgeIcons: lazy(\n () => import('./components/EntityBadgeIcons/EntityBadgeIcons'),\n ),\n EntityCitation: lazy(() => import('./components/EntityCitation')),\n EntityFinder: lazy(() => import('./components/EntityFinder/EntityFinder')),\n EntityForm: lazy(() => import('./components/EntityForm/EntityForm')),\n EntityHeaderTable: lazy(() => import('./components/EntityHeaderTable')),\n EntityModal: lazy(() => import('./components/entity/metadata/EntityModal')),\n EntityPageBreadcrumbs: lazy(\n () => import('./components/entity/page/breadcrumbs/EntityPageBreadcrumbs'),\n ),\n EntityPageTitleBar: lazy(\n () => import('./components/entity/page/title_bar/EntityPageTitleBar'),\n ),\n EntityTreeTable: lazy(\n () => import('./components/EntityTreeTable/EntityTreeTable'),\n ),\n EntityTypeIcon: lazy(() => import('./components/EntityIcon')),\n EntityUploadModal: lazy(\n () => import('./components/EntityUpload/EntityUploadModal'),\n ),\n EntityViewScopeEditorModal: lazy(\n () =>\n import('./components/EntityViewScopeEditor/EntityViewScopeEditorModal'),\n ),\n CreateProjectModal: lazy(() =>\n import('./components/CreateProjectModal/CreateProjectModal').then(m => ({\n default: m.CreateProjectModal,\n })),\n ),\n ErrorPage: lazy(() => import('./components/error/ErrorPage')),\n EvaluationCard: lazy(() => import('./components/Evaluation/EvaluationCard')),\n EvaluationEditorPage: lazy(\n () => import('./components/Evaluation/EvaluationEditorPage'),\n ),\n FavoritesPage: lazy(() => import('./components/favorites/FavoritesPage')),\n ForumSearch: lazy(() => import('./components/ForumSearch/ForumSearch')),\n FullWidthAlert: lazy(\n () => import('./components/FullWidthAlert/FullWidthAlert'),\n ),\n GoogleAnalytics: lazy(\n () => import('./components/GoogleAnalytics/GoogleAnalytics'),\n ),\n GovernanceMarkdownGithub: lazy(\n () => import('./components/Markdown/GovernanceMarkdownGithub'),\n ),\n GridPage: lazy(() => import('./features/curator/GridPage/GridPage')),\n HasAccess: lazy(() => import('./components/HasAccess/HasAccessV2')),\n HelpPopover: lazy(() => import('./components/HelpPopover/HelpPopover')),\n HtmlPreview: lazy(\n () => import('./components/FilePreview/HtmlPreview/HtmlPreview'),\n ),\n IDUReport: lazy(() => import('./components/IDUReport/IDUReport')),\n IconSvg: lazy(() => import('./components/IconSvg/IconSvg')),\n MetadataTasksPage: lazy(\n () =>\n import('./features/entity/metadata-task/components/MetadataTasksPage'),\n ),\n OAuthManagement: lazy(\n () => import('./components/OAuthClientManagement/OAuthManagement'),\n ),\n OrientationBanner: lazy(\n () => import('./components/OrientationBanner/OrientationBanner'),\n ),\n PageProgress: lazy(() => import('./components/PageProgress/PageProgress')),\n ProjectDataAvailability: lazy(\n () => import('./components/ProjectStorage/ProjectDataAvailability'),\n ),\n ProvenanceGraph: lazy(\n () => import('./components/ProvenanceGraph/ProvenanceGraph'),\n ),\n QueryWrapperPlotNav: lazy(\n () => import('./components/QueryWrapperPlotNav/QueryWrapperPlotNav'),\n ),\n RejectProfileValidationRequestModal: lazy(\n () => import('./components/dataaccess/RejectProfileValidationRequestModal'),\n ),\n ReviewerDashboard: lazy(\n () => import('./components/dataaccess/ReviewerDashboard'),\n ),\n ShareThisPage: lazy(() => import('./components/ShareThisPage')),\n SkeletonButton: lazy(() => import('./components/Skeleton/SkeletonButton')),\n SqlDefinedTableEditorModal: lazy(\n () =>\n import('./components/SqlDefinedTableEditor/SqlDefinedTableEditorModal'),\n ),\n StandaloneQueryWrapper: lazy(\n () => import('./components/StandaloneQueryWrapper/StandaloneQueryWrapper'),\n ),\n StatisticsPlot: lazy(() => import('./components/StatisticsPlot')),\n SubmissionViewScopeEditorModal: lazy(\n () =>\n import(\n './components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal'\n ),\n ),\n SubscriptionPage: lazy(() => import('./components/SubscriptionPage')),\n SynapseChat: lazy(() => import('./components/SynapseChat/SynapseChat')),\n SynapseGrid: lazy(() => import('./components/DataGrid/SynapseGrid')),\n SynapseFooter: lazy(() => import('./components/SynapseFooter/SynapseFooter')),\n SynapseHomepageV2: lazy(\n () => import('./components/SynapseHomepageV2/SynapseHomepageV2'),\n ),\n SynapseNavDrawer: lazy(\n () => import('./components/SynapseNavDrawer/SynapseNavDrawer'),\n ),\n SynapsePlansPage: lazy(\n () => import('./components/SynapseHomepageV2/SynapsePlansPage'),\n ),\n SynapsePortalBanners: lazy(\n () => import('./components/SynapsePortalBanners/SynapsePortalBanners'),\n ),\n SynapseSearchPage: lazy(\n () => import('./components/SynapseSearchPageResults/SynapseSearchPage'),\n ),\n SynapseToastContainer,\n TableColumnSchemaEditor: lazy(\n () =>\n import('./components/TableColumnSchemaEditor/TableColumnSchemaEditor'),\n ),\n TrashCanList: lazy(() => import('./components/trash/TrashCanList')),\n UserAccessRequestHistoryPlace: lazy(\n () =>\n import(\n './components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace'\n ),\n ),\n UserCard: lazy(() => import('./components/UserCard/UserCard')),\n UserProfileLinks: lazy(\n () => import('./components/UserProfileLinks/UserProfileLinks'),\n ),\n displayToast,\n getCurrentCookiePreferences,\n}\n\nconst Analytics = {\n sendAnalyticsEvent,\n sendSearchQuerySubmittedEvent,\n sendSearchResultsReturnedEvent,\n sendSearchResultReturnedEvent,\n sendSearchResultClickedEvent,\n}\n\n// Include the version in the build\nconst SynapseReactClientVersion = __SRC_VERSION__\n\nexport {\n Analytics,\n HttpClient,\n SynapseReactClientVersion,\n SynapseComponents,\n SynapseConstants,\n SynapseClient,\n SynapseContext,\n SynapseEnums,\n SynapseQueries,\n Palettes,\n xssOptions,\n SynapseSessionManager,\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SWC.index.js","names":[],"sources":["../src/SWC.index.ts"],"sourcesContent":["/**\n * SWC.index.ts represents the entry point for the Synapse React Client library as it is published to NPM and\n * used by SynapseWebClient.\n *\n * If you wish to export a component or other object to be used by SynapseWebClient, you should add it to this file.\n */\n\nimport { lazy } from 'react'\nimport {\n displayToast,\n SynapseToastContainer,\n} from './components/ToastMessage/ToastMessage'\nimport SynapseClient, { HttpClient } from './synapse-client'\nimport * as SynapseQueries from './synapse-queries'\nimport Palettes from './theme/palette/Palettes'\nimport { SynapseConstants } from './utils'\nimport { sendAnalyticsEvent } from './utils/analytics/sendAnalyticsEvent'\nimport {\n sendSearchQuerySubmittedEvent,\n sendSearchResultClickedEvent,\n sendSearchResultReturnedEvent,\n sendSearchResultsReturnedEvent,\n} from './utils/analytics/sendSearchEvent'\nimport { FullContextProvider } from './utils/context/FullContextProvider'\nimport {\n SynapseContextConsumer,\n SynapseContextProvider,\n useSynapseContext,\n} from './utils/context/SynapseContext'\nimport { BackendDestinationEnum } from './utils/functions'\nimport { xssOptions } from './utils/functions/SanitizeHtmlUtils'\nimport { getCurrentCookiePreferences } from './utils/hooks'\nimport { SynapseSessionManager } from './utils/AppUtils'\n\n// Also include scss in the bundle\nimport './style/main.scss'\n\n// Injected at build time by Vite's `define`\ndeclare const __SRC_VERSION__: string\n\nconst SynapseEnums = {\n BackendDestinationEnum,\n}\n\nconst SynapseContext = {\n FullContextProvider,\n SynapseContextProvider,\n SynapseContextConsumer,\n useSynapseContext,\n}\n\nconst SynapseComponents = {\n AccessRequirementAclEditor: lazy(\n () => import('./components/AccessRequirementAclEditor'),\n ),\n AccessRequirementList: lazy(\n () => import('./components/AccessRequirementList/AccessRequirementList'),\n ),\n AccessRequirementRelatedProjectsList: lazy(\n () => import('./components/AccessRequirementRelatedProjectsList'),\n ),\n AccountLevelBadges: lazy(\n () => import('./components/AccountLevelBadges/AccountLevelBadges'),\n ),\n AddToDownloadListConfirmationAlert: lazy(\n () =>\n import(\n './components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert'\n ),\n ),\n AvailableEvaluationQueueList: lazy(\n () =>\n import('./components/ChallengeSubmission/AvailableEvaluationQueueList'),\n ),\n CertificationQuiz: lazy(\n () => import('./components/CertificationQuiz/CertificationQuiz'),\n ),\n CookiesNotification: lazy(() => import('./components/CookiesNotification')),\n CreateOrUpdateAccessRequirementWizard: lazy(\n () => import('./components/CreateOrUpdateAccessRequirementWizard'),\n ),\n CreateOrUpdateDoiModal: lazy(\n () => import('./components/doi/CreateOrUpdateDoiModal'),\n ),\n CreateTableViewWizard: lazy(\n () => import('./components/CreateTableViewWizard/CreateTableViewWizard'),\n ),\n CreatedByModifiedBy: lazy(\n () => import('./components/entity/page/CreatedByModifiedBy'),\n ),\n CsvPreview: lazy(() => import('./components/table/CsvPreview/CsvPreview')),\n CuratorDashboard: lazy(\n () => import('./features/curator/dashboard/CuratorDashboard'),\n ),\n DatasetItemsEditor: lazy(\n () => import('./components/SynapseTable/datasets/DatasetItemsEditor'),\n ),\n DiscussionThread: lazy(() => import('./components/Forum/DiscussionThread')),\n DownloadCartPage: lazy(\n () => import('./components/DownloadCart/DownloadCartPage'),\n ),\n EntityAclEditorModal: lazy(\n () => import('./components/EntityAclEditor/EntityAclEditorModal'),\n ),\n EntityActionMenu: lazy(\n () => import('./components/entity/page/action_menu/EntityActionMenu'),\n ),\n EntityBadgeIcons: lazy(\n () => import('./components/EntityBadgeIcons/EntityBadgeIcons'),\n ),\n EntityCitation: lazy(() => import('./components/EntityCitation')),\n EntityFinder: lazy(() => import('./components/EntityFinder/EntityFinder')),\n EntityForm: lazy(() => import('./components/EntityForm/EntityForm')),\n EntityHeaderTable: lazy(() => import('./components/EntityHeaderTable')),\n EntityModal: lazy(() => import('./components/entity/metadata/EntityModal')),\n EntityPageBreadcrumbs: lazy(\n () => import('./components/entity/page/breadcrumbs/EntityPageBreadcrumbs'),\n ),\n EntityPageTitleBar: lazy(\n () => import('./components/entity/page/title_bar/EntityPageTitleBar'),\n ),\n EntityTreeTable: lazy(\n () => import('./components/EntityTreeTable/EntityTreeTable'),\n ),\n EntityTypeIcon: lazy(() => import('./components/EntityIcon')),\n EntityUploadModal: lazy(\n () => import('./components/EntityUpload/EntityUploadModal'),\n ),\n EntityViewScopeEditorModal: lazy(\n () =>\n import('./components/EntityViewScopeEditor/EntityViewScopeEditorModal'),\n ),\n CreateProjectModal: lazy(() =>\n import('./components/CreateProjectModal/CreateProjectModal').then(m => ({\n default: m.CreateProjectModal,\n })),\n ),\n ErrorPage: lazy(() => import('./components/error/ErrorPage')),\n EvaluationCard: lazy(() => import('./components/Evaluation/EvaluationCard')),\n EvaluationEditorPage: lazy(\n () => import('./components/Evaluation/EvaluationEditorPage'),\n ),\n FavoritesPage: lazy(() => import('./components/favorites/FavoritesPage')),\n ForumSearch: lazy(() => import('./components/ForumSearch/ForumSearch')),\n FullWidthAlert: lazy(\n () => import('./components/FullWidthAlert/FullWidthAlert'),\n ),\n GoogleAnalytics: lazy(\n () => import('./components/GoogleAnalytics/GoogleAnalytics'),\n ),\n GovernanceMarkdownGithub: lazy(\n () => import('./components/Markdown/GovernanceMarkdownGithub'),\n ),\n GridPage: lazy(() => import('./features/curator/GridPage/GridPage')),\n HasAccess: lazy(() => import('./components/HasAccess/HasAccessV2')),\n HelpPopover: lazy(() => import('./components/HelpPopover/HelpPopover')),\n HtmlPreview: lazy(\n () => import('./components/FilePreview/HtmlPreview/HtmlPreview'),\n ),\n IDUReport: lazy(() => import('./components/IDUReport/IDUReport')),\n IconSvg: lazy(() => import('./components/IconSvg/IconSvg')),\n MetadataTasksPage: lazy(\n () =>\n import('./features/entity/metadata-task/components/MetadataTasksPage'),\n ),\n OAuthManagement: lazy(\n () => import('./components/OAuthClientManagement/OAuthManagement'),\n ),\n OrientationBanner: lazy(\n () => import('./components/OrientationBanner/OrientationBanner'),\n ),\n PageProgress: lazy(() => import('./components/PageProgress/PageProgress')),\n ProjectDataAvailability: lazy(\n () => import('./components/ProjectStorage/ProjectDataAvailability'),\n ),\n ProvenanceGraph: lazy(\n () => import('./components/ProvenanceGraph/ProvenanceGraph'),\n ),\n QueryWrapperPlotNav: lazy(\n () => import('./components/QueryWrapperPlotNav/QueryWrapperPlotNav'),\n ),\n RejectProfileValidationRequestModal: lazy(\n () => import('./components/dataaccess/RejectProfileValidationRequestModal'),\n ),\n ReviewerDashboard: lazy(\n () => import('./components/dataaccess/ReviewerDashboard'),\n ),\n ShareThisPage: lazy(() => import('./components/ShareThisPage')),\n SkeletonButton: lazy(() => import('./components/Skeleton/SkeletonButton')),\n SqlDefinedTableEditorModal: lazy(\n () =>\n import('./components/SqlDefinedTableEditor/SqlDefinedTableEditorModal'),\n ),\n StandaloneQueryWrapper: lazy(\n () => import('./components/StandaloneQueryWrapper/StandaloneQueryWrapper'),\n ),\n StatisticsPlot: lazy(() => import('./components/StatisticsPlot')),\n SubmissionViewScopeEditorModal: lazy(\n () =>\n import(\n './components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal'\n ),\n ),\n SubscriptionPage: lazy(() => import('./components/SubscriptionPage')),\n SynapseChat: lazy(() => import('./components/SynapseChat/SynapseChat')),\n SynapseGrid: lazy(() => import('./components/DataGrid/SynapseGrid')),\n SynapseFooter: lazy(() => import('./components/SynapseFooter/SynapseFooter')),\n SynapseHomepageV2: lazy(\n () => import('./components/SynapseHomepageV2/SynapseHomepageV2'),\n ),\n SynapseNavDrawer: lazy(\n () => import('./components/SynapseNavDrawer/SynapseNavDrawer'),\n ),\n SynapsePlansPage: lazy(\n () => import('./components/SynapseHomepageV2/SynapsePlansPage'),\n ),\n SynapsePortalBanners: lazy(\n () => import('./components/SynapsePortalBanners/SynapsePortalBanners'),\n ),\n SynapseSearchPage: lazy(\n () => import('./components/SynapseSearchPageResults/SynapseSearchPage'),\n ),\n SynapseToastContainer,\n TableColumnSchemaEditor: lazy(\n () =>\n import('./components/TableColumnSchemaEditor/TableColumnSchemaEditor'),\n ),\n TrashCanList: lazy(() => import('./components/trash/TrashCanList')),\n UserAccessRequestHistoryPlace: lazy(\n () =>\n import(\n './components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace'\n ),\n ),\n UserCard: lazy(() => import('./components/UserCard/UserCard')),\n UserProfileLinks: lazy(\n () => import('./components/UserProfileLinks/UserProfileLinks'),\n ),\n displayToast,\n getCurrentCookiePreferences,\n}\n\nconst Analytics = {\n sendAnalyticsEvent,\n sendSearchQuerySubmittedEvent,\n sendSearchResultsReturnedEvent,\n sendSearchResultReturnedEvent,\n sendSearchResultClickedEvent,\n}\n\n// Include the version in the build\nconst SynapseReactClientVersion = __SRC_VERSION__\n\nexport {\n Analytics,\n HttpClient,\n SynapseReactClientVersion,\n SynapseComponents,\n SynapseConstants,\n SynapseClient,\n SynapseContext,\n SynapseEnums,\n SynapseQueries,\n Palettes,\n xssOptions,\n SynapseSessionManager,\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aridhiaTokenExchange.js","names":[],"sources":["../../src/aridhia-queries/aridhiaTokenExchange.ts"],"sourcesContent":["import { AuthenticationApi } from '@sage-bionetworks/aridhia-client/generated/apis'\nimport {\n AuthenticationRequest,\n AuthenticationResponse,\n} from '@sage-bionetworks/aridhia-client/generated/models'\nimport { Configuration } from '@sage-bionetworks/aridhia-client/generated/runtime'\n\n/**\n * Exchanges a Synapse access token for an Aridhia access token.\n * Note: Aridhia tokens can only be used once, so a fresh token should be obtained for each API call.\n *\n * @param synapseAccessToken - The Synapse access token to exchange\n * @param apiBasePath - Base URL for the Aridhia Gateway API\n * @param authenticationRequest - Authentication request parameters (excluding subject_token)\n * @returns The authentication response containing the Aridhia access token\n * @throws Error if the token exchange fails or no access token is returned\n */\nexport async function exchangeSynapseTokenForAridhia(\n synapseAccessToken: string,\n apiBasePath: string,\n authenticationRequest: Omit<AuthenticationRequest, 'subject_token'>,\n): Promise<AuthenticationResponse> {\n const authApi = new AuthenticationApi(\n new Configuration({\n basePath: apiBasePath,\n }),\n )\n\n const authResponse = await authApi.authenticatePost({\n authenticationRequest: {\n ...authenticationRequest,\n subject_token: synapseAccessToken,\n },\n })\n\n if (!authResponse.access_token) {\n throw new Error('Failed to obtain Aridhia access token')\n }\n\n return authResponse\n}\n\n/**\n * Creates an Aridhia API Configuration object with a freshly exchanged access token.\n * This is a convenience function for creating API instances.\n *\n * All API calls should go through the gateway. For FAIR API calls, use the path:\n * https://gateway.../fair/<api path>\n *\n * @param synapseAccessToken - The Synapse access token to exchange\n * @param gatewayBasePath - Base URL for the Aridhia Gateway API (used for both authentication and API calls)\n * @param authenticationRequest - Authentication request parameters (excluding subject_token)\n * @returns A Configuration object ready to use with Aridhia API clients\n */\nexport async function createAridhiaApiConfiguration(\n synapseAccessToken: string,\n gatewayBasePath: string,\n authenticationRequest: Omit<AuthenticationRequest, 'subject_token'>,\n): Promise<Configuration> {\n const authResponse = await exchangeSynapseTokenForAridhia(\n synapseAccessToken,\n gatewayBasePath,\n authenticationRequest,\n )\n\n return new Configuration({\n basePath: gatewayBasePath,\n accessToken: authResponse.access_token,\n })\n}\n"],"mappings":";;;AAiBA,eAAsB,EACpB,GACA,GACA,GACiC;CAOjC,IAAM,IAAe,
|
|
1
|
+
{"version":3,"file":"aridhiaTokenExchange.js","names":[],"sources":["../../src/aridhia-queries/aridhiaTokenExchange.ts"],"sourcesContent":["import { AuthenticationApi } from '@sage-bionetworks/aridhia-client/generated/apis'\nimport {\n AuthenticationRequest,\n AuthenticationResponse,\n} from '@sage-bionetworks/aridhia-client/generated/models'\nimport { Configuration } from '@sage-bionetworks/aridhia-client/generated/runtime'\n\n/**\n * Exchanges a Synapse access token for an Aridhia access token.\n * Note: Aridhia tokens can only be used once, so a fresh token should be obtained for each API call.\n *\n * @param synapseAccessToken - The Synapse access token to exchange\n * @param apiBasePath - Base URL for the Aridhia Gateway API\n * @param authenticationRequest - Authentication request parameters (excluding subject_token)\n * @returns The authentication response containing the Aridhia access token\n * @throws Error if the token exchange fails or no access token is returned\n */\nexport async function exchangeSynapseTokenForAridhia(\n synapseAccessToken: string,\n apiBasePath: string,\n authenticationRequest: Omit<AuthenticationRequest, 'subject_token'>,\n): Promise<AuthenticationResponse> {\n const authApi = new AuthenticationApi(\n new Configuration({\n basePath: apiBasePath,\n }),\n )\n\n const authResponse = await authApi.authenticatePost({\n authenticationRequest: {\n ...authenticationRequest,\n subject_token: synapseAccessToken,\n },\n })\n\n if (!authResponse.access_token) {\n throw new Error('Failed to obtain Aridhia access token')\n }\n\n return authResponse\n}\n\n/**\n * Creates an Aridhia API Configuration object with a freshly exchanged access token.\n * This is a convenience function for creating API instances.\n *\n * All API calls should go through the gateway. For FAIR API calls, use the path:\n * https://gateway.../fair/<api path>\n *\n * @param synapseAccessToken - The Synapse access token to exchange\n * @param gatewayBasePath - Base URL for the Aridhia Gateway API (used for both authentication and API calls)\n * @param authenticationRequest - Authentication request parameters (excluding subject_token)\n * @returns A Configuration object ready to use with Aridhia API clients\n */\nexport async function createAridhiaApiConfiguration(\n synapseAccessToken: string,\n gatewayBasePath: string,\n authenticationRequest: Omit<AuthenticationRequest, 'subject_token'>,\n): Promise<Configuration> {\n const authResponse = await exchangeSynapseTokenForAridhia(\n synapseAccessToken,\n gatewayBasePath,\n authenticationRequest,\n )\n\n return new Configuration({\n basePath: gatewayBasePath,\n accessToken: authResponse.access_token,\n })\n}\n"],"mappings":";;;AAiBA,eAAsB,EACpB,GACA,GACA,GACiC;CAOjC,IAAM,IAAe,MAAM,IANP,EAClB,IAAI,EAAc,EAChB,UAAU,GACX,CAAC,CAGuB,CAAQ,iBAAiB,EAClD,uBAAuB;EACrB,GAAG;EACH,eAAe;EAChB,EACF,CAAC;AAEF,KAAI,CAAC,EAAa,aAChB,OAAU,MAAM,wCAAwC;AAG1D,QAAO;;AAeT,eAAsB,EACpB,GACA,GACA,GACwB;AAOxB,QAAO,IAAI,EAAc;EACvB,UAAU;EACV,cAAa,MARY,EACzB,GACA,GACA,EACD,EAI2B;EAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetAridhiaRequests.js","names":[],"sources":["../../src/aridhia-queries/useGetAridhiaRequests.ts"],"sourcesContent":["import {\n useQuery,\n UseQueryOptions,\n UseQueryResult,\n} from '@tanstack/react-query'\nimport { FairRequestsGet200Response } from '@sage-bionetworks/aridhia-client/generated/models'\nimport { RequestsApi } from '@sage-bionetworks/aridhia-client/generated/apis'\nimport { useAridhiaContextOptional } from '@/utils/context/AridhiaContext'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { createAridhiaApiConfiguration } from './aridhiaTokenExchange'\n\nexport const ARIDHIA_REQUESTS_QUERY_KEY = ['aridhia', 'requests'] as const\n\n/**\n * Hook to fetch data access requests from Aridhia FAIR API\n * Exchanges the Synapse access token for an Aridhia token on each request\n */\nexport function useGetAridhiaRequests(\n options?: Partial<\n UseQueryOptions<\n FairRequestsGet200Response,\n Error,\n FairRequestsGet200Response\n >\n >,\n): UseQueryResult<FairRequestsGet200Response, Error> {\n const aridhiaContext = useAridhiaContextOptional()\n const { accessToken: synapseAccessToken } = useSynapseContext()\n\n return useQuery<\n FairRequestsGet200Response,\n Error,\n FairRequestsGet200Response\n >({\n enabled: !!synapseAccessToken && !!aridhiaContext,\n ...options,\n queryKey: ARIDHIA_REQUESTS_QUERY_KEY,\n queryFn: async (): Promise<FairRequestsGet200Response> => {\n if (!synapseAccessToken) {\n throw new Error('Synapse access token is not available')\n }\n\n if (!aridhiaContext) {\n throw new Error(\n 'AridhiaContext is not available. Make sure to wrap your component with AridhiaContextProvider',\n )\n }\n\n // Exchange Synapse token for Aridhia token and create API configuration\n // All FAIR API calls go through the gateway with /fair prefix\n const configuration = await createAridhiaApiConfiguration(\n synapseAccessToken,\n aridhiaContext.apiBasePath,\n aridhiaContext.authenticationRequest,\n )\n\n const requestsApi = new RequestsApi(configuration)\n return await requestsApi.fairRequestsGet()\n },\n })\n}\n"],"mappings":";;;;;;AAWA,IAAa,IAA6B,CAAC,WAAW,WAAW;AAMjE,SAAgB,EACd,GAOmD;CACnD,IAAM,IAAiB,GAA2B,EAC5C,EAAE,aAAa,MAAuB,GAAmB;AAE/D,QAAO,EAIL;EACA,SAAS,CAAC,CAAC,KAAsB,CAAC,CAAC;EACnC,GAAG;EACH,UAAU;EACV,SAAS,YAAiD;AACxD,OAAI,CAAC,EACH,OAAU,MAAM,wCAAwC;AAG1D,OAAI,CAAC,EACH,OAAU,MACR,gGACD;AAYH,UAAO,
|
|
1
|
+
{"version":3,"file":"useGetAridhiaRequests.js","names":[],"sources":["../../src/aridhia-queries/useGetAridhiaRequests.ts"],"sourcesContent":["import {\n useQuery,\n UseQueryOptions,\n UseQueryResult,\n} from '@tanstack/react-query'\nimport { FairRequestsGet200Response } from '@sage-bionetworks/aridhia-client/generated/models'\nimport { RequestsApi } from '@sage-bionetworks/aridhia-client/generated/apis'\nimport { useAridhiaContextOptional } from '@/utils/context/AridhiaContext'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { createAridhiaApiConfiguration } from './aridhiaTokenExchange'\n\nexport const ARIDHIA_REQUESTS_QUERY_KEY = ['aridhia', 'requests'] as const\n\n/**\n * Hook to fetch data access requests from Aridhia FAIR API\n * Exchanges the Synapse access token for an Aridhia token on each request\n */\nexport function useGetAridhiaRequests(\n options?: Partial<\n UseQueryOptions<\n FairRequestsGet200Response,\n Error,\n FairRequestsGet200Response\n >\n >,\n): UseQueryResult<FairRequestsGet200Response, Error> {\n const aridhiaContext = useAridhiaContextOptional()\n const { accessToken: synapseAccessToken } = useSynapseContext()\n\n return useQuery<\n FairRequestsGet200Response,\n Error,\n FairRequestsGet200Response\n >({\n enabled: !!synapseAccessToken && !!aridhiaContext,\n ...options,\n queryKey: ARIDHIA_REQUESTS_QUERY_KEY,\n queryFn: async (): Promise<FairRequestsGet200Response> => {\n if (!synapseAccessToken) {\n throw new Error('Synapse access token is not available')\n }\n\n if (!aridhiaContext) {\n throw new Error(\n 'AridhiaContext is not available. Make sure to wrap your component with AridhiaContextProvider',\n )\n }\n\n // Exchange Synapse token for Aridhia token and create API configuration\n // All FAIR API calls go through the gateway with /fair prefix\n const configuration = await createAridhiaApiConfiguration(\n synapseAccessToken,\n aridhiaContext.apiBasePath,\n aridhiaContext.authenticationRequest,\n )\n\n const requestsApi = new RequestsApi(configuration)\n return await requestsApi.fairRequestsGet()\n },\n })\n}\n"],"mappings":";;;;;;AAWA,IAAa,IAA6B,CAAC,WAAW,WAAW;AAMjE,SAAgB,EACd,GAOmD;CACnD,IAAM,IAAiB,GAA2B,EAC5C,EAAE,aAAa,MAAuB,GAAmB;AAE/D,QAAO,EAIL;EACA,SAAS,CAAC,CAAC,KAAsB,CAAC,CAAC;EACnC,GAAG;EACH,UAAU;EACV,SAAS,YAAiD;AACxD,OAAI,CAAC,EACH,OAAU,MAAM,wCAAwC;AAG1D,OAAI,CAAC,EACH,OAAU,MACR,gGACD;AAYH,UAAO,MAAM,IADW,EAAY,MANR,EAC1B,GACA,EAAe,aACf,EAAe,sBAChB,CAGY,CAAY,iBAAiB;;EAE7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TasksIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/icons/TasksIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE7D,eAAO,MAAM,SAAS,GAAI,OAAO,YAAY,KAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"TasksIcon.d.ts","sourceRoot":"","sources":["../../../src/assets/icons/TasksIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE7D,eAAO,MAAM,SAAS,GAAI,OAAO,YAAY,KAAG,KAAK,CAAC,SAWrD,CAAA"}
|
|
@@ -4,16 +4,12 @@ import t from "@mui/material/SvgIcon";
|
|
|
4
4
|
//#region src/assets/icons/TasksIcon.tsx
|
|
5
5
|
var n = (n) => /* @__PURE__ */ e(t, {
|
|
6
6
|
...n,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
children: /* @__PURE__ */ e("path", {
|
|
14
|
-
d: "M10.2566 6.41986C10.2615 5.99788 10.6028 5.65741 11.0259 5.65263H15.1288H15.1278C15.5528 5.65263 15.8971 5.99596 15.8971 6.41986C15.8971 6.8428 15.5528 7.1871 15.1278 7.1871H11.0259C10.6029 7.18134 10.2615 6.84088 10.2567 6.41986H10.2566ZM11.0259 4.11816H19.2305C19.6555 4.11816 19.9997 3.77386 19.9997 3.35092C19.9997 2.92702 19.6555 2.58369 19.2305 2.58369H11.0259C10.6009 2.58369 10.2566 2.92702 10.2566 3.35092C10.2566 3.77386 10.6009 4.11816 11.0259 4.11816ZM5.89812 11.2794L1.79518 11.2785C0.805777 11.2842 0.00578456 12.0821 0 13.069V17.1613C0.00576918 18.1472 0.805757 18.9461 1.79518 18.9509H5.89709C6.8865 18.9461 7.68649 18.1472 7.69228 17.1613V13.069C7.68651 12.0822 6.88652 11.2842 5.89709 11.2785L5.89812 11.2794ZM7.46637 2.83882L4.38948 5.90776C4.08948 6.20698 3.60294 6.20698 3.30294 5.90776L2.27698 4.88445V4.88541C2.10199 4.57756 2.15968 4.19011 2.41737 3.94746C2.67601 3.70483 3.06641 3.66933 3.36448 3.86211L3.8462 4.31189L6.37992 1.81643C6.59434 1.60161 6.91645 1.53352 7.20009 1.64189C6.86836 1.27169 6.3953 1.05687 5.89721 1.04919H1.7953C0.805896 1.05399 0.00590366 1.85287 0.000119096 2.83877V6.9311C0.00588827 7.91795 0.805876 8.71587 1.7953 8.72164H5.89721C6.88662 8.71589 7.68661 7.91797 7.6924 6.9311V2.83877C7.70297 2.72657 7.70297 2.61339 7.6924 2.50119C7.64913 2.63258 7.57125 2.74959 7.46643 2.83877L7.46637 2.83882ZM19.2308 12.8129H11.0261C10.6011 12.8129 10.2569 13.1572 10.2569 13.5801C10.2569 14.004 10.6011 14.3473 11.0261 14.3473H19.2308C19.6558 14.3473 20 14.004 20 13.5801C20 13.1572 19.6558 12.8129 19.2308 12.8129ZM15.1278 15.8818H11.0259C10.6009 15.8818 10.2567 16.2261 10.2567 16.649C10.2567 17.0729 10.6009 17.4163 11.0259 17.4163H15.1289H15.1279C15.5529 17.4163 15.8971 17.0729 15.8971 16.649C15.8971 16.2261 15.5529 15.8818 15.1279 15.8818H15.1278Z",
|
|
15
|
-
fill: "#878E95"
|
|
16
|
-
})
|
|
7
|
+
viewBox: "0 0 20 20",
|
|
8
|
+
children: /* @__PURE__ */ e("g", {
|
|
9
|
+
clipPath: "url(#clip0_10622_52662)",
|
|
10
|
+
children: /* @__PURE__ */ e("path", {
|
|
11
|
+
d: "M10.2566 6.41986C10.2615 5.99788 10.6028 5.65741 11.0259 5.65263H15.1288H15.1278C15.5528 5.65263 15.8971 5.99596 15.8971 6.41986C15.8971 6.8428 15.5528 7.1871 15.1278 7.1871H11.0259C10.6029 7.18134 10.2615 6.84088 10.2567 6.41986H10.2566ZM11.0259 4.11816H19.2305C19.6555 4.11816 19.9997 3.77386 19.9997 3.35092C19.9997 2.92702 19.6555 2.58369 19.2305 2.58369H11.0259C10.6009 2.58369 10.2566 2.92702 10.2566 3.35092C10.2566 3.77386 10.6009 4.11816 11.0259 4.11816ZM5.89812 11.2794L1.79518 11.2785C0.805777 11.2842 0.00578456 12.0821 0 13.069V17.1613C0.00576918 18.1472 0.805757 18.9461 1.79518 18.9509H5.89709C6.8865 18.9461 7.68649 18.1472 7.69228 17.1613V13.069C7.68651 12.0822 6.88652 11.2842 5.89709 11.2785L5.89812 11.2794ZM7.46637 2.83882L4.38948 5.90776C4.08948 6.20698 3.60294 6.20698 3.30294 5.90776L2.27698 4.88445V4.88541C2.10199 4.57756 2.15968 4.19011 2.41737 3.94746C2.67601 3.70483 3.06641 3.66933 3.36448 3.86211L3.8462 4.31189L6.37992 1.81643C6.59434 1.60161 6.91645 1.53352 7.20009 1.64189C6.86836 1.27169 6.3953 1.05687 5.89721 1.04919H1.7953C0.805896 1.05399 0.00590366 1.85287 0.000119096 2.83877V6.9311C0.00588827 7.91795 0.805876 8.71587 1.7953 8.72164H5.89721C6.88662 8.71589 7.68661 7.91797 7.6924 6.9311V2.83877C7.70297 2.72657 7.70297 2.61339 7.6924 2.50119C7.64913 2.63258 7.57125 2.74959 7.46643 2.83877L7.46637 2.83882ZM19.2308 12.8129H11.0261C10.6011 12.8129 10.2569 13.1572 10.2569 13.5801C10.2569 14.004 10.6011 14.3473 11.0261 14.3473H19.2308C19.6558 14.3473 20 14.004 20 13.5801C20 13.1572 19.6558 12.8129 19.2308 12.8129ZM15.1278 15.8818H11.0259C10.6009 15.8818 10.2567 16.2261 10.2567 16.649C10.2567 17.0729 10.6009 17.4163 11.0259 17.4163H15.1289H15.1279C15.5529 17.4163 15.8971 17.0729 15.8971 16.649C15.8971 16.2261 15.5529 15.8818 15.1279 15.8818H15.1278Z",
|
|
12
|
+
fill: "currentColor"
|
|
17
13
|
})
|
|
18
14
|
})
|
|
19
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TasksIcon.js","names":[],"sources":["../../../src/assets/icons/TasksIcon.tsx"],"sourcesContent":["import React from 'react'\nimport SvgIcon, { SvgIconProps } from '@mui/material/SvgIcon'\n\nexport const TasksIcon = (props: SvgIconProps): React.ReactNode => {\n return (\n <SvgIcon {...props}
|
|
1
|
+
{"version":3,"file":"TasksIcon.js","names":[],"sources":["../../../src/assets/icons/TasksIcon.tsx"],"sourcesContent":["import React from 'react'\nimport SvgIcon, { SvgIconProps } from '@mui/material/SvgIcon'\n\nexport const TasksIcon = (props: SvgIconProps): React.ReactNode => {\n return (\n <SvgIcon {...props} viewBox=\"0 0 20 20\">\n <g clipPath=\"url(#clip0_10622_52662)\">\n <path\n d=\"M10.2566 6.41986C10.2615 5.99788 10.6028 5.65741 11.0259 5.65263H15.1288H15.1278C15.5528 5.65263 15.8971 5.99596 15.8971 6.41986C15.8971 6.8428 15.5528 7.1871 15.1278 7.1871H11.0259C10.6029 7.18134 10.2615 6.84088 10.2567 6.41986H10.2566ZM11.0259 4.11816H19.2305C19.6555 4.11816 19.9997 3.77386 19.9997 3.35092C19.9997 2.92702 19.6555 2.58369 19.2305 2.58369H11.0259C10.6009 2.58369 10.2566 2.92702 10.2566 3.35092C10.2566 3.77386 10.6009 4.11816 11.0259 4.11816ZM5.89812 11.2794L1.79518 11.2785C0.805777 11.2842 0.00578456 12.0821 0 13.069V17.1613C0.00576918 18.1472 0.805757 18.9461 1.79518 18.9509H5.89709C6.8865 18.9461 7.68649 18.1472 7.69228 17.1613V13.069C7.68651 12.0822 6.88652 11.2842 5.89709 11.2785L5.89812 11.2794ZM7.46637 2.83882L4.38948 5.90776C4.08948 6.20698 3.60294 6.20698 3.30294 5.90776L2.27698 4.88445V4.88541C2.10199 4.57756 2.15968 4.19011 2.41737 3.94746C2.67601 3.70483 3.06641 3.66933 3.36448 3.86211L3.8462 4.31189L6.37992 1.81643C6.59434 1.60161 6.91645 1.53352 7.20009 1.64189C6.86836 1.27169 6.3953 1.05687 5.89721 1.04919H1.7953C0.805896 1.05399 0.00590366 1.85287 0.000119096 2.83877V6.9311C0.00588827 7.91795 0.805876 8.71587 1.7953 8.72164H5.89721C6.88662 8.71589 7.68661 7.91797 7.6924 6.9311V2.83877C7.70297 2.72657 7.70297 2.61339 7.6924 2.50119C7.64913 2.63258 7.57125 2.74959 7.46643 2.83877L7.46637 2.83882ZM19.2308 12.8129H11.0261C10.6011 12.8129 10.2569 13.1572 10.2569 13.5801C10.2569 14.004 10.6011 14.3473 11.0261 14.3473H19.2308C19.6558 14.3473 20 14.004 20 13.5801C20 13.1572 19.6558 12.8129 19.2308 12.8129ZM15.1278 15.8818H11.0259C10.6009 15.8818 10.2567 16.2261 10.2567 16.649C10.2567 17.0729 10.6009 17.4163 11.0259 17.4163H15.1289H15.1279C15.5529 17.4163 15.8971 17.0729 15.8971 16.649C15.8971 16.2261 15.5529 15.8818 15.1279 15.8818H15.1278Z\"\n fill=\"currentColor\"\n />\n </g>\n </SvgIcon>\n )\n}\n"],"mappings":";;;;AAGA,IAAa,KAAa,MAEtB,kBAAC,GAAD;CAAS,GAAI;CAAO,SAAQ;WAC1B,kBAAC,KAAD;EAAG,UAAS;YACV,kBAAC,QAAD;GACE,GAAE;GACF,MAAK;GACL,CAAA;EACA,CAAA;CACI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRequirementAclEditor.d.ts","sourceRoot":"","sources":["../../../src/components/AccessRequirementAclEditor/AccessRequirementAclEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccessRequirementAclEditor.d.ts","sourceRoot":"","sources":["../../../src/components/AccessRequirementAclEditor/AccessRequirementAclEditor.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,+BAA+B,yCACJ,CAAA;AAQxC,MAAM,MAAM,gCAAgC,GAAG;IAE7C,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,mBAAmB,EAAE,MAAM,CAAA;IAE3B,cAAc,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,0BAA0B,8IAmLtC,CAAA"}
|
|
@@ -1,112 +1,118 @@
|
|
|
1
1
|
import { spreadSx as e } from "../../theme/spreadSx.js";
|
|
2
2
|
import { useCreateAccessRequirementACL as t, useDeleteAccessRequirementACL as n, useGetAccessRequirementACL as r, useUpdateAccessRequirementACL as i } from "../../synapse-queries/dataaccess/useAccessRequirements.js";
|
|
3
3
|
import "../../synapse-queries/index.js";
|
|
4
|
-
import {
|
|
5
|
-
import o from "../AclEditor/
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
4
|
+
import { consolidateResourceAccessList as a } from "../../utils/functions/AccessControlListUtils.js";
|
|
5
|
+
import { AclEditor as o } from "../AclEditor/AclEditor.js";
|
|
6
|
+
import s from "../AclEditor/useUpdateAcl.js";
|
|
7
|
+
import { forwardRef as c, useEffect as l, useImperativeHandle as u, useMemo as d, useState as f } from "react";
|
|
8
|
+
import { isEqual as p } from "lodash-es";
|
|
9
|
+
import { Alert as m, Box as h, Stack as g, Typography as _ } from "@mui/material";
|
|
10
|
+
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
11
|
+
import { ACCESS_TYPE as b } from "@sage-bionetworks/synapse-types";
|
|
11
12
|
//#region src/components/AccessRequirementAclEditor/AccessRequirementAclEditor.tsx
|
|
12
|
-
var
|
|
13
|
+
var x = {
|
|
13
14
|
variant: "body1",
|
|
14
15
|
lineHeight: "20px",
|
|
15
16
|
color: "grey.800"
|
|
16
|
-
},
|
|
17
|
+
}, S = "Only ACT has permissions on this AR.", C = [
|
|
17
18
|
"CAN_REVIEW_SUBMISSIONS",
|
|
18
19
|
"IS_EXEMPTION_ELIGIBLE",
|
|
19
20
|
"CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE"
|
|
20
|
-
],
|
|
21
|
-
let { accessRequirementId:
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
}, { data:
|
|
26
|
-
onChange: () =>
|
|
27
|
-
onError:
|
|
21
|
+
], w = c(function(c, w) {
|
|
22
|
+
let { accessRequirementId: T, onSaveComplete: E } = c, [D, O] = f(null), k = () => {
|
|
23
|
+
O(null), E(!0);
|
|
24
|
+
}, A = (e) => {
|
|
25
|
+
O(e.reason), E(!1);
|
|
26
|
+
}, { data: j, isLoading: M } = r(T, { staleTime: Infinity }), N = d(() => a(j?.resourceAccess ?? []), [j]), { resourceAccessList: P, setResourceAccessList: F, addResourceAccessItem: I, updateResourceAccessItem: L, removeResourceAccessItem: R, resetDirtyState: z } = s({
|
|
27
|
+
onChange: () => O(null),
|
|
28
|
+
onError: O
|
|
28
29
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}, [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
l(() => {
|
|
31
|
+
j && (z(), F(N));
|
|
32
|
+
}, [
|
|
33
|
+
j,
|
|
34
|
+
N,
|
|
35
|
+
z,
|
|
36
|
+
F
|
|
37
|
+
]);
|
|
38
|
+
let { mutate: B } = n({
|
|
39
|
+
onSuccess: () => k(),
|
|
40
|
+
onError: (e) => A(e)
|
|
41
|
+
}), { mutate: V } = t({
|
|
42
|
+
onSuccess: () => k(),
|
|
43
|
+
onError: (e) => A(e)
|
|
44
|
+
}), { mutate: H } = i({
|
|
45
|
+
onSuccess: () => k(),
|
|
46
|
+
onError: (e) => A(e)
|
|
41
47
|
});
|
|
42
|
-
return
|
|
43
|
-
let e =
|
|
44
|
-
...
|
|
45
|
-
id:
|
|
46
|
-
resourceAccess:
|
|
48
|
+
return u(w, () => ({ save() {
|
|
49
|
+
let e = P.length === 0 ? null : {
|
|
50
|
+
...j,
|
|
51
|
+
id: j?.id || T,
|
|
52
|
+
resourceAccess: P
|
|
47
53
|
};
|
|
48
|
-
|
|
54
|
+
j === null && e == null || p(N, P) && j?.id === e?.id ? E(!0) : j === null && e !== null ? V(e) : e === null ? B(T) : H(e);
|
|
49
55
|
} }), [
|
|
50
|
-
|
|
51
|
-
k,
|
|
56
|
+
T,
|
|
52
57
|
j,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
P,
|
|
59
|
+
V,
|
|
60
|
+
B,
|
|
61
|
+
E,
|
|
62
|
+
H
|
|
63
|
+
]), /* @__PURE__ */ y(g, {
|
|
58
64
|
direction: "column",
|
|
59
65
|
sx: { gap: "20px" },
|
|
60
66
|
children: [
|
|
61
|
-
/* @__PURE__ */
|
|
62
|
-
/* @__PURE__ */
|
|
67
|
+
/* @__PURE__ */ y(h, { children: [
|
|
68
|
+
/* @__PURE__ */ v(_, {
|
|
63
69
|
variant: "headline3",
|
|
64
70
|
sx: { mb: "10px" },
|
|
65
71
|
children: "Guide to AR permissions"
|
|
66
72
|
}),
|
|
67
|
-
/* @__PURE__ */ _
|
|
68
|
-
sx: e({ mb: "10px" },
|
|
69
|
-
children: [/* @__PURE__ */
|
|
73
|
+
/* @__PURE__ */ y(_, {
|
|
74
|
+
sx: e({ mb: "10px" }, x),
|
|
75
|
+
children: [/* @__PURE__ */ v("span", {
|
|
70
76
|
style: { fontStyle: "italic" },
|
|
71
77
|
children: "Can Review"
|
|
72
78
|
}), " means a user or team has access request review permission for this AR."]
|
|
73
79
|
}),
|
|
74
|
-
/* @__PURE__ */ _
|
|
75
|
-
sx: e({ mb: "10px" },
|
|
76
|
-
children: [/* @__PURE__ */
|
|
80
|
+
/* @__PURE__ */ y(_, {
|
|
81
|
+
sx: e({ mb: "10px" }, x),
|
|
82
|
+
children: [/* @__PURE__ */ v("span", {
|
|
77
83
|
style: { fontStyle: "italic" },
|
|
78
84
|
children: "Exempt Eligible"
|
|
79
85
|
}), " users and teams can bypass access requirements for entities they have been granted \"edit and delete\" permission on, via the \"Sharing Settings\" dialog in the Project Settings."]
|
|
80
86
|
}),
|
|
81
|
-
/* @__PURE__ */
|
|
87
|
+
/* @__PURE__ */ v(_, {
|
|
82
88
|
sx: {
|
|
83
|
-
...
|
|
89
|
+
...x,
|
|
84
90
|
color: "grey.900"
|
|
85
91
|
},
|
|
86
92
|
children: "ACT members always retain the ability to review or modify Access Requirements."
|
|
87
93
|
})
|
|
88
94
|
] }),
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
resourceAccessList:
|
|
91
|
-
availablePermissionLevels:
|
|
92
|
-
isLoading:
|
|
95
|
+
/* @__PURE__ */ v(o, {
|
|
96
|
+
resourceAccessList: P,
|
|
97
|
+
availablePermissionLevels: C,
|
|
98
|
+
isLoading: M,
|
|
93
99
|
canEdit: !0,
|
|
94
|
-
emptyText:
|
|
95
|
-
onAddPrincipalToAcl: (e) =>
|
|
96
|
-
updateResourceAccessItem:
|
|
97
|
-
removeResourceAccessItem:
|
|
100
|
+
emptyText: S,
|
|
101
|
+
onAddPrincipalToAcl: (e) => I(e, [b.REVIEW_SUBMISSIONS]),
|
|
102
|
+
updateResourceAccessItem: L,
|
|
103
|
+
removeResourceAccessItem: R,
|
|
98
104
|
showAddRemovePublicButton: !1,
|
|
99
105
|
showNotifyCheckbox: !1,
|
|
100
106
|
isInherited: !1
|
|
101
107
|
}),
|
|
102
|
-
|
|
108
|
+
D && /* @__PURE__ */ v(m, {
|
|
103
109
|
severity: "error",
|
|
104
|
-
children:
|
|
110
|
+
children: D
|
|
105
111
|
})
|
|
106
112
|
]
|
|
107
113
|
});
|
|
108
114
|
});
|
|
109
115
|
//#endregion
|
|
110
|
-
export {
|
|
116
|
+
export { w as AccessRequirementAclEditor, S as EMPTY_RESOURCE_ACCESS_LIST_TEXT };
|
|
111
117
|
|
|
112
118
|
//# sourceMappingURL=AccessRequirementAclEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRequirementAclEditor.js","names":[],"sources":["../../../src/components/AccessRequirementAclEditor/AccessRequirementAclEditor.tsx"],"sourcesContent":["import {\n useCreateAccessRequirementACL,\n useDeleteAccessRequirementACL,\n useGetAccessRequirementACL,\n useUpdateAccessRequirementACL,\n} from '@/synapse-queries'\nimport { spreadSx } from '@/theme/spreadSx'\nimport { PermissionLevel } from '@/utils/PermissionLevelToAccessType'\nimport { Alert, Box, Stack, Typography } from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { ACCESS_TYPE, AccessControlList } from '@sage-bionetworks/synapse-types'\nimport { isEqual } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react'\nimport { AclEditor } from '../AclEditor/AclEditor'\nimport useUpdateAcl from '../AclEditor/useUpdateAcl'\n\nconst textSx = {\n variant: 'body1',\n lineHeight: '20px',\n color: 'grey.800',\n}\n\nexport const EMPTY_RESOURCE_ACCESS_LIST_TEXT =\n 'Only ACT has permissions on this AR.'\n\nconst availablePermissionLevels: PermissionLevel[] = [\n 'CAN_REVIEW_SUBMISSIONS',\n 'IS_EXEMPTION_ELIGIBLE',\n 'CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE',\n]\n\nexport type AccessRequirementAclEditorHandle = {\n /* Allow the parent component to trigger saving the ACL, so this may be embedded in an arbitrary modal. */\n save: () => void\n}\n\nexport type AccessRequirementAclEditorProps = {\n accessRequirementId: string\n /* Called when ACL has been saved or an error has been returned */\n onSaveComplete: (saveSuccessful: boolean) => void\n}\n\nexport const AccessRequirementAclEditor = forwardRef(\n function AccessRequirementAclEditor(\n props: AccessRequirementAclEditorProps,\n ref: ForwardedRef<AccessRequirementAclEditorHandle>,\n ) {\n const { accessRequirementId, onSaveComplete } = props\n const [error, setError] = useState<string | null>(null)\n\n const onMutationSuccess = () => {\n setError(null)\n onSaveComplete(true)\n }\n\n const onMutationError = (error: SynapseClientError) => {\n setError(error.reason)\n onSaveComplete(false)\n }\n\n const { data: originalAcl, isLoading: isLoadingOriginalAcl } =\n useGetAccessRequirementACL(accessRequirementId, {\n // Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation\n staleTime: Infinity,\n })\n\n const {\n resourceAccessList,\n setResourceAccessList,\n addResourceAccessItem,\n updateResourceAccessItem,\n removeResourceAccessItem,\n resetDirtyState,\n } = useUpdateAcl({\n onChange: () => setError(null),\n onError: setError,\n })\n\n // set resourceAccessList when the fetched acl changes\n useEffect(() => {\n if (originalAcl) {\n resetDirtyState()\n setResourceAccessList(
|
|
1
|
+
{"version":3,"file":"AccessRequirementAclEditor.js","names":[],"sources":["../../../src/components/AccessRequirementAclEditor/AccessRequirementAclEditor.tsx"],"sourcesContent":["import {\n useCreateAccessRequirementACL,\n useDeleteAccessRequirementACL,\n useGetAccessRequirementACL,\n useUpdateAccessRequirementACL,\n} from '@/synapse-queries'\nimport { spreadSx } from '@/theme/spreadSx'\nimport { PermissionLevel } from '@/utils/PermissionLevelToAccessType'\nimport { Alert, Box, Stack, Typography } from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { ACCESS_TYPE, AccessControlList } from '@sage-bionetworks/synapse-types'\nimport { consolidateResourceAccessList } from '@/utils/functions/AccessControlListUtils'\nimport { isEqual } from 'lodash-es'\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\nimport { AclEditor } from '../AclEditor/AclEditor'\nimport useUpdateAcl from '../AclEditor/useUpdateAcl'\n\nconst textSx = {\n variant: 'body1',\n lineHeight: '20px',\n color: 'grey.800',\n}\n\nexport const EMPTY_RESOURCE_ACCESS_LIST_TEXT =\n 'Only ACT has permissions on this AR.'\n\nconst availablePermissionLevels: PermissionLevel[] = [\n 'CAN_REVIEW_SUBMISSIONS',\n 'IS_EXEMPTION_ELIGIBLE',\n 'CAN_REVIEW_SUBMISSIONS_AND_IS_EXEMPTION_ELIGIBLE',\n]\n\nexport type AccessRequirementAclEditorHandle = {\n /* Allow the parent component to trigger saving the ACL, so this may be embedded in an arbitrary modal. */\n save: () => void\n}\n\nexport type AccessRequirementAclEditorProps = {\n accessRequirementId: string\n /* Called when ACL has been saved or an error has been returned */\n onSaveComplete: (saveSuccessful: boolean) => void\n}\n\nexport const AccessRequirementAclEditor = forwardRef(\n function AccessRequirementAclEditor(\n props: AccessRequirementAclEditorProps,\n ref: ForwardedRef<AccessRequirementAclEditorHandle>,\n ) {\n const { accessRequirementId, onSaveComplete } = props\n const [error, setError] = useState<string | null>(null)\n\n const onMutationSuccess = () => {\n setError(null)\n onSaveComplete(true)\n }\n\n const onMutationError = (error: SynapseClientError) => {\n setError(error.reason)\n onSaveComplete(false)\n }\n\n const { data: originalAcl, isLoading: isLoadingOriginalAcl } =\n useGetAccessRequirementACL(accessRequirementId, {\n // Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation\n staleTime: Infinity,\n })\n\n const consolidatedOriginalResourceAccess = useMemo(\n () => consolidateResourceAccessList(originalAcl?.resourceAccess ?? []),\n [originalAcl],\n )\n\n const {\n resourceAccessList,\n setResourceAccessList,\n addResourceAccessItem,\n updateResourceAccessItem,\n removeResourceAccessItem,\n resetDirtyState,\n } = useUpdateAcl({\n onChange: () => setError(null),\n onError: setError,\n })\n\n // set resourceAccessList when the fetched acl changes\n useEffect(() => {\n if (originalAcl) {\n resetDirtyState()\n setResourceAccessList(consolidatedOriginalResourceAccess)\n }\n }, [\n originalAcl,\n consolidatedOriginalResourceAccess,\n resetDirtyState,\n setResourceAccessList,\n ])\n\n const { mutate: deleteAcl } = useDeleteAccessRequirementACL({\n onSuccess: () => onMutationSuccess(),\n onError: error => onMutationError(error),\n })\n\n const { mutate: createAcl } = useCreateAccessRequirementACL({\n onSuccess: () => onMutationSuccess(),\n onError: error => onMutationError(error),\n })\n\n const { mutate: updateAcl } = useUpdateAccessRequirementACL({\n onSuccess: () => onMutationSuccess(),\n onError: error => onMutationError(error),\n })\n\n useImperativeHandle(\n ref,\n () => {\n return {\n save() {\n const updatedAcl: AccessControlList | null =\n resourceAccessList.length === 0\n ? null\n : {\n ...originalAcl,\n id: originalAcl?.id || accessRequirementId,\n resourceAccess: resourceAccessList,\n }\n const aclIsUnchanged =\n (originalAcl === null && updatedAcl == null) ||\n // ignore properties that will change when the ACL is saved (etag, modifiedOn)\n (isEqual(\n consolidatedOriginalResourceAccess,\n resourceAccessList,\n ) &&\n originalAcl?.id === updatedAcl?.id)\n\n if (aclIsUnchanged) {\n // noop\n onSaveComplete(true)\n } else if (originalAcl === null && updatedAcl !== null) {\n createAcl(updatedAcl)\n } else if (updatedAcl === null) {\n deleteAcl(accessRequirementId)\n } else {\n updateAcl(updatedAcl)\n }\n },\n }\n },\n [\n accessRequirementId,\n originalAcl,\n resourceAccessList,\n createAcl,\n deleteAcl,\n onSaveComplete,\n updateAcl,\n ],\n )\n\n return (\n <Stack\n direction=\"column\"\n sx={{\n gap: '20px',\n }}\n >\n <Box>\n <Typography\n variant=\"headline3\"\n sx={{\n mb: '10px',\n }}\n >\n Guide to AR permissions\n </Typography>\n <Typography\n sx={spreadSx(\n {\n mb: '10px',\n },\n textSx,\n )}\n >\n <span style={{ fontStyle: 'italic' }}>Can Review</span> means a user\n or team has access request review permission for this AR.\n </Typography>\n <Typography\n sx={spreadSx(\n {\n mb: '10px',\n },\n textSx,\n )}\n >\n <span style={{ fontStyle: 'italic' }}>Exempt Eligible</span> users\n and teams can bypass access requirements for entities they have been\n granted "edit and delete" permission on, via the\n "Sharing Settings" dialog in the Project Settings.\n </Typography>\n <Typography sx={{ ...textSx, color: 'grey.900' }}>\n ACT members always retain the ability to review or modify Access\n Requirements.\n </Typography>\n </Box>\n <AclEditor\n resourceAccessList={resourceAccessList}\n availablePermissionLevels={availablePermissionLevels}\n isLoading={isLoadingOriginalAcl}\n canEdit={true}\n emptyText={EMPTY_RESOURCE_ACCESS_LIST_TEXT}\n onAddPrincipalToAcl={id =>\n addResourceAccessItem(id, [ACCESS_TYPE.REVIEW_SUBMISSIONS])\n }\n updateResourceAccessItem={updateResourceAccessItem}\n removeResourceAccessItem={removeResourceAccessItem}\n showAddRemovePublicButton={false}\n showNotifyCheckbox={false}\n isInherited={false}\n />\n {error && <Alert severity=\"error\">{error}</Alert>}\n </Stack>\n )\n },\n)\n"],"mappings":";;;;;;;;;;;;AAwBA,IAAM,IAAS;CACb,SAAS;CACT,YAAY;CACZ,OAAO;CACR,EAEY,IACX,wCAEI,IAA+C;CACnD;CACA;CACA;CACD,EAaY,IAA6B,EACxC,SACE,GACA,GACA;CACA,IAAM,EAAE,wBAAqB,sBAAmB,GAC1C,CAAC,GAAO,KAAY,EAAwB,KAAK,EAEjD,UAA0B;AAE9B,EADA,EAAS,KAAK,EACd,EAAe,GAAK;IAGhB,KAAmB,MAA8B;AAErD,EADA,EAAS,EAAM,OAAO,EACtB,EAAe,GAAM;IAGjB,EAAE,MAAM,GAAa,WAAW,MACpC,EAA2B,GAAqB,EAE9C,WAAW,UACZ,CAAC,EAEE,IAAqC,QACnC,EAA8B,GAAa,kBAAkB,EAAE,CAAC,EACtE,CAAC,EAAY,CACd,EAEK,EACJ,uBACA,0BACA,0BACA,6BACA,6BACA,uBACE,EAAa;EACf,gBAAgB,EAAS,KAAK;EAC9B,SAAS;EACV,CAAC;AAGF,SAAgB;AACd,EAAI,MACF,GAAiB,EACjB,EAAsB,EAAmC;IAE1D;EACD;EACA;EACA;EACA;EACD,CAAC;CAEF,IAAM,EAAE,QAAQ,MAAc,EAA8B;EAC1D,iBAAiB,GAAmB;EACpC,UAAS,MAAS,EAAgB,EAAM;EACzC,CAAC,EAEI,EAAE,QAAQ,MAAc,EAA8B;EAC1D,iBAAiB,GAAmB;EACpC,UAAS,MAAS,EAAgB,EAAM;EACzC,CAAC,EAEI,EAAE,QAAQ,MAAc,EAA8B;EAC1D,iBAAiB,GAAmB;EACpC,UAAS,MAAS,EAAgB,EAAM;EACzC,CAAC;AAgDF,QA9CA,EACE,UAES,EACL,OAAO;EACL,IAAM,IACJ,EAAmB,WAAW,IAC1B,OACA;GACE,GAAG;GACH,IAAI,GAAa,MAAM;GACvB,gBAAgB;GACjB;AAUP,EARG,MAAgB,QAAQ,KAAc,QAEtC,EACC,GACA,EACD,IACC,GAAa,OAAO,GAAY,KAIlC,EAAe,GAAK,GACX,MAAgB,QAAQ,MAAe,OAChD,EAAU,EAAW,GACZ,MAAe,OACxB,EAAU,EAAoB,GAE9B,EAAU,EAAW;IAG1B,GAEH;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF,EAGC,kBAAC,GAAD;EACE,WAAU;EACV,IAAI,EACF,KAAK,QACN;YAJH;GAME,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI,EACF,IAAI,QACL;eACF;KAEY,CAAA;IACb,kBAAC,GAAD;KACE,IAAI,EACF,EACE,IAAI,QACL,EACD,EACD;eANH,CAQE,kBAAC,QAAD;MAAM,OAAO,EAAE,WAAW,UAAU;gBAAE;MAAiB,CAAA,EAAA,0EAE5C;;IACb,kBAAC,GAAD;KACE,IAAI,EACF,EACE,IAAI,QACL,EACD,EACD;eANH,CAQE,kBAAC,QAAD;MAAM,OAAO,EAAE,WAAW,UAAU;gBAAE;MAAsB,CAAA,EAAA,sLAIjD;;IACb,kBAAC,GAAD;KAAY,IAAI;MAAE,GAAG;MAAQ,OAAO;MAAY;eAAE;KAGrC,CAAA;IACT,EAAA,CAAA;GACN,kBAAC,GAAD;IACsB;IACO;IAC3B,WAAW;IACX,SAAS;IACT,WAAW;IACX,sBAAqB,MACnB,EAAsB,GAAI,CAAC,EAAY,mBAAmB,CAAC;IAEnC;IACA;IAC1B,2BAA2B;IAC3B,oBAAoB;IACpB,aAAa;IACb,CAAA;GACD,KAAS,kBAAC,GAAD;IAAO,UAAS;cAAS;IAAc,CAAA;GAC3C;;EAGb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessApprovalCheckMark.js","names":[],"sources":["../../../src/components/AccessRequirementList/AccessApprovalCheckMark.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { spreadSx } from '@/theme/spreadSx'\nimport {\n AccessTimeFilled,\n CheckTwoTone,\n LockTwoTone,\n} from '@mui/icons-material'\nimport { Avatar, styled, SxProps, useTheme } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\nimport { ReactNode } from 'react'\n\nexport enum RequirementItemStatus {\n COMPLETE = 'COMPLETE',\n PENDING = 'PENDING',\n LOCKED = 'LOCKED',\n LOADING = 'LOADING',\n}\n\nexport type CheckMarkProps = {\n status: RequirementItemStatus\n sx?: SxProps\n}\n\nconst iconSx: SxProps = {\n width: '20px',\n}\n\nconst AccessApprovalCheckMarkContainer = styled(Avatar, {\n label: 'AccessApprovalCheckMarkContainer',\n})({\n color: 'white',\n height: '30px',\n width: '30px',\n})\n\n/**\n * Renders an icon for a RequirementItem based on the status prop.\n */\nexport default function AccessApprovalCheckMark({\n status,\n sx,\n}: CheckMarkProps) {\n const theme = useTheme()\n let backgroundColor: string | undefined = undefined\n let icon: ReactNode = <></>\n\n switch (status) {\n case RequirementItemStatus.COMPLETE:\n backgroundColor = theme.palette.success.main\n icon = <CheckTwoTone sx={iconSx} />\n break\n case RequirementItemStatus.PENDING:\n // TODO: Use theme to provide this color\n // Should always be Sapphire 500, not the primary color of the current app\n backgroundColor = '#395979'\n icon = <AccessTimeFilled sx={iconSx} />\n break\n case RequirementItemStatus.LOCKED:\n // TODO: Use theme to provide this color\n backgroundColor = '#FF9B00'\n icon = <LockTwoTone sx={iconSx} />\n break\n case RequirementItemStatus.LOADING:\n default:\n break\n }\n\n return (\n <AccessApprovalCheckMarkContainer\n data-testid={`AccessApprovalCheckMark-${status}`}\n sx={spreadSx(\n {\n backgroundColor: backgroundColor,\n },\n sx,\n )}\n >\n <ConditionalWrapper\n condition={status === RequirementItemStatus.LOADING}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n sx: {\n minHeight: '30px',\n minWidth: '30px',\n },\n }}\n >\n {icon}\n </ConditionalWrapper>\n </AccessApprovalCheckMarkContainer>\n )\n}\n"],"mappings":";;;;;;;AAWA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,
|
|
1
|
+
{"version":3,"file":"AccessApprovalCheckMark.js","names":[],"sources":["../../../src/components/AccessRequirementList/AccessApprovalCheckMark.tsx"],"sourcesContent":["import ConditionalWrapper from '@/components/utils/ConditionalWrapper'\nimport { spreadSx } from '@/theme/spreadSx'\nimport {\n AccessTimeFilled,\n CheckTwoTone,\n LockTwoTone,\n} from '@mui/icons-material'\nimport { Avatar, styled, SxProps, useTheme } from '@mui/material'\nimport Skeleton from '@mui/material/Skeleton'\nimport { ReactNode } from 'react'\n\nexport enum RequirementItemStatus {\n COMPLETE = 'COMPLETE',\n PENDING = 'PENDING',\n LOCKED = 'LOCKED',\n LOADING = 'LOADING',\n}\n\nexport type CheckMarkProps = {\n status: RequirementItemStatus\n sx?: SxProps\n}\n\nconst iconSx: SxProps = {\n width: '20px',\n}\n\nconst AccessApprovalCheckMarkContainer = styled(Avatar, {\n label: 'AccessApprovalCheckMarkContainer',\n})({\n color: 'white',\n height: '30px',\n width: '30px',\n})\n\n/**\n * Renders an icon for a RequirementItem based on the status prop.\n */\nexport default function AccessApprovalCheckMark({\n status,\n sx,\n}: CheckMarkProps) {\n const theme = useTheme()\n let backgroundColor: string | undefined = undefined\n let icon: ReactNode = <></>\n\n switch (status) {\n case RequirementItemStatus.COMPLETE:\n backgroundColor = theme.palette.success.main\n icon = <CheckTwoTone sx={iconSx} />\n break\n case RequirementItemStatus.PENDING:\n // TODO: Use theme to provide this color\n // Should always be Sapphire 500, not the primary color of the current app\n backgroundColor = '#395979'\n icon = <AccessTimeFilled sx={iconSx} />\n break\n case RequirementItemStatus.LOCKED:\n // TODO: Use theme to provide this color\n backgroundColor = '#FF9B00'\n icon = <LockTwoTone sx={iconSx} />\n break\n case RequirementItemStatus.LOADING:\n default:\n break\n }\n\n return (\n <AccessApprovalCheckMarkContainer\n data-testid={`AccessApprovalCheckMark-${status}`}\n sx={spreadSx(\n {\n backgroundColor: backgroundColor,\n },\n sx,\n )}\n >\n <ConditionalWrapper\n condition={status === RequirementItemStatus.LOADING}\n wrapper={Skeleton}\n wrapperProps={{\n variant: 'circular',\n sx: {\n minHeight: '30px',\n minWidth: '30px',\n },\n }}\n >\n {icon}\n </ConditionalWrapper>\n </AccessApprovalCheckMarkContainer>\n )\n}\n"],"mappings":";;;;;;;AAWA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,WAAW,YACX,EAAA,UAAU,WACV,EAAA,SAAS,UACT,EAAA,UAAU;KACX,EAOK,IAAkB,EACtB,OAAO,QACR,EAEK,IAAmC,EAAO,GAAQ,EACtD,OAAO,oCACR,CAAC,CAAC;CACD,OAAO;CACP,QAAQ;CACR,OAAO;CACR,CAAC;AAKF,SAAwB,EAAwB,EAC9C,WACA,SACiB;CACjB,IAAM,IAAQ,GAAU,EACpB,GACA,IAAkB,kBAAA,GAAA,EAAK,CAAA;AAE3B,SAAQ,GAAR;EACE,KAAK,EAAsB;AAEzB,GADA,IAAkB,EAAM,QAAQ,QAAQ,MACxC,IAAO,kBAAC,GAAD,EAAc,IAAI,GAAU,CAAA;AACnC;EACF,KAAK,EAAsB;AAIzB,GADA,IAAkB,WAClB,IAAO,kBAAC,GAAD,EAAkB,IAAI,GAAU,CAAA;AACvC;EACF,KAAK,EAAsB;AAGzB,GADA,IAAkB,WAClB,IAAO,kBAAC,GAAD,EAAa,IAAI,GAAU,CAAA;AAClC;EACF,KAAK,EAAsB;EAC3B,QACE;;AAGJ,QACE,kBAAC,GAAD;EACE,eAAa,2BAA2B;EACxC,IAAI,EACF,EACmB,oBAClB,EACD,EACD;YAED,kBAAC,GAAD;GACE,WAAW,MAAW,EAAsB;GAC5C,SAAS;GACT,cAAc;IACZ,SAAS;IACT,IAAI;KACF,WAAW;KACX,UAAU;KACX;IACF;aAEA;GACkB,CAAA;EACY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRequirementList.js","names":[],"sources":["../../../src/components/AccessRequirementList/AccessRequirementList.tsx"],"sourcesContent":["import {\n useGetAccessRequirementsForEntity,\n useGetAccessRequirementsForTeam,\n useSortAccessRequirementIdsByCompletion,\n} from '@/synapse-queries'\nimport {\n storeRedirectURLForOneSageLoginAndGotoURL,\n useSynapseContext,\n} from '@/utils'\nimport { StyledComponent } from '@emotion/styled'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n styled,\n Typography,\n TypographyProps,\n} from '@mui/material'\nimport {\n AccessRequirement,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ManagedACTAccessRequirement,\n Renewal,\n Request,\n RestrictableObjectType,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\nimport noop from 'lodash-es/noop'\nimport groupBy from 'lodash-es/groupBy'\nimport { ReactNode, useMemo, useState } from 'react'\nimport { DialogBaseTitle } from '../DialogBase'\nimport { EntityLink } from '../EntityLink'\nimport IconSvg from '../IconSvg/IconSvg'\nimport UserOrTeamBadge from '../UserOrTeamBadge'\nimport { AccessRequirementListItem } from './AccessRequirementListItem'\nimport { useCanShowManagedACTWikiInWizard } from './AccessRequirementListUtils'\nimport CancelRequestDataAccess from './ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess'\nimport DataAccessRequestAccessorsFilesForm from './ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm'\nimport RequestDataAccessSuccess from './ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess'\nimport ResearchProjectForm from './ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm'\nimport AuthenticatedRequirement from './RequirementItem/AuthenticatedRequirement'\nimport CertificationRequirement from './RequirementItem/CertificationRequirement'\nimport TwoFactorAuthEnabledRequirement from './RequirementItem/TwoFactorAuthEnabledRequirement'\nimport ValidationRequirement from './RequirementItem/ValidationRequirement'\nimport { useOneSageURL } from '@/utils/hooks'\n\nexport type AccessRequirementListProps = {\n /* if provided, will show this instead of the entity information */\n numberOfFilesAffected?: number\n /* if provided, will show this instead of the entity information or numberOfFilesAffected */\n requestObjectName?: string\n /* If true, this component will render in its own modal */\n renderAsModal?: boolean\n /* Overrides the default dialog title. This only applies if renderAsModal is true */\n dialogTitle?: string\n /* Called when the user rejects the terms of a listed AccessRequirement. If renderAsModal is true, this is also called when the user closes the modal. */\n onHide: () => void\n /* Displays the provided list of access requirements, instead of the ones fetched using the subject ID */\n accessRequirementFromProps?: Array<AccessRequirement>\n /* If provided, displays these actions on when viewing all ARs */\n customDialogActions?: ReactNode\n /* Optional callback invoked if a submission is created via this component */\n onSubmissionCreated?: (submissionId: string) => void\n} & (\n | {\n /**\n * Fetches the access requirements associated with an entity\n * @deprecated Please use `subjectId` and `subjectType`\n */\n entityId: string\n }\n | {\n /**\n * Fetches the access requirements associated with a team\n * @deprecated Please use `subjectId` and `subjectType`\n */\n teamId: string\n }\n | {\n /* The ID of the object for which access is being requested */\n subjectId?: string\n /* The type of the object for which access is being requested */\n subjectType?: RestrictableObjectType\n }\n)\n\nconst SUPPORTED_ACCESS_REQUIREMENT_TYPES_SORTED: AccessRequirement['concreteType'][] =\n [\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ]\n\nconst SUPPORTED_ACCESS_REQUIREMENT_TYPES = new Set<\n AccessRequirement['concreteType']\n>(SUPPORTED_ACCESS_REQUIREMENT_TYPES_SORTED)\n\nconst DialogSubsectionHeader: StyledComponent<TypographyProps> = styled(\n Typography,\n {\n label: 'DialogSubsectionHeader',\n },\n)(({ theme }) => ({\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(2),\n paddingBottom: theme.spacing(1),\n fontSize: '18px',\n fontWeight: 'bold',\n borderBottom: '1px solid',\n borderColor: theme.palette.grey['200'],\n}))\n\nexport const checkHasUnsupportedRequirement = (\n accessRequirements: Array<AccessRequirement>,\n): boolean => {\n return accessRequirements.some(isARUnsupported)\n}\n\nconst isARUnsupported = (accessRequirement: AccessRequirement) => {\n return !SUPPORTED_ACCESS_REQUIREMENT_TYPES.has(accessRequirement.concreteType)\n}\n\n/**\n * Represents a distinct screen in the wizard used to apply to a ManagedACTAccessRequirement\n */\nenum RequestDataStep {\n SHOW_ALL_ARS = 0,\n UPDATE_RESEARCH_PROJECT = 1,\n UPDATE_ACCESSORS_AND_FILES = 2,\n PROMPT_CANCEL = 3,\n PROMPT_LOGIN = 4,\n COMPLETE = 5,\n}\n\nexport type RequestDataStepCallbackArgs = {\n step: RequestDataStep\n managedACTAccessRequirement?: ManagedACTAccessRequirement\n researchProjectId?: string\n dataAccessRequest?: Request | Renewal\n}\n\n/**\n * The AccessRequirementListV2 component renders a set of {@link AccessRequirement}s (either pre-defined, or those applied\n * to an entity, based on provided props).\n *\n * The component shows the user the approval status of each AR and provides a workflow for accepting the terms of or\n * creating a submission for any of the Access Requirements.\n */\nexport default function AccessRequirementList(\n props: AccessRequirementListProps,\n) {\n const {\n onHide = noop,\n renderAsModal = false,\n numberOfFilesAffected,\n requestObjectName,\n customDialogActions,\n onSubmissionCreated = noop,\n } = props\n\n const isShowingRequirementsForEntity = 'entityId' in props\n const isShowingRequirementsForTeam = 'teamId' in props\n const isShowingRequirementsFromProps = 'accessRequirementFromProps' in props\n\n const subjectId =\n 'subjectId' in props\n ? props.subjectId\n : isShowingRequirementsForEntity\n ? props.entityId\n : isShowingRequirementsForTeam\n ? props.teamId\n : undefined\n\n const subjectType =\n 'subjectType' in props\n ? props.subjectType\n : isShowingRequirementsForEntity\n ? RestrictableObjectType.ENTITY\n : isShowingRequirementsForTeam\n ? RestrictableObjectType.TEAM\n : undefined\n\n let { dialogTitle = 'Data Access Request' } = props\n const { isAuthenticated } = useSynapseContext()\n const [requestDataStep, setRequestDataStep] = useState<RequestDataStep>(\n RequestDataStep.SHOW_ALL_ARS,\n )\n const oneSageURL = useOneSageURL()\n const [managedACTAccessRequirement, setManagedACTAccessRequirement] =\n useState<ManagedACTAccessRequirement>()\n const [researchProjectId, setResearchProjectId] = useState<string>('')\n const [dataAccessRequest, setDataAccessRequest] = useState<\n Request | Renewal | undefined\n >()\n\n const canShowManagedACTWikiInWizard = useCanShowManagedACTWikiInWizard()\n\n const { data: fetchedRequirementsForTeam } = useGetAccessRequirementsForTeam(\n subjectId!,\n {\n enabled:\n subjectId !== undefined && subjectType === RestrictableObjectType.TEAM,\n },\n )\n const { data: fetchedRequirementsForEntity } =\n useGetAccessRequirementsForEntity(subjectId!, {\n enabled:\n subjectId !== undefined &&\n subjectType === RestrictableObjectType.ENTITY,\n })\n\n const requirementsFromProps = isShowingRequirementsFromProps\n ? props.accessRequirementFromProps\n : undefined\n\n const accessRequirements =\n requirementsFromProps ??\n fetchedRequirementsForEntity ??\n fetchedRequirementsForTeam\n\n /**\n * Set the initial ordering of the Access Requirements to show complete ARs first. The individual AR Item components\n * retrieve and render status independently, so this data only determines ordering. For this reason, the query data\n * should not be invalidated or updated as the user progresses through the workflow.\n */\n const { data: sortedAccessRequirementIds } =\n useSortAccessRequirementIdsByCompletion(\n (accessRequirements ?? []).map(ar => String(ar.id)),\n {\n enabled: !!accessRequirements,\n // Set the stale time to infinity because we don't want to refetch this and change the order\n staleTime: Infinity,\n },\n )\n\n const sortedGroupedAccessRequirementsByType = useMemo(() => {\n if (accessRequirements && sortedAccessRequirementIds) {\n // SWC-7218: Group by access requirement type\n const groupedAccessRequirementsByType = groupBy(\n accessRequirements,\n 'concreteType',\n )\n const sortedByTypeAndStatus =\n SUPPORTED_ACCESS_REQUIREMENT_TYPES_SORTED.map(type => {\n const arsOfType = groupedAccessRequirementsByType[type]\n if (arsOfType) {\n return sortedAccessRequirementIds.map(\n id => arsOfType.find(ar => id === String(ar.id))!,\n )\n }\n return []\n })\n .flat()\n .filter((item): item is AccessRequirement => item !== undefined)\n return sortedByTypeAndStatus\n }\n return undefined\n }, [accessRequirements, sortedAccessRequirementIds])\n\n const requestDataStepCallback = (props: RequestDataStepCallbackArgs) => {\n const {\n managedACTAccessRequirement,\n step,\n researchProjectId,\n dataAccessRequest: newDataAccessRequest,\n } = props\n if (managedACTAccessRequirement) {\n // required for step 1, 2 form\n setManagedACTAccessRequirement(managedACTAccessRequirement)\n }\n if (researchProjectId) {\n setResearchProjectId(researchProjectId)\n }\n if (newDataAccessRequest) {\n setDataAccessRequest(newDataAccessRequest)\n }\n setRequestDataStep(step)\n }\n\n const anyARsRequireTwoFactorAuth = accessRequirements?.some(\n accessRequirement =>\n accessRequirement.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE &&\n accessRequirement.isTwoFaRequired,\n )\n\n const anyARsRequireCertification = accessRequirements?.some(\n accessRequirement =>\n (accessRequirement.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE ||\n accessRequirement.concreteType ===\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE) &&\n accessRequirement.isCertifiedUserRequired,\n )\n\n const anyARsRequireProfileValidation = accessRequirements?.some(\n accessRequirement =>\n (accessRequirement.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE ||\n accessRequirement.concreteType ===\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE) &&\n accessRequirement.isValidatedProfileRequired,\n )\n\n const requestDetails = useMemo(() => {\n // Prioritize requestObjectName, then the number of files affected, then the entity/team name\n if (requestObjectName) return requestObjectName\n if (numberOfFilesAffected)\n return (\n <>\n <IconSvg icon=\"file\" sx={{ width: '30px' }} /> {numberOfFilesAffected}{' '}\n File(s)\n </>\n )\n if (\n subjectId !== undefined &&\n subjectType === RestrictableObjectType.ENTITY\n ) {\n return <EntityLink entity={subjectId} />\n } else if (subjectType === RestrictableObjectType.TEAM) {\n return <UserOrTeamBadge principalId={subjectId} />\n } else {\n console.warn(\n `Unhandled case for AccessRequirementList requestDetails: ${subjectType}: ${subjectId}`,\n )\n return <></>\n }\n }, [numberOfFilesAffected, requestObjectName, subjectId, subjectType])\n\n const dialogWidth =\n [\n RequestDataStep.UPDATE_ACCESSORS_AND_FILES,\n RequestDataStep.UPDATE_RESEARCH_PROJECT,\n ].includes(requestDataStep) && canShowManagedACTWikiInWizard\n ? 'xl'\n : 'md'\n\n let renderContent = <></>\n switch (requestDataStep) {\n case RequestDataStep.UPDATE_RESEARCH_PROJECT:\n renderContent = (\n <ResearchProjectForm\n managedACTAccessRequirement={managedACTAccessRequirement!}\n onSave={researchProject => {\n requestDataStepCallback({\n managedACTAccessRequirement,\n step: RequestDataStep.UPDATE_ACCESSORS_AND_FILES,\n researchProjectId: researchProject.id,\n })\n }}\n onHide={onHide}\n />\n )\n break\n case RequestDataStep.UPDATE_ACCESSORS_AND_FILES:\n renderContent = (\n <DataAccessRequestAccessorsFilesForm\n researchProjectId={researchProjectId}\n managedACTAccessRequirement={managedACTAccessRequirement!}\n subjectId={subjectId ?? ''}\n subjectType={subjectType ?? RestrictableObjectType.ENTITY}\n onHide={onHide}\n onCancel={dataAccessRequestInProgress => {\n requestDataStepCallback({\n step: RequestDataStep.PROMPT_CANCEL,\n dataAccessRequest: dataAccessRequestInProgress,\n })\n }}\n onSubmissionCreated={submissionId => {\n requestDataStepCallback({ step: RequestDataStep.COMPLETE })\n onSubmissionCreated(submissionId)\n }}\n onBackClicked={() => {\n requestDataStepCallback({\n step: RequestDataStep.UPDATE_RESEARCH_PROJECT,\n })\n }}\n />\n )\n break\n case RequestDataStep.PROMPT_CANCEL:\n renderContent = (\n <CancelRequestDataAccess\n modifiedDataAccessRequest={dataAccessRequest}\n onHide={onHide} // for closing dialogs\n />\n )\n break\n case RequestDataStep.PROMPT_LOGIN:\n // Send to OneSage login page\n storeRedirectURLForOneSageLoginAndGotoURL(oneSageURL.toString())\n dialogTitle = 'Please Log In'\n renderContent = <></>\n break\n case RequestDataStep.COMPLETE:\n renderContent = <RequestDataAccessSuccess onHide={onHide} />\n break\n case RequestDataStep.SHOW_ALL_ARS:\n default:\n renderContent = (\n <>\n {renderAsModal ? (\n <DialogBaseTitle title={dialogTitle} onCancel={onHide} />\n ) : (\n <Typography variant=\"h5\" sx={{ mb: 2 }}>\n {dialogTitle}\n </Typography>\n )}\n <DialogContent>\n <DialogSubsectionHeader variant={'h4'} sx={{ mt: 0 }}>\n What is this request for?\n </DialogSubsectionHeader>\n <Typography variant={'body1'} component={'span'}>\n {requestDetails}\n </Typography>\n <DialogSubsectionHeader variant={'h4'}>\n What do I need to do?\n </DialogSubsectionHeader>\n <AuthenticatedRequirement />\n {anyARsRequireCertification && <CertificationRequirement />}\n {anyARsRequireProfileValidation && <ValidationRequirement />}\n {anyARsRequireTwoFactorAuth && <TwoFactorAuthEnabledRequirement />}\n {sortedGroupedAccessRequirementsByType?.map(accessRequirement => {\n return (\n <AccessRequirementListItem\n key={accessRequirement.id}\n accessRequirement={accessRequirement}\n subjectId={subjectId}\n subjectType={subjectType}\n onHide={onHide}\n onRequestAccess={accessRequirement => {\n const nextStep = isAuthenticated\n ? RequestDataStep.UPDATE_RESEARCH_PROJECT\n : RequestDataStep.PROMPT_LOGIN\n requestDataStepCallback({\n managedACTAccessRequirement: accessRequirement,\n step: nextStep,\n })\n }}\n />\n )\n })}\n </DialogContent>\n <DialogActions>\n {customDialogActions ? (\n customDialogActions\n ) : (\n <>\n {renderAsModal && (\n <Button variant=\"contained\" onClick={onHide}>\n Close\n </Button>\n )}\n </>\n )}\n </DialogActions>\n </>\n )\n }\n\n if (renderAsModal) {\n return (\n <Dialog maxWidth={dialogWidth} fullWidth open={true} onClose={onHide}>\n {renderContent}\n </Dialog>\n )\n }\n\n return <>{renderContent}</>\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AccessRequirementList.js","names":[],"sources":["../../../src/components/AccessRequirementList/AccessRequirementList.tsx"],"sourcesContent":["import {\n useGetAccessRequirementsForEntity,\n useGetAccessRequirementsForTeam,\n useSortAccessRequirementIdsByCompletion,\n} from '@/synapse-queries'\nimport {\n storeRedirectURLForOneSageLoginAndGotoURL,\n useSynapseContext,\n} from '@/utils'\nimport { StyledComponent } from '@emotion/styled'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n styled,\n Typography,\n TypographyProps,\n} from '@mui/material'\nimport {\n AccessRequirement,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ManagedACTAccessRequirement,\n Renewal,\n Request,\n RestrictableObjectType,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\nimport noop from 'lodash-es/noop'\nimport groupBy from 'lodash-es/groupBy'\nimport { ReactNode, useMemo, useState } from 'react'\nimport { DialogBaseTitle } from '../DialogBase'\nimport { EntityLink } from '../EntityLink'\nimport IconSvg from '../IconSvg/IconSvg'\nimport UserOrTeamBadge from '../UserOrTeamBadge'\nimport { AccessRequirementListItem } from './AccessRequirementListItem'\nimport { useCanShowManagedACTWikiInWizard } from './AccessRequirementListUtils'\nimport CancelRequestDataAccess from './ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess'\nimport DataAccessRequestAccessorsFilesForm from './ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm'\nimport RequestDataAccessSuccess from './ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess'\nimport ResearchProjectForm from './ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm'\nimport AuthenticatedRequirement from './RequirementItem/AuthenticatedRequirement'\nimport CertificationRequirement from './RequirementItem/CertificationRequirement'\nimport TwoFactorAuthEnabledRequirement from './RequirementItem/TwoFactorAuthEnabledRequirement'\nimport ValidationRequirement from './RequirementItem/ValidationRequirement'\nimport { useOneSageURL } from '@/utils/hooks'\n\nexport type AccessRequirementListProps = {\n /* if provided, will show this instead of the entity information */\n numberOfFilesAffected?: number\n /* if provided, will show this instead of the entity information or numberOfFilesAffected */\n requestObjectName?: string\n /* If true, this component will render in its own modal */\n renderAsModal?: boolean\n /* Overrides the default dialog title. This only applies if renderAsModal is true */\n dialogTitle?: string\n /* Called when the user rejects the terms of a listed AccessRequirement. If renderAsModal is true, this is also called when the user closes the modal. */\n onHide: () => void\n /* Displays the provided list of access requirements, instead of the ones fetched using the subject ID */\n accessRequirementFromProps?: Array<AccessRequirement>\n /* If provided, displays these actions on when viewing all ARs */\n customDialogActions?: ReactNode\n /* Optional callback invoked if a submission is created via this component */\n onSubmissionCreated?: (submissionId: string) => void\n} & (\n | {\n /**\n * Fetches the access requirements associated with an entity\n * @deprecated Please use `subjectId` and `subjectType`\n */\n entityId: string\n }\n | {\n /**\n * Fetches the access requirements associated with a team\n * @deprecated Please use `subjectId` and `subjectType`\n */\n teamId: string\n }\n | {\n /* The ID of the object for which access is being requested */\n subjectId?: string\n /* The type of the object for which access is being requested */\n subjectType?: RestrictableObjectType\n }\n)\n\nconst SUPPORTED_ACCESS_REQUIREMENT_TYPES_SORTED: AccessRequirement['concreteType'][] =\n [\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ]\n\nconst SUPPORTED_ACCESS_REQUIREMENT_TYPES = new Set<\n AccessRequirement['concreteType']\n>(SUPPORTED_ACCESS_REQUIREMENT_TYPES_SORTED)\n\nconst DialogSubsectionHeader: StyledComponent<TypographyProps> = styled(\n Typography,\n {\n label: 'DialogSubsectionHeader',\n },\n)(({ theme }) => ({\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(2),\n paddingBottom: theme.spacing(1),\n fontSize: '18px',\n fontWeight: 'bold',\n borderBottom: '1px solid',\n borderColor: theme.palette.grey['200'],\n}))\n\nexport const checkHasUnsupportedRequirement = (\n accessRequirements: Array<AccessRequirement>,\n): boolean => {\n return accessRequirements.some(isARUnsupported)\n}\n\nconst isARUnsupported = (accessRequirement: AccessRequirement) => {\n return !SUPPORTED_ACCESS_REQUIREMENT_TYPES.has(accessRequirement.concreteType)\n}\n\n/**\n * Represents a distinct screen in the wizard used to apply to a ManagedACTAccessRequirement\n */\nenum RequestDataStep {\n SHOW_ALL_ARS = 0,\n UPDATE_RESEARCH_PROJECT = 1,\n UPDATE_ACCESSORS_AND_FILES = 2,\n PROMPT_CANCEL = 3,\n PROMPT_LOGIN = 4,\n COMPLETE = 5,\n}\n\nexport type RequestDataStepCallbackArgs = {\n step: RequestDataStep\n managedACTAccessRequirement?: ManagedACTAccessRequirement\n researchProjectId?: string\n dataAccessRequest?: Request | Renewal\n}\n\n/**\n * The AccessRequirementListV2 component renders a set of {@link AccessRequirement}s (either pre-defined, or those applied\n * to an entity, based on provided props).\n *\n * The component shows the user the approval status of each AR and provides a workflow for accepting the terms of or\n * creating a submission for any of the Access Requirements.\n */\nexport default function AccessRequirementList(\n props: AccessRequirementListProps,\n) {\n const {\n onHide = noop,\n renderAsModal = false,\n numberOfFilesAffected,\n requestObjectName,\n customDialogActions,\n onSubmissionCreated = noop,\n } = props\n\n const isShowingRequirementsForEntity = 'entityId' in props\n const isShowingRequirementsForTeam = 'teamId' in props\n const isShowingRequirementsFromProps = 'accessRequirementFromProps' in props\n\n const subjectId =\n 'subjectId' in props\n ? props.subjectId\n : isShowingRequirementsForEntity\n ? props.entityId\n : isShowingRequirementsForTeam\n ? props.teamId\n : undefined\n\n const subjectType =\n 'subjectType' in props\n ? props.subjectType\n : isShowingRequirementsForEntity\n ? RestrictableObjectType.ENTITY\n : isShowingRequirementsForTeam\n ? RestrictableObjectType.TEAM\n : undefined\n\n let { dialogTitle = 'Data Access Request' } = props\n const { isAuthenticated } = useSynapseContext()\n const [requestDataStep, setRequestDataStep] = useState<RequestDataStep>(\n RequestDataStep.SHOW_ALL_ARS,\n )\n const oneSageURL = useOneSageURL()\n const [managedACTAccessRequirement, setManagedACTAccessRequirement] =\n useState<ManagedACTAccessRequirement>()\n const [researchProjectId, setResearchProjectId] = useState<string>('')\n const [dataAccessRequest, setDataAccessRequest] = useState<\n Request | Renewal | undefined\n >()\n\n const canShowManagedACTWikiInWizard = useCanShowManagedACTWikiInWizard()\n\n const { data: fetchedRequirementsForTeam } = useGetAccessRequirementsForTeam(\n subjectId!,\n {\n enabled:\n subjectId !== undefined && subjectType === RestrictableObjectType.TEAM,\n },\n )\n const { data: fetchedRequirementsForEntity } =\n useGetAccessRequirementsForEntity(subjectId!, {\n enabled:\n subjectId !== undefined &&\n subjectType === RestrictableObjectType.ENTITY,\n })\n\n const requirementsFromProps = isShowingRequirementsFromProps\n ? props.accessRequirementFromProps\n : undefined\n\n const accessRequirements =\n requirementsFromProps ??\n fetchedRequirementsForEntity ??\n fetchedRequirementsForTeam\n\n /**\n * Set the initial ordering of the Access Requirements to show complete ARs first. The individual AR Item components\n * retrieve and render status independently, so this data only determines ordering. For this reason, the query data\n * should not be invalidated or updated as the user progresses through the workflow.\n */\n const { data: sortedAccessRequirementIds } =\n useSortAccessRequirementIdsByCompletion(\n (accessRequirements ?? []).map(ar => String(ar.id)),\n {\n enabled: !!accessRequirements,\n // Set the stale time to infinity because we don't want to refetch this and change the order\n staleTime: Infinity,\n },\n )\n\n const sortedGroupedAccessRequirementsByType = useMemo(() => {\n if (accessRequirements && sortedAccessRequirementIds) {\n // SWC-7218: Group by access requirement type\n const groupedAccessRequirementsByType = groupBy(\n accessRequirements,\n 'concreteType',\n )\n const sortedByTypeAndStatus =\n SUPPORTED_ACCESS_REQUIREMENT_TYPES_SORTED.map(type => {\n const arsOfType = groupedAccessRequirementsByType[type]\n if (arsOfType) {\n return sortedAccessRequirementIds.map(\n id => arsOfType.find(ar => id === String(ar.id))!,\n )\n }\n return []\n })\n .flat()\n .filter((item): item is AccessRequirement => item !== undefined)\n return sortedByTypeAndStatus\n }\n return undefined\n }, [accessRequirements, sortedAccessRequirementIds])\n\n const requestDataStepCallback = (props: RequestDataStepCallbackArgs) => {\n const {\n managedACTAccessRequirement,\n step,\n researchProjectId,\n dataAccessRequest: newDataAccessRequest,\n } = props\n if (managedACTAccessRequirement) {\n // required for step 1, 2 form\n setManagedACTAccessRequirement(managedACTAccessRequirement)\n }\n if (researchProjectId) {\n setResearchProjectId(researchProjectId)\n }\n if (newDataAccessRequest) {\n setDataAccessRequest(newDataAccessRequest)\n }\n setRequestDataStep(step)\n }\n\n const anyARsRequireTwoFactorAuth = accessRequirements?.some(\n accessRequirement =>\n accessRequirement.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE &&\n accessRequirement.isTwoFaRequired,\n )\n\n const anyARsRequireCertification = accessRequirements?.some(\n accessRequirement =>\n (accessRequirement.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE ||\n accessRequirement.concreteType ===\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE) &&\n accessRequirement.isCertifiedUserRequired,\n )\n\n const anyARsRequireProfileValidation = accessRequirements?.some(\n accessRequirement =>\n (accessRequirement.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE ||\n accessRequirement.concreteType ===\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE) &&\n accessRequirement.isValidatedProfileRequired,\n )\n\n const requestDetails = useMemo(() => {\n // Prioritize requestObjectName, then the number of files affected, then the entity/team name\n if (requestObjectName) return requestObjectName\n if (numberOfFilesAffected)\n return (\n <>\n <IconSvg icon=\"file\" sx={{ width: '30px' }} /> {numberOfFilesAffected}{' '}\n File(s)\n </>\n )\n if (\n subjectId !== undefined &&\n subjectType === RestrictableObjectType.ENTITY\n ) {\n return <EntityLink entity={subjectId} />\n } else if (subjectType === RestrictableObjectType.TEAM) {\n return <UserOrTeamBadge principalId={subjectId} />\n } else {\n console.warn(\n `Unhandled case for AccessRequirementList requestDetails: ${subjectType}: ${subjectId}`,\n )\n return <></>\n }\n }, [numberOfFilesAffected, requestObjectName, subjectId, subjectType])\n\n const dialogWidth =\n [\n RequestDataStep.UPDATE_ACCESSORS_AND_FILES,\n RequestDataStep.UPDATE_RESEARCH_PROJECT,\n ].includes(requestDataStep) && canShowManagedACTWikiInWizard\n ? 'xl'\n : 'md'\n\n let renderContent = <></>\n switch (requestDataStep) {\n case RequestDataStep.UPDATE_RESEARCH_PROJECT:\n renderContent = (\n <ResearchProjectForm\n managedACTAccessRequirement={managedACTAccessRequirement!}\n onSave={researchProject => {\n requestDataStepCallback({\n managedACTAccessRequirement,\n step: RequestDataStep.UPDATE_ACCESSORS_AND_FILES,\n researchProjectId: researchProject.id,\n })\n }}\n onHide={onHide}\n />\n )\n break\n case RequestDataStep.UPDATE_ACCESSORS_AND_FILES:\n renderContent = (\n <DataAccessRequestAccessorsFilesForm\n researchProjectId={researchProjectId}\n managedACTAccessRequirement={managedACTAccessRequirement!}\n subjectId={subjectId ?? ''}\n subjectType={subjectType ?? RestrictableObjectType.ENTITY}\n onHide={onHide}\n onCancel={dataAccessRequestInProgress => {\n requestDataStepCallback({\n step: RequestDataStep.PROMPT_CANCEL,\n dataAccessRequest: dataAccessRequestInProgress,\n })\n }}\n onSubmissionCreated={submissionId => {\n requestDataStepCallback({ step: RequestDataStep.COMPLETE })\n onSubmissionCreated(submissionId)\n }}\n onBackClicked={() => {\n requestDataStepCallback({\n step: RequestDataStep.UPDATE_RESEARCH_PROJECT,\n })\n }}\n />\n )\n break\n case RequestDataStep.PROMPT_CANCEL:\n renderContent = (\n <CancelRequestDataAccess\n modifiedDataAccessRequest={dataAccessRequest}\n onHide={onHide} // for closing dialogs\n />\n )\n break\n case RequestDataStep.PROMPT_LOGIN:\n // Send to OneSage login page\n storeRedirectURLForOneSageLoginAndGotoURL(oneSageURL.toString())\n dialogTitle = 'Please Log In'\n renderContent = <></>\n break\n case RequestDataStep.COMPLETE:\n renderContent = <RequestDataAccessSuccess onHide={onHide} />\n break\n case RequestDataStep.SHOW_ALL_ARS:\n default:\n renderContent = (\n <>\n {renderAsModal ? (\n <DialogBaseTitle title={dialogTitle} onCancel={onHide} />\n ) : (\n <Typography variant=\"h5\" sx={{ mb: 2 }}>\n {dialogTitle}\n </Typography>\n )}\n <DialogContent>\n <DialogSubsectionHeader variant={'h4'} sx={{ mt: 0 }}>\n What is this request for?\n </DialogSubsectionHeader>\n <Typography variant={'body1'} component={'span'}>\n {requestDetails}\n </Typography>\n <DialogSubsectionHeader variant={'h4'}>\n What do I need to do?\n </DialogSubsectionHeader>\n <AuthenticatedRequirement />\n {anyARsRequireCertification && <CertificationRequirement />}\n {anyARsRequireProfileValidation && <ValidationRequirement />}\n {anyARsRequireTwoFactorAuth && <TwoFactorAuthEnabledRequirement />}\n {sortedGroupedAccessRequirementsByType?.map(accessRequirement => {\n return (\n <AccessRequirementListItem\n key={accessRequirement.id}\n accessRequirement={accessRequirement}\n subjectId={subjectId}\n subjectType={subjectType}\n onHide={onHide}\n onRequestAccess={accessRequirement => {\n const nextStep = isAuthenticated\n ? RequestDataStep.UPDATE_RESEARCH_PROJECT\n : RequestDataStep.PROMPT_LOGIN\n requestDataStepCallback({\n managedACTAccessRequirement: accessRequirement,\n step: nextStep,\n })\n }}\n />\n )\n })}\n </DialogContent>\n <DialogActions>\n {customDialogActions ? (\n customDialogActions\n ) : (\n <>\n {renderAsModal && (\n <Button variant=\"contained\" onClick={onHide}>\n Close\n </Button>\n )}\n </>\n )}\n </DialogActions>\n </>\n )\n }\n\n if (renderAsModal) {\n return (\n <Dialog maxWidth={dialogWidth} fullWidth open={true} onClose={onHide}>\n {renderContent}\n </Dialog>\n )\n }\n\n return <>{renderContent}</>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FA,IAAM,IACJ;CACE;CACA;CACA;CACA;CACA;CACD,EAEG,IAAqC,IAAI,IAE7C,EAA0C,EAEtC,IAA2D,EAC/D,GACA,EACE,OAAO,0BACR,CACF,EAAE,EAAE,gBAAa;CAChB,WAAW,EAAM,QAAQ,EAAE;CAC3B,cAAc,EAAM,QAAQ,EAAE;CAC9B,eAAe,EAAM,QAAQ,EAAE;CAC/B,UAAU;CACV,YAAY;CACZ,cAAc;CACd,aAAa,EAAM,QAAQ,KAAK;CACjC,EAAE,EAEU,KACX,MAEO,EAAmB,KAAK,EAAgB,EAG3C,KAAmB,MAChB,CAAC,EAAmC,IAAI,EAAkB,aAAa,EAM3E,IAAL,yBAAA,GAAA;QACE,EAAA,EAAA,eAAe,KAAA,gBACf,EAAA,EAAA,0BAA0B,KAAA,2BAC1B,EAAA,EAAA,6BAA6B,KAAA,8BAC7B,EAAA,EAAA,gBAAgB,KAAA,iBAChB,EAAA,EAAA,eAAe,KAAA,gBACf,EAAA,EAAA,WAAW,KAAA;EANR,KAAA,EAAA,CAOJ;AAgBD,SAAwB,EACtB,GACA;CACA,IAAM,EACJ,YAAS,GACT,mBAAgB,IAChB,0BACA,sBACA,wBACA,yBAAsB,MACpB,GAEE,IAAiC,cAAc,GAC/C,IAA+B,YAAY,GAC3C,IAAiC,gCAAgC,GAEjE,IACJ,eAAe,IACX,EAAM,YACN,IACA,EAAM,WACN,IACA,EAAM,SACN,KAAA,GAEA,IACJ,iBAAiB,IACb,EAAM,cACN,IACA,EAAuB,SACvB,IACA,EAAuB,OACvB,KAAA,GAEF,EAAE,iBAAc,0BAA0B,GACxC,EAAE,uBAAoB,GAAmB,EACzC,CAAC,GAAiB,MAAsB,EAC5C,EAAgB,aACjB,EACK,IAAa,GAAe,EAC5B,CAAC,GAA6B,MAClC,GAAuC,EACnC,CAAC,IAAmB,MAAwB,EAAiB,GAAG,EAChE,CAAC,IAAmB,MAAwB,GAE/C,EAEG,IAAgC,GAAkC,EAElE,EAAE,MAAM,OAA+B,EAC3C,GACA,EACE,SACE,MAAc,KAAA,KAAa,MAAgB,EAAuB,MACrE,CACF,EACK,EAAE,MAAM,OACZ,EAAkC,GAAY,EAC5C,SACE,MAAc,KAAA,KACd,MAAgB,EAAuB,QAC1C,CAAC,EAME,KAJwB,IAC1B,EAAM,6BACN,KAAA,MAIF,MACA,IAOI,EAAE,MAAM,MACZ,GACG,KAAsB,EAAE,EAAE,KAAI,MAAM,OAAO,EAAG,GAAG,CAAC,EACnD;EACE,SAAS,CAAC,CAAC;EAEX,WAAW;EACZ,CACF,EAEG,KAAwC,QAAc;AAC1D,MAAI,KAAsB,GAA4B;GAEpD,IAAM,IAAkC,EACtC,GACA,eACD;AAaD,UAXE,EAA0C,KAAI,MAAQ;IACpD,IAAM,IAAY,EAAgC;AAMlD,WALI,IACK,EAA2B,KAChC,MAAM,EAAU,MAAK,MAAM,MAAO,OAAO,EAAG,GAAG,CAAC,CACjD,GAEI,EAAE;KACT,CACC,MAAM,CACN,QAAQ,MAAoC,MAAS,KAAA,EACnD;;IAGR,CAAC,GAAoB,EAA2B,CAAC,EAE9C,KAA2B,MAAuC;EACtE,IAAM,EACJ,gCACA,SACA,sBACA,mBAAmB,MACjB;AAWJ,EAVI,KAEF,GAA+B,EAA4B,EAEzD,KACF,GAAqB,EAAkB,EAErC,KACF,GAAqB,EAAqB,EAE5C,GAAmB,EAAK;IAGpB,KAA6B,GAAoB,MACrD,MACE,EAAkB,iBAChB,KACF,EAAkB,gBACrB,EAEK,KAA6B,GAAoB,MACrD,OACG,EAAkB,iBACjB,KACA,EAAkB,iBAChB,MACJ,EAAkB,wBACrB,EAEK,KAAiC,GAAoB,MACzD,OACG,EAAkB,iBACjB,KACA,EAAkB,iBAChB,MACJ,EAAkB,2BACrB,EAEK,KAAiB,QAEjB,MACA,IAEA,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GAAS,MAAK;GAAO,IAAI,EAAE,OAAO,QAAQ;GAAI,CAAA;;EAAE;EAAuB;EAAI;EAE1E,EAAA,CAAA,GAGL,MAAc,KAAA,KACd,MAAgB,EAAuB,SAEhC,kBAAC,GAAD,EAAY,QAAQ,GAAa,CAAA,GAC/B,MAAgB,EAAuB,OACzC,kBAAC,GAAD,EAAiB,aAAa,GAAa,CAAA,IAElD,QAAQ,KACN,4DAA4D,EAAY,IAAI,IAC7E,EACM,kBAAA,GAAA,EAAK,CAAA,IAEb;EAAC;EAAuB;EAAmB;EAAW;EAAY,CAAC,EAEhE,KACJ,CACE,EAAgB,4BAChB,EAAgB,wBACjB,CAAC,SAAS,EAAgB,IAAI,IAC3B,OACA,MAEF,IAAgB,kBAAA,GAAA,EAAK,CAAA;AACzB,SAAQ,GAAR;EACE,KAAK,EAAgB;AACnB,OACE,kBAAC,GAAD;IAC+B;IAC7B,SAAQ,MAAmB;AACzB,OAAwB;MACtB;MACA,MAAM,EAAgB;MACtB,mBAAmB,EAAgB;MACpC,CAAC;;IAEI;IACR,CAAA;AAEJ;EACF,KAAK,EAAgB;AACnB,OACE,kBAAC,GAAD;IACqB;IACU;IAC7B,WAAW,KAAa;IACxB,aAAa,KAAe,EAAuB;IAC3C;IACR,WAAU,MAA+B;AACvC,OAAwB;MACtB,MAAM,EAAgB;MACtB,mBAAmB;MACpB,CAAC;;IAEJ,sBAAqB,MAAgB;AAEnC,KADA,EAAwB,EAAE,MAAM,EAAgB,UAAU,CAAC,EAC3D,EAAoB,EAAa;;IAEnC,qBAAqB;AACnB,OAAwB,EACtB,MAAM,EAAgB,yBACvB,CAAC;;IAEJ,CAAA;AAEJ;EACF,KAAK,EAAgB;AACnB,OACE,kBAAC,IAAD;IACE,2BAA2B;IACnB;IACR,CAAA;AAEJ;EACF,KAAK,EAAgB;AAInB,GAFA,EAA0C,EAAW,UAAU,CAAC,EAChE,IAAc,iBACd,IAAgB,kBAAA,GAAA,EAAK,CAAA;AACrB;EACF,KAAK,EAAgB;AACnB,OAAgB,kBAAC,GAAD,EAAkC,WAAU,CAAA;AAC5D;EACF,KAAK,EAAgB;EACrB,QACE,KACE,kBAAA,GAAA,EAAA,UAAA;GACG,IACC,kBAAC,GAAD;IAAiB,OAAO;IAAa,UAAU;IAAU,CAAA,GAEzD,kBAAC,GAAD;IAAY,SAAQ;IAAK,IAAI,EAAE,IAAI,GAAG;cACnC;IACU,CAAA;GAEf,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KAAwB,SAAS;KAAM,IAAI,EAAE,IAAI,GAAG;eAAE;KAE7B,CAAA;IACzB,kBAAC,GAAD;KAAY,SAAS;KAAS,WAAW;eACtC;KACU,CAAA;IACb,kBAAC,GAAD;KAAwB,SAAS;eAAM;KAEd,CAAA;IACzB,kBAAC,IAAD,EAA4B,CAAA;IAC3B,MAA8B,kBAAC,IAAD,EAA4B,CAAA;IAC1D,MAAkC,kBAAC,IAAD,EAAyB,CAAA;IAC3D,MAA8B,kBAAC,IAAD,EAAmC,CAAA;IACjE,IAAuC,KAAI,MAExC,kBAAC,GAAD;KAEqB;KACR;KACE;KACL;KACR,kBAAiB,MAAqB;AAIpC,QAAwB;OACtB,6BAA6B;OAC7B,MALe,IACb,EAAgB,0BAChB,EAAgB;OAInB,CAAC;;KAEJ,EAdK,EAAkB,GAcvB,CAEJ;IACY,EAAA,CAAA;GAChB,kBAAC,IAAD,EAAA,UACG,KAGC,kBAAA,GAAA,EAAA,UACG,KACC,kBAAC,GAAD;IAAQ,SAAQ;IAAY,SAAS;cAAQ;IAEpC,CAAA,EAEV,CAAA,EAES,CAAA;GACf,EAAA,CAAA;;AAYT,QARI,IAEA,kBAAC,GAAD;EAAQ,UAAU;EAAa,WAAA;EAAU,MAAM;EAAM,SAAS;YAC3D;EACM,CAAA,GAIN,kBAAA,GAAA,EAAA,UAAG,GAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRequirementListUtils.js","names":[],"sources":["../../../src/components/AccessRequirementList/AccessRequirementListUtils.ts"],"sourcesContent":["import { getAccessRequirementStatus } from '@/synapse-client/SynapseClient'\nimport { useMediaQuery, useTheme } from '@mui/material'\nimport { sortBy } from 'lodash-es'\n\n/**\n * Given an array of access requirement IDs, return the IDs sorted by the user's status, where\n * completed access requirements are shown first.\n * @param accessToken\n * @param requirementIds\n */\nexport const sortAccessRequirementsByCompletion = async (\n accessToken: string | undefined,\n requirementIds: string[],\n): Promise<string[]> => {\n const statuses = requirementIds.map(id => {\n return getAccessRequirementStatus(accessToken, id)\n })\n const accessRequirementStatuses = await Promise.all(statuses)\n\n return sortBy(requirementIds, id => {\n // if its true then it should come first, which means that it should be higher in the list\n // which is sorted ascendingly\n return (\n -1 *\n Number(\n accessRequirementStatuses.find(\n status => id === status.accessRequirementId,\n )!.isApproved,\n )\n )\n })\n}\n\n/**\n * Determines if we can show ManagedACTAccessRequirement wiki content alongside the forms using a media query.\n * See SWC-6432.\n */\nexport function useCanShowManagedACTWikiInWizard(): boolean {\n const theme = useTheme()\n const matchesBreakpoint = useMediaQuery(theme.breakpoints.up('md'))\n return matchesBreakpoint\n}\n"],"mappings":";;;;AAUA,IAAa,IAAqC,OAChD,GACA,MACsB;CACtB,IAAM,IAAW,EAAe,KAAI,MAC3B,EAA2B,GAAa,EAAG,CAClD,EACI,IAA4B,MAAM,QAAQ,IAAI,EAAS;AAE7D,QAAO,EAAO,IAAgB,MAI1B,KACA,OACE,EAA0B,MACxB,MAAU,MAAO,EAAO,oBACzB,CAAE,WACJ,CAEH;;AAOJ,SAAgB,IAA4C;AAG1D,QAD0B,EADZ,
|
|
1
|
+
{"version":3,"file":"AccessRequirementListUtils.js","names":[],"sources":["../../../src/components/AccessRequirementList/AccessRequirementListUtils.ts"],"sourcesContent":["import { getAccessRequirementStatus } from '@/synapse-client/SynapseClient'\nimport { useMediaQuery, useTheme } from '@mui/material'\nimport { sortBy } from 'lodash-es'\n\n/**\n * Given an array of access requirement IDs, return the IDs sorted by the user's status, where\n * completed access requirements are shown first.\n * @param accessToken\n * @param requirementIds\n */\nexport const sortAccessRequirementsByCompletion = async (\n accessToken: string | undefined,\n requirementIds: string[],\n): Promise<string[]> => {\n const statuses = requirementIds.map(id => {\n return getAccessRequirementStatus(accessToken, id)\n })\n const accessRequirementStatuses = await Promise.all(statuses)\n\n return sortBy(requirementIds, id => {\n // if its true then it should come first, which means that it should be higher in the list\n // which is sorted ascendingly\n return (\n -1 *\n Number(\n accessRequirementStatuses.find(\n status => id === status.accessRequirementId,\n )!.isApproved,\n )\n )\n })\n}\n\n/**\n * Determines if we can show ManagedACTAccessRequirement wiki content alongside the forms using a media query.\n * See SWC-6432.\n */\nexport function useCanShowManagedACTWikiInWizard(): boolean {\n const theme = useTheme()\n const matchesBreakpoint = useMediaQuery(theme.breakpoints.up('md'))\n return matchesBreakpoint\n}\n"],"mappings":";;;;AAUA,IAAa,IAAqC,OAChD,GACA,MACsB;CACtB,IAAM,IAAW,EAAe,KAAI,MAC3B,EAA2B,GAAa,EAAG,CAClD,EACI,IAA4B,MAAM,QAAQ,IAAI,EAAS;AAE7D,QAAO,EAAO,IAAgB,MAI1B,KACA,OACE,EAA0B,MACxB,MAAU,MAAO,EAAO,oBACzB,CAAE,WACJ,CAEH;;AAOJ,SAAgB,IAA4C;AAG1D,QAD0B,EADZ,GAC0B,CAAM,YAAY,GAAG,KAAK,CAC3D"}
|