synapse-react-client 4.0.34 → 4.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.js +1 -1
- package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +24 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.js +49 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -0
- package/dist/aridhia-queries/FairFormPayload.d.ts +45 -0
- package/dist/aridhia-queries/FairFormPayload.d.ts.map +1 -0
- package/dist/aridhia-queries/FairFormPayload.js +0 -0
- package/dist/aridhia-queries/TransferType.d.ts +10 -0
- package/dist/aridhia-queries/TransferType.d.ts.map +1 -0
- package/dist/aridhia-queries/TransferType.js +0 -0
- package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
- package/dist/aridhia-queries/index.d.ts +12 -0
- package/dist/aridhia-queries/index.d.ts.map +1 -1
- package/dist/aridhia-queries/index.js +12 -2
- package/dist/aridhia-queries/useAridhiaQuery.d.ts +37 -0
- package/dist/aridhia-queries/useAridhiaQuery.d.ts.map +1 -0
- package/dist/aridhia-queries/useAridhiaQuery.js +71 -0
- package/dist/aridhia-queries/useAridhiaQuery.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaRequests.d.ts +5 -4
- package/dist/aridhia-queries/useGetAridhiaRequests.d.ts.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js +11 -18
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts +13 -0
- package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkflow.js +19 -0
- package/dist/aridhia-queries/useGetAridhiaWorkflow.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts +19 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js +17 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.js +19 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.js.map +1 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts +27 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts.map +1 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.js +38 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -0
- package/dist/assets/icons/curie-head.svg +21 -0
- package/dist/components/AccessRequirement/EntityActionsRequired.d.ts +0 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.d.ts.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js +3 -6
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +24 -2
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +69 -66
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +67 -56
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts +6 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +55 -54
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +3 -3
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/CardContainer/CardConfiguration.d.ts +8 -0
- package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.d.ts.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js +58 -23
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.d.ts.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js +13 -3
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.d.ts.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js +11 -14
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.js +55 -61
- package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.d.ts.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js +15 -15
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.d.ts +1 -5
- package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js +21 -28
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts +35 -0
- package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts.map +1 -0
- package/dist/components/DatasetHosting/DatasetDownloadButton.js +132 -0
- package/dist/components/DatasetHosting/DatasetDownloadButton.js.map +1 -0
- package/dist/components/DatasetHosting/DatasetHosting.d.ts +91 -0
- package/dist/components/DatasetHosting/DatasetHosting.d.ts.map +1 -0
- package/dist/components/DatasetHosting/DatasetHosting.js +58 -0
- package/dist/components/DatasetHosting/DatasetHosting.js.map +1 -0
- package/dist/components/DatasetHosting/index.d.ts +5 -0
- package/dist/components/DatasetHosting/index.d.ts.map +1 -0
- package/dist/components/DatasetHosting/index.js +3 -0
- package/dist/components/DownloadCart/ActionRequiredListItem.d.ts +0 -2
- package/dist/components/DownloadCart/ActionRequiredListItem.d.ts.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js +2 -3
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.d.ts +1 -2
- package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js +49 -49
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts +1 -5
- package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js +5 -6
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.d.ts +0 -2
- package/dist/components/DownloadCart/RequestDownloadCard.d.ts.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js +28 -32
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts +0 -2
- package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js +7 -8
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/index.d.ts +1 -2
- package/dist/components/DownloadCart/index.d.ts.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.d.ts +2 -1
- package/dist/components/DraggableDialog/DraggableDialog.d.ts.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js +42 -33
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js +12 -6
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +2 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts +10 -0
- package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts.map +1 -0
- package/dist/components/GenericCard/CardActionButtonStyleContext.js +10 -0
- package/dist/components/GenericCard/CardActionButtonStyleContext.js.map +1 -0
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +41 -41
- package/dist/components/GenericCard/GenericCardActionButton.d.ts +5 -0
- package/dist/components/GenericCard/GenericCardActionButton.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js +28 -11
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts +24 -0
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +205 -190
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.d.ts.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js +42 -42
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.css +1 -0
- package/dist/components/JsonSchemaForm/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js +13 -12
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js +5 -0
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js.map +1 -0
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.scss +109 -0
- package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts +39 -0
- package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts.map +1 -0
- package/dist/components/QueryBuilder/QueryBuilderTypes.js +11 -0
- package/dist/components/QueryBuilder/QueryBuilderTypes.js.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +48 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.js +256 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -0
- package/dist/components/QueryContext/QueryContext.d.ts +0 -1
- package/dist/components/QueryContext/QueryContext.d.ts.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.d.ts +0 -1
- package/dist/components/QueryWrapper/QueryWrapper.d.ts.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +52 -53
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js +4 -11
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +0 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js +123 -123
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +64 -55
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js +0 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js +30 -29
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.d.ts.map +1 -1
- package/dist/components/StorybookComponentWrapper.js +15 -10
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.d.ts.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js +29 -31
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts +2 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +118 -74
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +3 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js +21 -21
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js +9 -8
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js +2 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js +2 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.d.ts.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +29 -30
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.d.ts +7 -0
- package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js +68 -48
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.d.ts.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js +6 -6
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts +13 -0
- package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts.map +1 -0
- package/dist/components/TanStackTable/useSyncedTopScrollbar.js +32 -0
- package/dist/components/TanStackTable/useSyncedTopScrollbar.js.map +1 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts +12 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +86 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js +20 -18
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.d.ts.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js +10 -13
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.d.ts.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js +43 -61
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/createdByModifiedByTooltips.d.ts +7 -0
- package/dist/components/entity/page/createdByModifiedByTooltips.d.ts.map +1 -0
- package/dist/components/entity/page/createdByModifiedByTooltips.js +36 -0
- package/dist/components/entity/page/createdByModifiedByTooltips.js.map +1 -0
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +130 -65
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +143 -140
- package/dist/components/menu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/menu/DropdownMenu.js +6 -6
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/widgets/Range.js +8 -2
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +2 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +19 -19
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +5 -5
- package/dist/index.js +161 -159
- package/dist/index.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +30 -26
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js +22 -22
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts +1 -0
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js +7 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js +40 -36
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.d.ts +1 -0
- package/dist/mocks/user/mock_user_profile.d.ts.map +1 -1
- package/dist/mocks/user/mock_user_profile.js +45 -45
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/style/components/_all.scss +0 -1
- package/dist/style/components/_cards.scss +4 -2
- package/dist/style/main.css +1 -1
- package/dist/synapse-queries/KeyFactory.d.ts +2 -0
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +6 -0
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/dataaccess/index.js +4 -4
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts +20 -1
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +75 -49
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/index.js +190 -188
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts +2 -0
- package/dist/utils/APIConstants.d.ts.map +1 -1
- package/dist/utils/APIConstants.js +2 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js +20 -19
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +2 -4
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.d.ts +17 -0
- package/dist/utils/functions/RegularExpressions.d.ts.map +1 -1
- package/dist/utils/functions/RegularExpressions.js +11 -4
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
- package/dist/utils/functions/SqlFunctions.js +19 -3
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/hooks/useIsHydrated.d.ts +9 -0
- package/dist/utils/hooks/useIsHydrated.d.ts.map +1 -0
- package/dist/utils/hooks/useIsHydrated.js +10 -0
- package/dist/utils/hooks/useIsHydrated.js.map +1 -0
- package/dist/utils/index.js +16 -16
- package/dist/utils/types/IsType.d.ts +4 -1
- package/dist/utils/types/IsType.d.ts.map +1 -1
- package/dist/utils/types/IsType.js +4 -4
- package/dist/utils/types/IsType.js.map +1 -1
- package/dist/utils/types/index.js +2 -2
- package/package.json +7 -7
- package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +0 -12
- package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +0 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js +0 -25
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +0 -1
- package/dist/style/components/_annotations.scss +0 -110
|
@@ -5,38 +5,39 @@ import { useGetDataAccessRequestForUpdate as r, useUpdateDataAccessRequest as i
|
|
|
5
5
|
import { useGetDataAccessRequestPreview as a, useGetDataAccessRequestSignatureStatus as o, useGetDataAccessRequestSignedFileHandleId as s } from "../../../../synapse-queries/dataaccess/useEDuc.js";
|
|
6
6
|
import "../../../../synapse-queries/index.js";
|
|
7
7
|
import c from "../../../IconSvg/IconSvg.js";
|
|
8
|
-
import { longFieldLabelSx as
|
|
9
|
-
import { useState as
|
|
10
|
-
import { Alert as
|
|
11
|
-
import { Fragment as
|
|
8
|
+
import { longFieldLabelSx as l } from "../styles.js";
|
|
9
|
+
import { useState as u } from "react";
|
|
10
|
+
import { Alert as d, Box as f, Button as p, DialogActions as m, DialogContent as ee, DialogTitle as te, IconButton as h, Link as g, Skeleton as _, Stack as v, Typography as y } from "@mui/material";
|
|
11
|
+
import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
12
|
+
import { FileHandleAssociateType as C } from "@sage-bionetworks/synapse-types";
|
|
12
13
|
import { CheckCircleOutline as w, HourglassEmpty as T, OpenInNew as E, Refresh as D } from "@mui/icons-material";
|
|
13
14
|
//#region src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.tsx
|
|
14
15
|
function O(e) {
|
|
15
|
-
let { managedACTAccessRequirement: O, subjectId:
|
|
16
|
+
let { managedACTAccessRequirement: O, subjectId: ne, subjectType: re, onHide: ie, onBackClicked: A, onSubmissionCreated: j, viewDucHrefOverride: M } = e, { data: N, isLoading: P } = r(String(O.id), {
|
|
16
17
|
staleTime: Infinity,
|
|
17
18
|
throwOnError: !0
|
|
18
|
-
}), F = N?.id ?? "", { data: I, isLoading: L, isRefetching: R, error: z, refetch: B } = o(F, { enabled: !!F }), V = I?.signerStatus ?? [], H = V.filter((e) => e.status === "done").length, U = V.length, W = U > 0 && H === U, G = V.filter((e) => e.status !== "done"), { data: K } = a(F, { enabled: !!F && !M }), q = M ?? (K?.fileHandleId ? t.getPortalFileHandleServletUrl(K.fileHandleId) : void 0), { data: J } = s(F, { enabled: !!F && W }), [Y, X] =
|
|
19
|
-
onSuccess: (e) =>
|
|
19
|
+
}), F = N?.id ?? "", { data: I, isLoading: L, isRefetching: R, error: z, refetch: B } = o(F, { enabled: !!F }), V = I?.signerStatus ?? [], H = V.filter((e) => e.status === "done").length, U = V.length, W = U > 0 && H === U, G = V.filter((e) => e.status !== "done"), { data: K } = a(F, { enabled: !!F && !M }), q = M ?? (K?.fileHandleId && F ? t.getPortalFileHandleServletUrl(K.fileHandleId, F, C.DataAccessRequestAttachment) : void 0), { data: J } = s(F, { enabled: !!F && W }), [Y, X] = u(), [Z, Q] = u(), { mutateAsync: ae, isPending: oe } = i({ onError: (e) => X(e.reason) }), { mutate: se, isPending: $ } = n({
|
|
20
|
+
onSuccess: (e) => j(e.submissionId),
|
|
20
21
|
onError: (e) => Q(e.reason)
|
|
21
|
-
}),
|
|
22
|
+
}), ce = P || L || R || !N || !W || !J?.fileHandleId || oe || $, le = async () => {
|
|
22
23
|
if (!N || !J?.fileHandleId) return;
|
|
23
24
|
X(void 0), Q(void 0);
|
|
24
|
-
let e = await
|
|
25
|
+
let e = await ae({
|
|
25
26
|
...N,
|
|
26
27
|
ducFileHandleId: J.fileHandleId
|
|
27
28
|
}).catch(() => null);
|
|
28
|
-
e &&
|
|
29
|
+
e && se({
|
|
29
30
|
request: {
|
|
30
31
|
requestId: e.id,
|
|
31
32
|
requestEtag: e.etag,
|
|
32
|
-
subjectId:
|
|
33
|
-
subjectType:
|
|
33
|
+
subjectId: ne,
|
|
34
|
+
subjectType: re
|
|
34
35
|
},
|
|
35
36
|
accessRequirementId: String(O.id)
|
|
36
37
|
});
|
|
37
38
|
};
|
|
38
|
-
return /* @__PURE__ */
|
|
39
|
-
/* @__PURE__ */
|
|
39
|
+
return /* @__PURE__ */ S(b, { children: [
|
|
40
|
+
/* @__PURE__ */ x(te, { children: /* @__PURE__ */ S(v, {
|
|
40
41
|
direction: "row",
|
|
41
42
|
sx: {
|
|
42
43
|
alignItems: "center",
|
|
@@ -44,11 +45,11 @@ function O(e) {
|
|
|
44
45
|
},
|
|
45
46
|
children: [
|
|
46
47
|
"Request Access",
|
|
47
|
-
/* @__PURE__ */
|
|
48
|
-
/* @__PURE__ */
|
|
48
|
+
/* @__PURE__ */ x(f, { sx: { flexGrow: 1 } }),
|
|
49
|
+
/* @__PURE__ */ x(h, {
|
|
49
50
|
"aria-label": "Close",
|
|
50
|
-
onClick:
|
|
51
|
-
children: /* @__PURE__ */
|
|
51
|
+
onClick: ie,
|
|
52
|
+
children: /* @__PURE__ */ x(c, {
|
|
52
53
|
icon: "close",
|
|
53
54
|
wrap: !1,
|
|
54
55
|
sx: { color: "grey.700" }
|
|
@@ -56,36 +57,36 @@ function O(e) {
|
|
|
56
57
|
})
|
|
57
58
|
]
|
|
58
59
|
}) }),
|
|
59
|
-
/* @__PURE__ */
|
|
60
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ S(ee, { children: [
|
|
61
|
+
/* @__PURE__ */ x(y, {
|
|
61
62
|
variant: "headline3",
|
|
62
63
|
sx: { mb: 2 },
|
|
63
64
|
children: "Sign a Data Use Certificate (DUC)"
|
|
64
65
|
}),
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
+
/* @__PURE__ */ x(y, {
|
|
66
67
|
variant: "body1",
|
|
67
68
|
sx: {
|
|
68
|
-
...
|
|
69
|
+
...l,
|
|
69
70
|
mb: 2
|
|
70
71
|
},
|
|
71
72
|
children: "Your DUC has been emailed to your Collaborators. Once all signatures (including the Signing Official) have been collected, you can submit the Data Access Request."
|
|
72
73
|
}),
|
|
73
|
-
L && /* @__PURE__ */
|
|
74
|
+
L && /* @__PURE__ */ x(_, {
|
|
74
75
|
variant: "rectangular",
|
|
75
76
|
width: "100%",
|
|
76
77
|
height: 120,
|
|
77
78
|
"data-testid": "SignatureStatusStep-loading"
|
|
78
79
|
}),
|
|
79
|
-
z && /* @__PURE__ */
|
|
80
|
+
z && /* @__PURE__ */ S(d, {
|
|
80
81
|
severity: "error",
|
|
81
82
|
children: [
|
|
82
|
-
/* @__PURE__ */
|
|
83
|
-
/* @__PURE__ */
|
|
83
|
+
/* @__PURE__ */ x("strong", { children: "Sorry, we couldn't load the current signature status." }),
|
|
84
|
+
/* @__PURE__ */ x("br", {}),
|
|
84
85
|
z.reason
|
|
85
86
|
]
|
|
86
87
|
}),
|
|
87
|
-
!L && !z && I && /* @__PURE__ */
|
|
88
|
-
/* @__PURE__ */
|
|
88
|
+
!L && !z && I && /* @__PURE__ */ S(b, { children: [
|
|
89
|
+
/* @__PURE__ */ S(v, {
|
|
89
90
|
direction: "row",
|
|
90
91
|
sx: {
|
|
91
92
|
alignItems: "center",
|
|
@@ -93,14 +94,14 @@ function O(e) {
|
|
|
93
94
|
mb: 1
|
|
94
95
|
},
|
|
95
96
|
children: [
|
|
96
|
-
W ? /* @__PURE__ */
|
|
97
|
-
/* @__PURE__ */
|
|
97
|
+
W ? /* @__PURE__ */ x(w, { color: "success" }) : /* @__PURE__ */ x(T, { sx: { color: "grey.700" } }),
|
|
98
|
+
/* @__PURE__ */ x(y, {
|
|
98
99
|
variant: "body1",
|
|
99
100
|
sx: { fontWeight: 700 },
|
|
100
101
|
children: W ? "All signatures collected." : `${H} out of ${U} signatures collected.`
|
|
101
102
|
}),
|
|
102
|
-
/* @__PURE__ */
|
|
103
|
-
q && /* @__PURE__ */
|
|
103
|
+
/* @__PURE__ */ x(f, { sx: { flexGrow: 1 } }),
|
|
104
|
+
q && /* @__PURE__ */ S(g, {
|
|
104
105
|
href: q,
|
|
105
106
|
target: "_blank",
|
|
106
107
|
rel: "noopener",
|
|
@@ -109,26 +110,26 @@ function O(e) {
|
|
|
109
110
|
alignItems: "center",
|
|
110
111
|
gap: .5
|
|
111
112
|
},
|
|
112
|
-
children: ["View DUC", /* @__PURE__ */
|
|
113
|
+
children: ["View DUC", /* @__PURE__ */ x(E, { fontSize: "small" })]
|
|
113
114
|
})
|
|
114
115
|
]
|
|
115
116
|
}),
|
|
116
|
-
G.length > 0 && /* @__PURE__ */
|
|
117
|
+
G.length > 0 && /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(y, {
|
|
117
118
|
variant: "body1",
|
|
118
119
|
sx: { mb: 1 },
|
|
119
120
|
children: "You're still waiting for signatures from"
|
|
120
|
-
}), /* @__PURE__ */
|
|
121
|
+
}), /* @__PURE__ */ x(f, {
|
|
121
122
|
component: "ul",
|
|
122
123
|
sx: {
|
|
123
124
|
mt: 0,
|
|
124
125
|
mb: 2,
|
|
125
126
|
pl: 3
|
|
126
127
|
},
|
|
127
|
-
children: G.map((e, t) => /* @__PURE__ */
|
|
128
|
+
children: G.map((e, t) => /* @__PURE__ */ x("li", { children: /* @__PURE__ */ x(k, { signer: e }) }, e.userId ?? `${e.name}-${t}`))
|
|
128
129
|
})] }),
|
|
129
|
-
/* @__PURE__ */
|
|
130
|
+
/* @__PURE__ */ x(p, {
|
|
130
131
|
variant: "outlined",
|
|
131
|
-
startIcon: /* @__PURE__ */
|
|
132
|
+
startIcon: /* @__PURE__ */ x(D, {}),
|
|
132
133
|
loading: R,
|
|
133
134
|
onClick: () => {
|
|
134
135
|
B();
|
|
@@ -136,38 +137,38 @@ function O(e) {
|
|
|
136
137
|
children: "Refresh"
|
|
137
138
|
})
|
|
138
139
|
] }),
|
|
139
|
-
Y && /* @__PURE__ */
|
|
140
|
+
Y && /* @__PURE__ */ S(d, {
|
|
140
141
|
severity: "error",
|
|
141
142
|
sx: { mt: 2 },
|
|
142
143
|
children: [
|
|
143
|
-
/* @__PURE__ */
|
|
144
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ x("strong", { children: "Sorry, we couldn't save your change." }),
|
|
145
|
+
/* @__PURE__ */ x("br", {}),
|
|
145
146
|
Y
|
|
146
147
|
]
|
|
147
148
|
}),
|
|
148
|
-
Z && /* @__PURE__ */
|
|
149
|
+
Z && /* @__PURE__ */ S(d, {
|
|
149
150
|
severity: "error",
|
|
150
151
|
sx: { mt: 2 },
|
|
151
152
|
children: [
|
|
152
|
-
/* @__PURE__ */
|
|
153
|
-
/* @__PURE__ */
|
|
153
|
+
/* @__PURE__ */ x("strong", { children: "Sorry, we couldn't submit your request." }),
|
|
154
|
+
/* @__PURE__ */ x("br", {}),
|
|
154
155
|
Z
|
|
155
156
|
]
|
|
156
157
|
})
|
|
157
158
|
] }),
|
|
158
|
-
/* @__PURE__ */
|
|
159
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ S(m, { children: [
|
|
160
|
+
A && /* @__PURE__ */ x(p, {
|
|
160
161
|
variant: "outlined",
|
|
161
|
-
onClick:
|
|
162
|
+
onClick: A,
|
|
162
163
|
children: "Back"
|
|
163
164
|
}),
|
|
164
|
-
/* @__PURE__ */
|
|
165
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ x(f, { sx: { flexGrow: 1 } }),
|
|
166
|
+
/* @__PURE__ */ x(p, {
|
|
166
167
|
variant: "contained",
|
|
167
|
-
disabled:
|
|
168
|
+
disabled: ce,
|
|
168
169
|
loading: $,
|
|
169
170
|
onClick: () => {
|
|
170
|
-
|
|
171
|
+
le();
|
|
171
172
|
},
|
|
172
173
|
children: "Submit"
|
|
173
174
|
})
|
|
@@ -176,15 +177,15 @@ function O(e) {
|
|
|
176
177
|
}
|
|
177
178
|
function k(t) {
|
|
178
179
|
let { signer: n } = t, r = n.name ?? "Unnamed signer";
|
|
179
|
-
return /* @__PURE__ */
|
|
180
|
+
return /* @__PURE__ */ S(y, {
|
|
180
181
|
variant: "body1",
|
|
181
182
|
component: "span",
|
|
182
|
-
children: [n.userId ? /* @__PURE__ */
|
|
183
|
+
children: [n.userId ? /* @__PURE__ */ x(g, {
|
|
183
184
|
href: `${e.PORTAL}Profile:${n.userId}`,
|
|
184
185
|
target: "_blank",
|
|
185
186
|
rel: "noopener",
|
|
186
187
|
children: r
|
|
187
|
-
}) : /* @__PURE__ */
|
|
188
|
+
}) : /* @__PURE__ */ x(b, { children: r }), n.status && n.status !== "pending" && n.status !== "done" ? ` (${n.status})` : ""]
|
|
188
189
|
});
|
|
189
190
|
}
|
|
190
191
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureStatusStep.js","names":[],"sources":["../../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.tsx"],"sourcesContent":["import {\n useGetDataAccessRequestForUpdate,\n useGetDataAccessRequestPreview,\n useGetDataAccessRequestSignatureStatus,\n useGetDataAccessRequestSignedFileHandleId,\n useSubmitDataAccessRequest,\n useUpdateDataAccessRequest,\n} from '@/synapse-queries'\nimport SynapseClient from '@/synapse-client'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport {\n CheckCircleOutline,\n HourglassEmpty,\n OpenInNew,\n Refresh,\n} from '@mui/icons-material'\nimport {\n Alert,\n Box,\n Button,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Link,\n Skeleton,\n Stack,\n Typography,\n} from '@mui/material'\nimport { EDucSignerStatus } from '@sage-bionetworks/synapse-client'\nimport {\n ManagedACTAccessRequirement,\n RestrictableObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { longFieldLabelSx } from '../styles'\n\nexport type SignatureStatusStepProps = {\n managedACTAccessRequirement: ManagedACTAccessRequirement\n subjectId: string\n subjectType: RestrictableObjectType\n onHide: () => void\n onBackClicked: () => void\n onSubmissionCreated: (submissionId: string) => void\n /**\n * Optional href override for the \"View DUC\" link. When set, the preview file handle fetch\n * is skipped and this URL is used directly. Used by stories and tests where the portal\n * servlet is not available.\n */\n viewDucHrefOverride?: string\n}\n\n/**\n * Wizard step shown after the user has routed the eDUC for electronic signature\n * (PORTALS-4380). Polls the DocuSign envelope status, lists the pending signers,\n * and enables submission once every signer has signed.\n */\nexport default function SignatureStatusStep(props: SignatureStatusStepProps) {\n const {\n managedACTAccessRequirement,\n subjectId,\n subjectType,\n onHide,\n onBackClicked,\n onSubmissionCreated,\n viewDucHrefOverride,\n } = props\n\n const { data: dataAccessRequest, isLoading: isLoadingDar } =\n useGetDataAccessRequestForUpdate(String(managedACTAccessRequirement.id), {\n staleTime: Infinity,\n throwOnError: true,\n })\n\n const requestId = dataAccessRequest?.id ?? ''\n\n const {\n data: signatureStatus,\n isLoading: isLoadingStatus,\n isRefetching: isRefetchingStatus,\n error: statusError,\n refetch: refetchStatus,\n } = useGetDataAccessRequestSignatureStatus(requestId, {\n enabled: Boolean(requestId),\n })\n\n const signers: EDucSignerStatus[] = signatureStatus?.signerStatus ?? []\n const collectedCount = signers.filter(s => s.status === 'done').length\n const totalCount = signers.length\n const allCollected = totalCount > 0 && collectedCount === totalCount\n const outstandingSigners = signers.filter(s => s.status !== 'done')\n\n const { data: previewFileHandle } = useGetDataAccessRequestPreview(\n requestId,\n { enabled: Boolean(requestId) && !viewDucHrefOverride },\n )\n const viewDucHref =\n viewDucHrefOverride ??\n (previewFileHandle?.fileHandleId\n ? SynapseClient.getPortalFileHandleServletUrl(\n previewFileHandle.fileHandleId,\n )\n : undefined)\n\n const { data: signedFileHandle } = useGetDataAccessRequestSignedFileHandleId(\n requestId,\n { enabled: Boolean(requestId) && allCollected },\n )\n\n const [updateDarError, setUpdateDarError] = useState<string | undefined>()\n const [submitDarError, setSubmitDarError] = useState<string | undefined>()\n\n const { mutateAsync: updateDarAsync, isPending: isUpdating } =\n useUpdateDataAccessRequest({\n onError: e => setUpdateDarError(e.reason),\n })\n\n const { mutate: submit, isPending: isSubmitting } =\n useSubmitDataAccessRequest({\n onSuccess: submission => onSubmissionCreated(submission.submissionId),\n onError: e => setSubmitDarError(e.reason),\n })\n\n const isSubmitDisabled =\n isLoadingDar ||\n isLoadingStatus ||\n isRefetchingStatus ||\n !dataAccessRequest ||\n !allCollected ||\n !signedFileHandle?.fileHandleId ||\n isUpdating ||\n isSubmitting\n\n const handleSubmit = async () => {\n if (!dataAccessRequest || !signedFileHandle?.fileHandleId) return\n setUpdateDarError(undefined)\n setSubmitDarError(undefined)\n const updated = await updateDarAsync({\n ...dataAccessRequest,\n ducFileHandleId: signedFileHandle.fileHandleId,\n }).catch(() => null)\n if (!updated) return\n submit({\n request: {\n requestId: updated.id,\n requestEtag: updated.etag,\n subjectId,\n subjectType,\n },\n accessRequirementId: String(managedACTAccessRequirement.id),\n })\n }\n\n return (\n <>\n <DialogTitle>\n <Stack direction=\"row\" sx={{ alignItems: 'center', gap: '5px' }}>\n Request Access\n <Box sx={{ flexGrow: 1 }} />\n <IconButton aria-label={'Close'} onClick={onHide}>\n <IconSvg icon={'close'} wrap={false} sx={{ color: 'grey.700' }} />\n </IconButton>\n </Stack>\n </DialogTitle>\n <DialogContent>\n <Typography variant={'headline3'} sx={{ mb: 2 }}>\n Sign a Data Use Certificate (DUC)\n </Typography>\n <Typography variant={'body1'} sx={{ ...longFieldLabelSx, mb: 2 }}>\n Your DUC has been emailed to your Collaborators. Once all signatures\n (including the Signing Official) have been collected, you can submit\n the Data Access Request.\n </Typography>\n {/* TODO: restore once the backend precheck allows editing collaborators mid-signature (PORTALS-4380 notes).\n <Typography variant={'body1'} sx={{ ...longFieldLabelSx, mb: 3 }}>\n You can update the list of Collaborators by pressing{' '}\n <strong>Back</strong>.\n </Typography>\n */}\n\n {isLoadingStatus && (\n <Skeleton\n variant={'rectangular'}\n width={'100%'}\n height={120}\n data-testid={'SignatureStatusStep-loading'}\n />\n )}\n\n {statusError && (\n <Alert severity={'error'}>\n <strong>\n Sorry, we couldn't load the current signature status.\n </strong>\n <br />\n {statusError.reason}\n </Alert>\n )}\n\n {!isLoadingStatus && !statusError && signatureStatus && (\n <>\n <Stack\n direction={'row'}\n sx={{ alignItems: 'center', gap: 1, mb: 1 }}\n >\n {allCollected ? (\n <CheckCircleOutline color={'success'} />\n ) : (\n <HourglassEmpty sx={{ color: 'grey.700' }} />\n )}\n <Typography variant={'body1'} sx={{ fontWeight: 700 }}>\n {allCollected\n ? 'All signatures collected.'\n : `${collectedCount} out of ${totalCount} signatures collected.`}\n </Typography>\n <Box sx={{ flexGrow: 1 }} />\n {viewDucHref && (\n <Link\n href={viewDucHref}\n target={'_blank'}\n rel={'noopener'}\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 0.5,\n }}\n >\n View DUC\n <OpenInNew fontSize={'small'} />\n </Link>\n )}\n </Stack>\n\n {outstandingSigners.length > 0 && (\n <>\n <Typography variant={'body1'} sx={{ mb: 1 }}>\n You're still waiting for signatures from\n </Typography>\n <Box component={'ul'} sx={{ mt: 0, mb: 2, pl: 3 }}>\n {outstandingSigners.map((signer, index) => (\n <li key={signer.userId ?? `${signer.name}-${index}`}>\n <SignerLine signer={signer} />\n </li>\n ))}\n </Box>\n </>\n )}\n\n <Button\n variant={'outlined'}\n startIcon={<Refresh />}\n loading={isRefetchingStatus}\n onClick={() => {\n refetchStatus()\n }}\n >\n Refresh\n </Button>\n </>\n )}\n\n {updateDarError && (\n <Alert severity={'error'} sx={{ mt: 2 }}>\n <strong>Sorry, we couldn't save your change.</strong>\n <br />\n {updateDarError}\n </Alert>\n )}\n {submitDarError && (\n <Alert severity={'error'} sx={{ mt: 2 }}>\n <strong>Sorry, we couldn't submit your request.</strong>\n <br />\n {submitDarError}\n </Alert>\n )}\n </DialogContent>\n <DialogActions>\n <Button variant={'outlined'} onClick={onBackClicked}>\n Back\n </Button>\n <Box sx={{ flexGrow: 1 }} />\n <Button\n variant={'contained'}\n disabled={isSubmitDisabled}\n loading={isSubmitting}\n onClick={() => {\n handleSubmit()\n }}\n >\n Submit\n </Button>\n </DialogActions>\n </>\n )\n}\n\nfunction SignerLine(props: { signer: EDucSignerStatus }) {\n const { signer } = props\n const displayName = signer.name ?? 'Unnamed signer'\n const nameNode = signer.userId ? (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Profile:${signer.userId}`}\n target={'_blank'}\n rel={'noopener'}\n >\n {displayName}\n </Link>\n ) : (\n <>{displayName}</>\n )\n // Only surface non-pending problem states inline; pending is implied by the section header.\n const statusLabel =\n signer.status && signer.status !== 'pending' && signer.status !== 'done'\n ? ` (${signer.status})`\n : ''\n return (\n <Typography variant={'body1'} component={'span'}>\n {nameNode}\n {statusLabel}\n </Typography>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SignatureStatusStep.js","names":[],"sources":["../../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.tsx"],"sourcesContent":["import {\n useGetDataAccessRequestForUpdate,\n useGetDataAccessRequestPreview,\n useGetDataAccessRequestSignatureStatus,\n useGetDataAccessRequestSignedFileHandleId,\n useSubmitDataAccessRequest,\n useUpdateDataAccessRequest,\n} from '@/synapse-queries'\nimport SynapseClient from '@/synapse-client'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport {\n CheckCircleOutline,\n HourglassEmpty,\n OpenInNew,\n Refresh,\n} from '@mui/icons-material'\nimport {\n Alert,\n Box,\n Button,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n Link,\n Skeleton,\n Stack,\n Typography,\n} from '@mui/material'\nimport { EDucSignerStatus } from '@sage-bionetworks/synapse-client'\nimport {\n FileHandleAssociateType,\n ManagedACTAccessRequirement,\n RestrictableObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { longFieldLabelSx } from '../styles'\n\nexport type SignatureStatusStepProps = {\n managedACTAccessRequirement: ManagedACTAccessRequirement\n subjectId: string\n subjectType: RestrictableObjectType\n onHide: () => void\n /**\n * Called when the user clicks the Back button. When omitted, the Back button is hidden —\n * used when the step is reached via direct entry (e.g. a deep-link route) rather than\n * through the wizard flow, so there is no meaningful previous step to return to.\n */\n onBackClicked?: () => void\n onSubmissionCreated: (submissionId: string) => void\n /**\n * Optional href override for the \"View DUC\" link. When set, the preview file handle fetch\n * is skipped and this URL is used directly. Used by stories and tests where the portal\n * servlet is not available.\n */\n viewDucHrefOverride?: string\n}\n\n/**\n * Wizard step shown after the user has routed the eDUC for electronic signature\n * (PORTALS-4380). Polls the DocuSign envelope status, lists the pending signers,\n * and enables submission once every signer has signed.\n */\nexport default function SignatureStatusStep(props: SignatureStatusStepProps) {\n const {\n managedACTAccessRequirement,\n subjectId,\n subjectType,\n onHide,\n onBackClicked,\n onSubmissionCreated,\n viewDucHrefOverride,\n } = props\n\n const { data: dataAccessRequest, isLoading: isLoadingDar } =\n useGetDataAccessRequestForUpdate(String(managedACTAccessRequirement.id), {\n staleTime: Infinity,\n throwOnError: true,\n })\n\n const requestId = dataAccessRequest?.id ?? ''\n\n const {\n data: signatureStatus,\n isLoading: isLoadingStatus,\n isRefetching: isRefetchingStatus,\n error: statusError,\n refetch: refetchStatus,\n } = useGetDataAccessRequestSignatureStatus(requestId, {\n enabled: Boolean(requestId),\n })\n\n const signers: EDucSignerStatus[] = signatureStatus?.signerStatus ?? []\n const collectedCount = signers.filter(s => s.status === 'done').length\n const totalCount = signers.length\n const allCollected = totalCount > 0 && collectedCount === totalCount\n const outstandingSigners = signers.filter(s => s.status !== 'done')\n\n const { data: previewFileHandle } = useGetDataAccessRequestPreview(\n requestId,\n { enabled: Boolean(requestId) && !viewDucHrefOverride },\n )\n const viewDucHref =\n viewDucHrefOverride ??\n (previewFileHandle?.fileHandleId && requestId\n ? SynapseClient.getPortalFileHandleServletUrl(\n previewFileHandle.fileHandleId,\n requestId,\n FileHandleAssociateType.DataAccessRequestAttachment,\n )\n : undefined)\n\n const { data: signedFileHandle } = useGetDataAccessRequestSignedFileHandleId(\n requestId,\n { enabled: Boolean(requestId) && allCollected },\n )\n\n const [updateDarError, setUpdateDarError] = useState<string | undefined>()\n const [submitDarError, setSubmitDarError] = useState<string | undefined>()\n\n const { mutateAsync: updateDarAsync, isPending: isUpdating } =\n useUpdateDataAccessRequest({\n onError: e => setUpdateDarError(e.reason),\n })\n\n const { mutate: submit, isPending: isSubmitting } =\n useSubmitDataAccessRequest({\n onSuccess: submission => onSubmissionCreated(submission.submissionId),\n onError: e => setSubmitDarError(e.reason),\n })\n\n const isSubmitDisabled =\n isLoadingDar ||\n isLoadingStatus ||\n isRefetchingStatus ||\n !dataAccessRequest ||\n !allCollected ||\n !signedFileHandle?.fileHandleId ||\n isUpdating ||\n isSubmitting\n\n const handleSubmit = async () => {\n if (!dataAccessRequest || !signedFileHandle?.fileHandleId) return\n setUpdateDarError(undefined)\n setSubmitDarError(undefined)\n const updated = await updateDarAsync({\n ...dataAccessRequest,\n ducFileHandleId: signedFileHandle.fileHandleId,\n }).catch(() => null)\n if (!updated) return\n submit({\n request: {\n requestId: updated.id,\n requestEtag: updated.etag,\n subjectId,\n subjectType,\n },\n accessRequirementId: String(managedACTAccessRequirement.id),\n })\n }\n\n return (\n <>\n <DialogTitle>\n <Stack direction=\"row\" sx={{ alignItems: 'center', gap: '5px' }}>\n Request Access\n <Box sx={{ flexGrow: 1 }} />\n <IconButton aria-label={'Close'} onClick={onHide}>\n <IconSvg icon={'close'} wrap={false} sx={{ color: 'grey.700' }} />\n </IconButton>\n </Stack>\n </DialogTitle>\n <DialogContent>\n <Typography variant={'headline3'} sx={{ mb: 2 }}>\n Sign a Data Use Certificate (DUC)\n </Typography>\n <Typography variant={'body1'} sx={{ ...longFieldLabelSx, mb: 2 }}>\n Your DUC has been emailed to your Collaborators. Once all signatures\n (including the Signing Official) have been collected, you can submit\n the Data Access Request.\n </Typography>\n {/* TODO: restore once the backend precheck allows editing collaborators mid-signature (PORTALS-4380 notes).\n <Typography variant={'body1'} sx={{ ...longFieldLabelSx, mb: 3 }}>\n You can update the list of Collaborators by pressing{' '}\n <strong>Back</strong>.\n </Typography>\n */}\n\n {isLoadingStatus && (\n <Skeleton\n variant={'rectangular'}\n width={'100%'}\n height={120}\n data-testid={'SignatureStatusStep-loading'}\n />\n )}\n\n {statusError && (\n <Alert severity={'error'}>\n <strong>\n Sorry, we couldn't load the current signature status.\n </strong>\n <br />\n {statusError.reason}\n </Alert>\n )}\n\n {!isLoadingStatus && !statusError && signatureStatus && (\n <>\n <Stack\n direction={'row'}\n sx={{ alignItems: 'center', gap: 1, mb: 1 }}\n >\n {allCollected ? (\n <CheckCircleOutline color={'success'} />\n ) : (\n <HourglassEmpty sx={{ color: 'grey.700' }} />\n )}\n <Typography variant={'body1'} sx={{ fontWeight: 700 }}>\n {allCollected\n ? 'All signatures collected.'\n : `${collectedCount} out of ${totalCount} signatures collected.`}\n </Typography>\n <Box sx={{ flexGrow: 1 }} />\n {viewDucHref && (\n <Link\n href={viewDucHref}\n target={'_blank'}\n rel={'noopener'}\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 0.5,\n }}\n >\n View DUC\n <OpenInNew fontSize={'small'} />\n </Link>\n )}\n </Stack>\n\n {outstandingSigners.length > 0 && (\n <>\n <Typography variant={'body1'} sx={{ mb: 1 }}>\n You're still waiting for signatures from\n </Typography>\n <Box component={'ul'} sx={{ mt: 0, mb: 2, pl: 3 }}>\n {outstandingSigners.map((signer, index) => (\n <li key={signer.userId ?? `${signer.name}-${index}`}>\n <SignerLine signer={signer} />\n </li>\n ))}\n </Box>\n </>\n )}\n\n <Button\n variant={'outlined'}\n startIcon={<Refresh />}\n loading={isRefetchingStatus}\n onClick={() => {\n refetchStatus()\n }}\n >\n Refresh\n </Button>\n </>\n )}\n\n {updateDarError && (\n <Alert severity={'error'} sx={{ mt: 2 }}>\n <strong>Sorry, we couldn't save your change.</strong>\n <br />\n {updateDarError}\n </Alert>\n )}\n {submitDarError && (\n <Alert severity={'error'} sx={{ mt: 2 }}>\n <strong>Sorry, we couldn't submit your request.</strong>\n <br />\n {submitDarError}\n </Alert>\n )}\n </DialogContent>\n <DialogActions>\n {onBackClicked && (\n <Button variant={'outlined'} onClick={onBackClicked}>\n Back\n </Button>\n )}\n <Box sx={{ flexGrow: 1 }} />\n <Button\n variant={'contained'}\n disabled={isSubmitDisabled}\n loading={isSubmitting}\n onClick={() => {\n handleSubmit()\n }}\n >\n Submit\n </Button>\n </DialogActions>\n </>\n )\n}\n\nfunction SignerLine(props: { signer: EDucSignerStatus }) {\n const { signer } = props\n const displayName = signer.name ?? 'Unnamed signer'\n const nameNode = signer.userId ? (\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Profile:${signer.userId}`}\n target={'_blank'}\n rel={'noopener'}\n >\n {displayName}\n </Link>\n ) : (\n <>{displayName}</>\n )\n // Only surface non-pending problem states inline; pending is implied by the section header.\n const statusLabel =\n signer.status && signer.status !== 'pending' && signer.status !== 'done'\n ? ` (${signer.status})`\n : ''\n return (\n <Typography variant={'body1'} component={'span'}>\n {nameNode}\n {statusLabel}\n </Typography>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { RestrictionUiType } from '../HasAccess/AccessIcon';
|
|
2
|
-
import {
|
|
2
|
+
import { RequestListItem } from '@sage-bionetworks/aridhia-client/generated/models';
|
|
3
3
|
/**
|
|
4
4
|
* Maps an Aridhia request status to the appropriate RestrictionUiType for display.
|
|
5
5
|
*
|
|
6
6
|
* @param request - The Aridhia request object, or undefined if no request exists
|
|
7
7
|
* @returns The appropriate RestrictionUiType based on the request status
|
|
8
8
|
*/
|
|
9
|
-
export declare function getRestrictionUiTypeFromAridhiaRequest(request:
|
|
9
|
+
export declare function getRestrictionUiTypeFromAridhiaRequest(request: RequestListItem | undefined): RestrictionUiType;
|
|
10
10
|
/**
|
|
11
11
|
* Finds the Aridhia request for a specific dataset from a list of requests.
|
|
12
12
|
* If multiple requests match, returns the most recently updated one.
|
|
@@ -15,5 +15,5 @@ export declare function getRestrictionUiTypeFromAridhiaRequest(request: Request
|
|
|
15
15
|
* @param datasetCode - The dataset code to search for
|
|
16
16
|
* @returns The most recently updated request that contains the specified dataset, or undefined if not found
|
|
17
17
|
*/
|
|
18
|
-
export declare function findRequestForDataset(requests:
|
|
18
|
+
export declare function findRequestForDataset(requests: RequestListItem[], datasetCode: string): RequestListItem | undefined;
|
|
19
19
|
//# sourceMappingURL=aridhiaAccessStatusUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aridhiaAccessStatusUtils.d.ts","sourceRoot":"","sources":["../../../src/components/Aridhia/aridhiaAccessStatusUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"aridhiaAccessStatusUtils.d.ts","sourceRoot":"","sources":["../../../src/components/Aridhia/aridhiaAccessStatusUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAA;AAEnF;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,eAAe,GAAG,SAAS,GACnC,iBAAiB,CAkBnB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,EAAE,EAC3B,WAAW,EAAE,MAAM,GAClB,eAAe,GAAG,SAAS,CAmB7B"}
|
|
@@ -11,7 +11,7 @@ function t(t) {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
function n(e, t) {
|
|
14
|
-
let n = e.filter((e) => e.datasets?.
|
|
14
|
+
let n = e.filter((e) => e.datasets?.code === t);
|
|
15
15
|
if (n.length !== 0) return n.reduce((e, t) => e.updated_at ? t.updated_at && t.updated_at > e.updated_at ? t : e : t);
|
|
16
16
|
}
|
|
17
17
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aridhiaAccessStatusUtils.js","names":[],"sources":["../../../src/components/Aridhia/aridhiaAccessStatusUtils.ts"],"sourcesContent":["import { RestrictionUiType } from '../HasAccess/AccessIcon'\nimport {
|
|
1
|
+
{"version":3,"file":"aridhiaAccessStatusUtils.js","names":[],"sources":["../../../src/components/Aridhia/aridhiaAccessStatusUtils.ts"],"sourcesContent":["import { RestrictionUiType } from '../HasAccess/AccessIcon'\nimport { RequestListItem } from '@sage-bionetworks/aridhia-client/generated/models'\n\n/**\n * Maps an Aridhia request status to the appropriate RestrictionUiType for display.\n *\n * @param request - The Aridhia request object, or undefined if no request exists\n * @returns The appropriate RestrictionUiType based on the request status\n */\nexport function getRestrictionUiTypeFromAridhiaRequest(\n request: RequestListItem | undefined,\n): RestrictionUiType {\n if (!request) {\n // No request found - user needs to request access\n return RestrictionUiType.AccessBlockedByRestriction\n }\n\n switch (request.status) {\n case 'approved':\n return RestrictionUiType.Accessible\n case 'pending':\n return RestrictionUiType.AccessBlockedByRestrictionWithPendingRDCADAPRequest\n case 'denied':\n return RestrictionUiType.AccessBlockedByRestrictionWithRejectedRDCADAPRequest\n case 'error':\n return RestrictionUiType.AccessBlockedByACL\n default:\n return RestrictionUiType.AccessBlockedByRestriction\n }\n}\n\n/**\n * Finds the Aridhia request for a specific dataset from a list of requests.\n * If multiple requests match, returns the most recently updated one.\n *\n * @param requests - Array of Aridhia requests\n * @param datasetCode - The dataset code to search for\n * @returns The most recently updated request that contains the specified dataset, or undefined if not found\n */\nexport function findRequestForDataset(\n requests: RequestListItem[],\n datasetCode: string,\n): RequestListItem | undefined {\n const matchingRequests = requests.filter(\n request => request.datasets?.code === datasetCode,\n )\n\n if (matchingRequests.length === 0) {\n return undefined\n }\n\n // Return the most recently updated request\n return matchingRequests.reduce((mostRecent, current) => {\n if (!mostRecent.updated_at) {\n return current\n }\n if (!current.updated_at) {\n return mostRecent\n }\n return current.updated_at > mostRecent.updated_at ? current : mostRecent\n })\n}\n"],"mappings":";;AASA,SAAgB,EACd,GACmB;CACnB,IAAI,CAAC,GAEH,OAAO,EAAkB;CAG3B,QAAQ,EAAQ,QAAhB;EACE,KAAK,YACH,OAAO,EAAkB;EAC3B,KAAK,WACH,OAAO,EAAkB;EAC3B,KAAK,UACH,OAAO,EAAkB;EAC3B,KAAK,SACH,OAAO,EAAkB;EAC3B,SACE,OAAO,EAAkB;CAC7B;AACF;AAUA,SAAgB,EACd,GACA,GAC6B;CAC7B,IAAM,IAAmB,EAAS,QAChC,MAAW,EAAQ,UAAU,SAAS,CACxC;CAEI,MAAiB,WAAW,GAKhC,OAAO,EAAiB,QAAQ,GAAY,MACrC,EAAW,aAGX,EAAQ,cAGN,EAAQ,aAAa,EAAW,aAAa,IAAU,IALrD,CAMV;AACH"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CardLink } from '@/components/CardContainer/CardLink';
|
|
2
|
+
import { CardActionButtonStyle } from '@/components/GenericCard/CardActionButtonStyleContext';
|
|
2
3
|
import { ColumnIconConfigs, CTACardLink, DescriptionConfig, LabelLinkConfig } from '@/components/CardContainerLogic/CardContainerLogic';
|
|
3
4
|
import { TableToGenericCardMapping } from '@/components/GenericCard/TableRowGenericCard';
|
|
4
5
|
import { HeaderCardVariant } from '@/components/HeaderCard';
|
|
@@ -77,6 +78,13 @@ export type CommonCardProps = {
|
|
|
77
78
|
* @default 400
|
|
78
79
|
*/
|
|
79
80
|
charCountCutoff?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Visual style for the card's action buttons (Download/hosting, Cite As,
|
|
83
|
+
* Croissant, Share): `'button'` (default, compact) or `'chip'` (pill-shaped,
|
|
84
|
+
* with the hosting action as a colored chip).
|
|
85
|
+
* @default 'button'
|
|
86
|
+
*/
|
|
87
|
+
actionButtonStyle?: CardActionButtonStyle;
|
|
80
88
|
};
|
|
81
89
|
export type CardConfiguration = CommonCardProps & (StandardCardTypeConfiguration | GenericCardConfiguration | ReleaseCardConfiguration | DatasetCardConfiguration);
|
|
82
90
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardConfiguration.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainer/CardConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EAChB,MAAM,oDAAoD,CAAA;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EACL,OAAO,EACP,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,KAAK,6BAA6B,GAAG;IACnC,iCAAiC;IACjC,IAAI,EAAE,OAAO,MAAM,GAAG,OAAO,gBAAgB,GAAG,OAAO,gBAAgB,CAAA;CACxE,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,iCAAiC;IACjC,IAAI,EAAE,OAAO,YAAY,CAAA;IACzB,wDAAwD;IACxD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,iCAAiC;IACjC,IAAI,EAAE,OAAO,OAAO,CAAA;IACpB,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;CAC9C,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,iCAAiC;IACjC,IAAI,EAAE,OAAO,YAAY,CAAA;IACzB,wDAAwD;IACxD,iBAAiB,EAAE,yBAAyB,CAAA;CAC7C,CAAA;AAED,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG;IAC5B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,kFAAkF;IAClF,eAAe,CAAC,EAAE,QAAQ,CAAA;IAC1B,gIAAgI;IAChI,aAAa,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;IAC3C,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,qDAAqD;IACrD,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C;;OAEG;IACH,uBAAuB,CAAC,EAAE,4BAA4B,CAAA;IACtD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,wBAAwB,CAAC,EAAE,kBAAkB,CAAA;IAC7C,oHAAoH;IACpH,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,IAAI,EAAE,MAAM,EAAE,CAAA;KACf,CAAC,CAAA;IACF;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"CardConfiguration.d.ts","sourceRoot":"","sources":["../../../src/components/CardContainer/CardConfiguration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangePasswordWithToken.d.ts","sourceRoot":"","sources":["../../../src/components/ChangePassword/ChangePasswordWithToken.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"ChangePasswordWithToken.d.ts","sourceRoot":"","sources":["../../../src/components/ChangePassword/ChangePasswordWithToken.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAM1E,KAAK,4BAA4B,GAAG;IAClC,mBAAmB,EAAE,wBAAwB,CAAA;IAC7C,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,KAAK,EAAE,4BAA4B,2CAsIpC"}
|
|
@@ -1,52 +1,87 @@
|
|
|
1
1
|
import { displayToast as e } from "../ToastMessage/ToastMessage.js";
|
|
2
2
|
import { validatePassword as t } from "../../utils/functions/StringUtils.js";
|
|
3
3
|
import "../ToastMessage/index.js";
|
|
4
|
-
import n from "
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { BEGIN_RESET_2FA_BUTTON_TEXT as n } from "../Authentication/OneTimePasswordForm.js";
|
|
5
|
+
import r from "./useChangePasswordFormState.js";
|
|
6
|
+
import { useState as i } from "react";
|
|
7
|
+
import { Alert as a, Button as o, Link as s, TextField as c, Typography as l } from "@mui/material";
|
|
8
|
+
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
8
9
|
//#region src/components/ChangePassword/ChangePasswordWithToken.tsx
|
|
9
|
-
function
|
|
10
|
-
let { passwordChangeToken:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
function p(p) {
|
|
11
|
+
let { passwordChangeToken: m, onSuccess: h } = p, [g, _] = i(""), [v, y] = i(""), [b, x] = i(void 0), [S, C] = i(!1), { promptForTwoFactorAuth: w, TwoFactorAuthPrompt: T, isPending: E, handleChangePasswordWithResetToken: D, error: O } = r({
|
|
12
|
+
hideReset2FA: !0,
|
|
13
|
+
onChangePasswordSuccess: () => {
|
|
14
|
+
_(""), y(""), e("Password successfully changed.", "success"), h();
|
|
15
|
+
}
|
|
16
|
+
}), k = (t) => {
|
|
17
|
+
t.preventDefault(), g === v ? D(g, m) : e("Passwords do not match.", "danger");
|
|
14
18
|
};
|
|
15
|
-
return /* @__PURE__ */
|
|
19
|
+
return /* @__PURE__ */ f("div", { children: [w ? /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(T, {}), S ? /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ f(l, {
|
|
20
|
+
variant: "body1",
|
|
21
|
+
sx: { my: 2 },
|
|
22
|
+
align: "center",
|
|
23
|
+
children: [
|
|
24
|
+
"Because you're resetting your password by email, we can't verify your identity strongly enough to reset two-factor authentication here. Please contact the",
|
|
25
|
+
" ",
|
|
26
|
+
/* @__PURE__ */ d(s, {
|
|
27
|
+
target: "_blank",
|
|
28
|
+
rel: "noopener noreferrer",
|
|
29
|
+
href: "https://sagebionetworks.jira.com/servicedesk/customer/portal/9",
|
|
30
|
+
children: "Synapse Service Desk"
|
|
31
|
+
}),
|
|
32
|
+
" ",
|
|
33
|
+
"for help recovering your account."
|
|
34
|
+
]
|
|
35
|
+
}), /* @__PURE__ */ d(l, {
|
|
36
|
+
variant: "body1",
|
|
37
|
+
sx: { my: 2 },
|
|
38
|
+
align: "center",
|
|
39
|
+
children: "If you have a Google or ORCID account linked to your Synapse account, you may also be able to regain access by signing in with that account instead."
|
|
40
|
+
})] }) : /* @__PURE__ */ d(s, {
|
|
41
|
+
align: "center",
|
|
42
|
+
color: "grey.700",
|
|
43
|
+
sx: {
|
|
44
|
+
display: "block",
|
|
45
|
+
mx: "auto",
|
|
46
|
+
my: 2
|
|
47
|
+
},
|
|
48
|
+
onClick: () => C(!0),
|
|
49
|
+
children: n
|
|
50
|
+
})] }) : /* @__PURE__ */ f("form", {
|
|
16
51
|
onSubmit: (e) => {
|
|
17
|
-
|
|
52
|
+
k(e);
|
|
18
53
|
},
|
|
19
54
|
children: [
|
|
20
|
-
/* @__PURE__ */
|
|
55
|
+
/* @__PURE__ */ d(c, {
|
|
21
56
|
fullWidth: !0,
|
|
22
57
|
required: !0,
|
|
23
|
-
helperText:
|
|
58
|
+
helperText: b,
|
|
24
59
|
type: "password",
|
|
25
60
|
id: "newPassword",
|
|
26
61
|
name: "newPassword",
|
|
27
62
|
label: "New password",
|
|
28
63
|
onChange: (e) => {
|
|
29
|
-
|
|
64
|
+
x(t(e.target.value)), _(e.target.value);
|
|
30
65
|
},
|
|
31
|
-
value:
|
|
66
|
+
value: g || "",
|
|
32
67
|
sx: { mb: 2 }
|
|
33
68
|
}),
|
|
34
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ d(c, {
|
|
35
70
|
fullWidth: !0,
|
|
36
71
|
required: !0,
|
|
37
72
|
type: "password",
|
|
38
73
|
id: "confirmPassword",
|
|
39
74
|
name: "confirmPassword",
|
|
40
75
|
label: "Confirm password",
|
|
41
|
-
onChange: (e) =>
|
|
42
|
-
value:
|
|
76
|
+
onChange: (e) => y(e.target.value),
|
|
77
|
+
value: v || "",
|
|
43
78
|
sx: { mb: 2 }
|
|
44
79
|
}),
|
|
45
|
-
/* @__PURE__ */
|
|
80
|
+
/* @__PURE__ */ d(o, {
|
|
46
81
|
variant: "contained",
|
|
47
82
|
type: "submit",
|
|
48
83
|
fullWidth: !0,
|
|
49
|
-
disabled: !
|
|
84
|
+
disabled: !g || !v || E,
|
|
50
85
|
sx: {
|
|
51
86
|
mt: 3,
|
|
52
87
|
py: 2
|
|
@@ -54,13 +89,13 @@ function l(l) {
|
|
|
54
89
|
children: "Change Password"
|
|
55
90
|
})
|
|
56
91
|
]
|
|
57
|
-
}),
|
|
92
|
+
}), O && /* @__PURE__ */ d(a, {
|
|
58
93
|
severity: "error",
|
|
59
94
|
sx: { my: 2 },
|
|
60
|
-
children:
|
|
95
|
+
children: O.reason
|
|
61
96
|
})] });
|
|
62
97
|
}
|
|
63
98
|
//#endregion
|
|
64
|
-
export {
|
|
99
|
+
export { p as default };
|
|
65
100
|
|
|
66
101
|
//# sourceMappingURL=ChangePasswordWithToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangePasswordWithToken.js","names":[],"sources":["../../../src/components/ChangePassword/ChangePasswordWithToken.tsx"],"sourcesContent":["import { validatePassword } from '@/utils/functions/StringUtils'\nimport { Alert, Button, TextField } from '@mui/material'\nimport { PasswordResetSignedToken } from '@sage-bionetworks/synapse-types'\nimport { FormEvent, useState } from 'react'\nimport { displayToast } from '../ToastMessage'\nimport useChangePasswordFormState from './useChangePasswordFormState'\n\ntype ChangePasswordWithTokenProps = {\n passwordChangeToken: PasswordResetSignedToken\n onSuccess: () => void\n}\n\nexport default function ChangePasswordWithToken(\n props: ChangePasswordWithTokenProps,\n) {\n const { passwordChangeToken, onSuccess } = props\n const [newPassword, setNewPassword] = useState<string>('')\n const [confirmPassword, setConfirmPassword] = useState<string>('')\n const [newPasswordError, setNewPasswordError] = useState<string | undefined>(\n undefined,\n )\n\n const {\n promptForTwoFactorAuth,\n TwoFactorAuthPrompt,\n isPending: changePasswordIsPending,\n handleChangePasswordWithResetToken,\n error,\n } = useChangePasswordFormState({\n onChangePasswordSuccess: () => {\n setNewPassword('')\n setConfirmPassword('')\n displayToast('Password successfully changed.', 'success')\n onSuccess()\n },\n })\n\n const handleChangePassword = (clickEvent: FormEvent<HTMLElement>) => {\n clickEvent.preventDefault()\n if (newPassword !== confirmPassword) {\n displayToast('Passwords do not match.', 'danger')\n } else {\n handleChangePasswordWithResetToken(newPassword, passwordChangeToken)\n }\n }\n\n return (\n <div>\n {promptForTwoFactorAuth ? (\n <TwoFactorAuthPrompt />\n ) : (\n <form\n onSubmit={e => {\n handleChangePassword(e)\n }}\n >\n <TextField\n fullWidth\n required\n helperText={newPasswordError}\n type=\"password\"\n id=\"newPassword\"\n name=\"newPassword\"\n label={'New password'}\n onChange={e => {\n const error = validatePassword(e.target.value)\n setNewPasswordError(error)\n setNewPassword(e.target.value)\n }}\n value={newPassword || ''}\n sx={{ mb: 2 }}\n />\n <TextField\n fullWidth\n required\n type=\"password\"\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n label={'Confirm password'}\n onChange={e => setConfirmPassword(e.target.value)}\n value={confirmPassword || ''}\n sx={{ mb: 2 }}\n />\n <Button\n variant=\"contained\"\n type=\"submit\"\n fullWidth\n disabled={\n !newPassword || !confirmPassword || changePasswordIsPending\n }\n sx={{ mt: 3, py: 2 }}\n >\n Change Password\n </Button>\n </form>\n )}\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }}>\n {error.reason}\n </Alert>\n )}\n </div>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChangePasswordWithToken.js","names":[],"sources":["../../../src/components/ChangePassword/ChangePasswordWithToken.tsx"],"sourcesContent":["import { validatePassword } from '@/utils/functions/StringUtils'\nimport { Alert, Button, Link, TextField, Typography } from '@mui/material'\nimport { PasswordResetSignedToken } from '@sage-bionetworks/synapse-types'\nimport { FormEvent, useState } from 'react'\nimport { BEGIN_RESET_2FA_BUTTON_TEXT } from '../Authentication/OneTimePasswordForm'\nimport { displayToast } from '../ToastMessage'\nimport useChangePasswordFormState from './useChangePasswordFormState'\n\ntype ChangePasswordWithTokenProps = {\n passwordChangeToken: PasswordResetSignedToken\n onSuccess: () => void\n}\n\nexport default function ChangePasswordWithToken(\n props: ChangePasswordWithTokenProps,\n) {\n const { passwordChangeToken, onSuccess } = props\n const [newPassword, setNewPassword] = useState<string>('')\n const [confirmPassword, setConfirmPassword] = useState<string>('')\n const [newPasswordError, setNewPasswordError] = useState<string | undefined>(\n undefined,\n )\n const [\n showTwoFactorAuthRecoveryGuidance,\n setShowTwoFactorAuthRecoveryGuidance,\n ] = useState(false)\n\n const {\n promptForTwoFactorAuth,\n TwoFactorAuthPrompt,\n isPending: changePasswordIsPending,\n handleChangePasswordWithResetToken,\n error,\n } = useChangePasswordFormState({\n // This flow authenticates via an emailed password-reset token: the user has no current\n // password, and their 2FA challenge token is scoped to PASSWORD_CHANGE, which the 2fa/reset\n // endpoint rejects (it only accepts a token from an AUTHENTICATION/login challenge, e.g. one\n // obtained by signing in with a linked SSO provider). There is no credential this flow can\n // offer to self-service reset 2FA, so we hide the interactive reset option (it would only\n // fail) and instead show guidance below.\n hideReset2FA: true,\n onChangePasswordSuccess: () => {\n setNewPassword('')\n setConfirmPassword('')\n displayToast('Password successfully changed.', 'success')\n onSuccess()\n },\n })\n\n const handleChangePassword = (clickEvent: FormEvent<HTMLElement>) => {\n clickEvent.preventDefault()\n if (newPassword !== confirmPassword) {\n displayToast('Passwords do not match.', 'danger')\n } else {\n handleChangePasswordWithResetToken(newPassword, passwordChangeToken)\n }\n }\n\n return (\n <div>\n {promptForTwoFactorAuth ? (\n <>\n <TwoFactorAuthPrompt />\n {!showTwoFactorAuthRecoveryGuidance ? (\n <Link\n align={'center'}\n color={'grey.700'}\n sx={{ display: 'block', mx: 'auto', my: 2 }}\n onClick={() => setShowTwoFactorAuthRecoveryGuidance(true)}\n >\n {BEGIN_RESET_2FA_BUTTON_TEXT}\n </Link>\n ) : (\n <>\n <Typography variant={'body1'} sx={{ my: 2 }} align={'center'}>\n Because you're resetting your password by email, we can't verify\n your identity strongly enough to reset two-factor authentication\n here. Please contact the{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://sagebionetworks.jira.com/servicedesk/customer/portal/9\"\n >\n Synapse Service Desk\n </Link>{' '}\n for help recovering your account.\n </Typography>\n <Typography variant={'body1'} sx={{ my: 2 }} align={'center'}>\n If you have a Google or ORCID account linked to your Synapse\n account, you may also be able to regain access by signing in\n with that account instead.\n </Typography>\n </>\n )}\n </>\n ) : (\n <form\n onSubmit={e => {\n handleChangePassword(e)\n }}\n >\n <TextField\n fullWidth\n required\n helperText={newPasswordError}\n type=\"password\"\n id=\"newPassword\"\n name=\"newPassword\"\n label={'New password'}\n onChange={e => {\n const error = validatePassword(e.target.value)\n setNewPasswordError(error)\n setNewPassword(e.target.value)\n }}\n value={newPassword || ''}\n sx={{ mb: 2 }}\n />\n <TextField\n fullWidth\n required\n type=\"password\"\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n label={'Confirm password'}\n onChange={e => setConfirmPassword(e.target.value)}\n value={confirmPassword || ''}\n sx={{ mb: 2 }}\n />\n <Button\n variant=\"contained\"\n type=\"submit\"\n fullWidth\n disabled={\n !newPassword || !confirmPassword || changePasswordIsPending\n }\n sx={{ mt: 3, py: 2 }}\n >\n Change Password\n </Button>\n </form>\n )}\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }}>\n {error.reason}\n </Alert>\n )}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;AAaA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,wBAAqB,iBAAc,GACrC,CAAC,GAAa,KAAkB,EAAiB,EAAE,GACnD,CAAC,GAAiB,KAAsB,EAAiB,EAAE,GAC3D,CAAC,GAAkB,KAAuB,EAC9C,KAAA,CACF,GACM,CACJ,GACA,KACE,EAAS,EAAK,GAEZ,EACJ,2BACA,wBACA,WAAW,GACX,uCACA,aACE,EAA2B;EAO7B,cAAc;EACd,+BAA+B;GAI7B,AAHA,EAAe,EAAE,GACjB,EAAmB,EAAE,GACrB,EAAa,kCAAkC,SAAS,GACxD,EAAU;EACZ;CACF,CAAC,GAEK,KAAwB,MAAuC;EAEnE,AADA,EAAW,eAAe,GACtB,MAAgB,IAGlB,EAAmC,GAAa,CAAmB,IAFnE,EAAa,2BAA2B,QAAQ;CAIpD;CAEA,OACE,kBAAC,OAAD,EAAA,UAAA,CACG,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,CAAsB,CAAA,GACpB,IAUA,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAS;EAAS,IAAI,EAAE,IAAI,EAAE;EAAG,OAAO;YAApD;GAA8D;GAGnC;GACzB,kBAAC,GAAD;IACE,QAAO;IACP,KAAI;IACJ,MAAK;cACN;GAEK,CAAA;GAAE;GAAI;EAEF;KACZ,kBAAC,GAAD;EAAY,SAAS;EAAS,IAAI,EAAE,IAAI,EAAE;EAAG,OAAO;YAAU;CAIlD,CAAA,CACZ,EAAA,CAAA,IA5BF,kBAAC,GAAD;EACE,OAAO;EACP,OAAO;EACP,IAAI;GAAE,SAAS;GAAS,IAAI;GAAQ,IAAI;EAAE;EAC1C,eAAe,EAAqC,EAAI;YAEvD;CACG,CAAA,CAuBR,EAAA,CAAA,IAEF,kBAAC,QAAD;EACE,WAAU,MAAK;GACb,EAAqB,CAAC;EACxB;YAHF;GAKE,kBAAC,GAAD;IACE,WAAA;IACA,UAAA;IACA,YAAY;IACZ,MAAK;IACL,IAAG;IACH,MAAK;IACL,OAAO;IACP,WAAU,MAAK;KAGb,AADA,EADc,EAAiB,EAAE,OAAO,KACpB,CAAK,GACzB,EAAe,EAAE,OAAO,KAAK;IAC/B;IACA,OAAO,KAAe;IACtB,IAAI,EAAE,IAAI,EAAE;GACb,CAAA;GACD,kBAAC,GAAD;IACE,WAAA;IACA,UAAA;IACA,MAAK;IACL,IAAG;IACH,MAAK;IACL,OAAO;IACP,WAAU,MAAK,EAAmB,EAAE,OAAO,KAAK;IAChD,OAAO,KAAmB;IAC1B,IAAI,EAAE,IAAI,EAAE;GACb,CAAA;GACD,kBAAC,GAAD;IACE,SAAQ;IACR,MAAK;IACL,WAAA;IACA,UACE,CAAC,KAAe,CAAC,KAAmB;IAEtC,IAAI;KAAE,IAAI;KAAG,IAAI;IAAE;cACpB;GAEO,CAAA;EACJ;KAEP,KACC,kBAAC,GAAD;EAAO,UAAU;EAAS,IAAI,EAAE,IAAI,EAAE;YACnC,EAAM;CACF,CAAA,CAEN,EAAA,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChangePasswordFormState.d.ts","sourceRoot":"","sources":["../../../src/components/ChangePassword/useChangePasswordFormState.tsx"],"names":[],"mappings":"AAKA,OAAO,EAIL,wBAAwB,EAGzB,MAAM,iCAAiC,CAAA;AAQxC,eAAO,MAAM,sCAAsC,2GACuD,CAAA;AAE1G,MAAM,MAAM,iCAAiC,GAAG;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAA;CACrC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,OAAO,CAAC,EAAE,iCAAiC;;;;;;wDAuC9B,MAAM,mBAAmB,MAAM,eAAe,MAAM;sDAgBjD,MAAM,uBAAuB,wBAAwB;
|
|
1
|
+
{"version":3,"file":"useChangePasswordFormState.d.ts","sourceRoot":"","sources":["../../../src/components/ChangePassword/useChangePasswordFormState.tsx"],"names":[],"mappings":"AAKA,OAAO,EAIL,wBAAwB,EAGzB,MAAM,iCAAiC,CAAA;AAQxC,eAAO,MAAM,sCAAsC,2GACuD,CAAA;AAE1G,MAAM,MAAM,iCAAiC,GAAG;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAA;CACrC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,OAAO,CAAC,EAAE,iCAAiC;;;;;;wDAuC9B,MAAM,mBAAmB,MAAM,eAAe,MAAM;sDAgBjD,MAAM,uBAAuB,wBAAwB;EAwItE"}
|
|
@@ -37,7 +37,7 @@ function p(f) {
|
|
|
37
37
|
otpType: n,
|
|
38
38
|
otpCode: t
|
|
39
39
|
});
|
|
40
|
-
}, [w, v]), A = !!v, { mutate: j, isSuccess: M, isPending: N } = r(),
|
|
40
|
+
}, [w, v]), A = !!v, { mutate: j, isSuccess: M, isPending: N, error: P } = r(), F = a((e) => {
|
|
41
41
|
v && j({
|
|
42
42
|
userId: v.userId,
|
|
43
43
|
twoFaResetEndpoint: e,
|
|
@@ -81,7 +81,7 @@ function p(f) {
|
|
|
81
81
|
x("DISABLE_2FA_PROMPT");
|
|
82
82
|
},
|
|
83
83
|
onClickReset2FA: () => {
|
|
84
|
-
|
|
84
|
+
F(p);
|
|
85
85
|
},
|
|
86
86
|
twoFactorAuthResetIsPending: N,
|
|
87
87
|
twoFactorAuthResetIsSuccess: M
|
|
@@ -95,15 +95,25 @@ function p(f) {
|
|
|
95
95
|
severity: "warning",
|
|
96
96
|
sx: { my: 2 },
|
|
97
97
|
children: [/* @__PURE__ */ u("strong", { children: "Your password has not been changed." }), " To disable two-factor authentication, you may be required to enter your current password after clicking the link sent to your email address."]
|
|
98
|
+
}),
|
|
99
|
+
b === "DISABLE_2FA_PROMPT" && P && /* @__PURE__ */ d(s, {
|
|
100
|
+
severity: "error",
|
|
101
|
+
sx: { my: 2 },
|
|
102
|
+
children: [
|
|
103
|
+
"Failed to reset two-factor authentication:",
|
|
104
|
+
" ",
|
|
105
|
+
P.reason
|
|
106
|
+
]
|
|
98
107
|
})
|
|
99
108
|
] }) : /* @__PURE__ */ u(l, {}), [
|
|
100
|
-
|
|
109
|
+
F,
|
|
101
110
|
k,
|
|
102
111
|
T,
|
|
103
112
|
g,
|
|
104
113
|
f?.hideReset2FA,
|
|
105
114
|
b,
|
|
106
115
|
A,
|
|
116
|
+
P,
|
|
107
117
|
N,
|
|
108
118
|
M,
|
|
109
119
|
p
|