synapse-react-client 4.0.41 → 4.0.43
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/components/AccessRequirementList/AccessRequirementList.d.ts +6 -20
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +165 -159
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +3 -2
- package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js +23 -22
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.d.ts +4 -3
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js +6 -4
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.d.ts +22 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.js +166 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.js.map +1 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.d.ts +18 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.js +91 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.js.map +1 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.d.ts +33 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.js +49 -0
- package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.d.ts +7 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +30 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js +26 -42
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +97 -218
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.d.ts +13 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.js +60 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts +8 -2
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +177 -78
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts +4 -3
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +15 -15
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts +3 -2
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +88 -103
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.d.ts +12 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.js +50 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js +14 -30
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItem.d.ts → RequestableAccessRequirementItem.d.ts} +9 -8
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItem.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItem.js → RequestableAccessRequirementItem.js} +16 -16
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItem.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItemView.d.ts → RequestableAccessRequirementItemView.d.ts} +8 -7
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItemView.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItemView.js → RequestableAccessRequirementItemView.js} +3 -4
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItemView.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +123 -170
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts +2 -2
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js +35 -51
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts +3 -2
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +107 -91
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.d.ts +12 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.js +51 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.d.ts +12 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.js +24 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +12 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.js +0 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.d.ts +22 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.js +32 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.js.map +1 -0
- package/dist/components/AccessRequirementList/RequestDataStep.d.ts +34 -0
- package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/RequestDataStep.js +37 -0
- package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -0
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.d.ts +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js +20 -20
- package/dist/components/Authentication/TwoFactorBackupCodes.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 +79 -69
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +244 -246
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/components/GridLoadingState.d.ts +23 -0
- package/dist/components/DataGrid/components/GridLoadingState.d.ts.map +1 -0
- package/dist/components/DataGrid/components/GridLoadingState.js +64 -0
- package/dist/components/DataGrid/components/GridLoadingState.js.map +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js +30 -29
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +60 -6
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +71 -60
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/utils/getNamedColumnIndices.d.ts +11 -0
- package/dist/components/DataGrid/utils/getNamedColumnIndices.d.ts.map +1 -0
- package/dist/components/DataGrid/utils/getNamedColumnIndices.js +8 -0
- package/dist/components/DataGrid/utils/getNamedColumnIndices.js.map +1 -0
- package/dist/components/FilePreview/FileHandleContentRenderer.d.ts +6 -2
- package/dist/components/FilePreview/FileHandleContentRenderer.d.ts.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js +27 -14
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.d.ts +1 -1
- package/dist/components/FilePreview/PdfPreview.d.ts.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js +15 -16
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +71 -68
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldLibrary.css +1 -0
- package/dist/components/FormTemplateEditor/FieldLibrary.d.ts +17 -0
- package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FieldLibrary.js +88 -0
- package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -0
- package/dist/components/FormTemplateEditor/FieldLibrary.module.js +5 -0
- package/dist/components/FormTemplateEditor/FieldLibrary.module.js.map +1 -0
- package/dist/components/FormTemplateEditor/FieldLibrary.module.scss +12 -0
- package/dist/components/FormTemplateEditor/FieldLibraryRow.d.ts +19 -0
- package/dist/components/FormTemplateEditor/FieldLibraryRow.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FieldLibraryRow.js +115 -0
- package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.css +1 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.d.ts +9 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.js +18 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.js.map +1 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.js +5 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.js.map +1 -0
- package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.scss +4 -0
- package/dist/components/FormTemplateEditor/FormStructurePanel.d.ts +21 -0
- package/dist/components/FormTemplateEditor/FormStructurePanel.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FormStructurePanel.js +108 -0
- package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditor.d.ts +10 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditor.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditor.js +31 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditor.js.map +1 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.d.ts +15 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +234 -0
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -0
- package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/FormTemplatePreview.js +29 -41
- package/dist/components/FormTemplateEditor/FormTemplatePreview.js.map +1 -1
- package/dist/components/FormTemplateEditor/StepCard.d.ts +25 -0
- package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/StepCard.js +203 -0
- package/dist/components/FormTemplateEditor/StepCard.js.map +1 -0
- package/dist/components/FormTemplateEditor/StepFieldRow.d.ts +34 -0
- package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/StepFieldRow.js +128 -0
- package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -0
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts +19 -0
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +78 -0
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -0
- package/dist/components/FormTemplateEditor/dragHandle.css +1 -0
- package/dist/components/FormTemplateEditor/dragHandle.module.js +8 -0
- package/dist/components/FormTemplateEditor/dragHandle.module.js.map +1 -0
- package/dist/components/FormTemplateEditor/dragHandle.module.scss +22 -0
- package/dist/components/FormTemplateEditor/dropTarget.css +1 -0
- package/dist/components/FormTemplateEditor/dropTarget.module.js +5 -0
- package/dist/components/FormTemplateEditor/dropTarget.module.js.map +1 -0
- package/dist/components/FormTemplateEditor/dropTarget.module.scss +14 -0
- package/dist/components/FormTemplateEditor/formTemplateDraftState.d.ts +48 -0
- package/dist/components/FormTemplateEditor/formTemplateDraftState.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/formTemplateDraftState.js +126 -0
- package/dist/components/FormTemplateEditor/formTemplateDraftState.js.map +1 -0
- package/dist/components/FormTemplateEditor/formTemplateSchema.d.ts +35 -0
- package/dist/components/FormTemplateEditor/formTemplateSchema.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/formTemplateSchema.js +35 -0
- package/dist/components/FormTemplateEditor/formTemplateSchema.js.map +1 -0
- package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts +3 -1
- package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js +26 -8
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
- package/dist/components/FormTemplateEditor/sortableIds.d.ts +23 -0
- package/dist/components/FormTemplateEditor/sortableIds.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/sortableIds.js +24 -0
- package/dist/components/FormTemplateEditor/sortableIds.js.map +1 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDraft.d.ts +33 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDraft.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDraft.js +59 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDraft.js.map +1 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDrag.d.ts +9 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDrag.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDrag.js +66 -0
- package/dist/components/FormTemplateEditor/useFormTemplateDrag.js.map +1 -0
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.js +34 -19
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
- package/dist/components/FormTemplateEditor/utils.d.ts +2 -2
- package/dist/components/FormTemplateEditor/utils.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/utils.js +7 -10
- package/dist/components/FormTemplateEditor/utils.js.map +1 -1
- package/dist/components/JsonSchemaForm/SchemaStepForm.d.ts +21 -0
- package/dist/components/JsonSchemaForm/SchemaStepForm.d.ts.map +1 -0
- package/dist/components/JsonSchemaForm/SchemaStepForm.js +29 -0
- package/dist/components/JsonSchemaForm/SchemaStepForm.js.map +1 -0
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.d.ts +11 -0
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js +28 -19
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.d.ts +1 -0
- package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.js +102 -105
- package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.js +6 -6
- package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.js +88 -81
- package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +7 -0
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
- package/dist/components/QueryBuilder/qbTreeToReadable.d.ts +2 -1
- package/dist/components/QueryBuilder/qbTreeToReadable.d.ts.map +1 -1
- package/dist/components/QueryBuilder/qbTreeToReadable.js +24 -20
- package/dist/components/QueryBuilder/qbTreeToReadable.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderDrag.css +1 -1
- package/dist/components/QueryBuilder/queryBuilderDrag.module.js +2 -2
- package/dist/components/QueryBuilder/queryBuilderDrag.module.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderDrag.module.scss +1 -1
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +16 -0
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderMetadata.js +13 -5
- package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
- package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts +18 -0
- package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -0
- package/dist/components/QueryBuilder/useQBValueDisplayName.js +64 -0
- package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -0
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.d.ts +2 -2
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.d.ts.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js +11 -10
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js +28 -28
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +6 -6
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.d.ts +1 -0
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.d.ts.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +13 -11
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js +4 -4
- package/dist/components/ToastMessage/ToastMessage.d.ts.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js +25 -22
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/dataaccess/FormTemplateEditorRoute.d.ts +7 -0
- package/dist/components/dataaccess/FormTemplateEditorRoute.d.ts.map +1 -0
- package/dist/components/dataaccess/FormTemplateEditorRoute.js +26 -0
- package/dist/components/dataaccess/FormTemplateEditorRoute.js.map +1 -0
- package/dist/components/dataaccess/FormTemplateTable.d.ts +10 -0
- package/dist/components/dataaccess/FormTemplateTable.d.ts.map +1 -0
- package/dist/components/dataaccess/FormTemplateTable.js +124 -0
- package/dist/components/dataaccess/FormTemplateTable.js.map +1 -0
- package/dist/components/dataaccess/ReviewerDashboard.d.ts.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js +80 -50
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +7 -4
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +5 -4
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.d.ts +12 -2
- package/dist/components/widgets/FileHandleLink.d.ts.map +1 -1
- package/dist/components/widgets/FileHandleLink.js +25 -29
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboardRouter.js +15 -15
- package/dist/features/curator/dashboard/CuratorDashboardRouter.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +15 -14
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -1
- package/dist/mocks/accessRequirement/mockFormTemplates.d.ts +2 -0
- package/dist/mocks/accessRequirement/mockFormTemplates.d.ts.map +1 -1
- package/dist/mocks/accessRequirement/mockFormTemplates.js +8 -2
- package/dist/mocks/accessRequirement/mockFormTemplates.js.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +7 -0
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +30 -15
- package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemas.js +17 -31
- package/dist/mocks/accessRequirement/mockJsonSchemas.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.d.ts +3 -0
- package/dist/mocks/dataaccess/MockDataAccessRequest.d.ts.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js +24 -12
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.d.ts +1 -0
- package/dist/mocks/msw/handlers/authHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js +6 -2
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts +2 -0
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +65 -47
- 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 +25 -21
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts +2 -1
- package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/formTemplateHandlers.js +18 -18
- package/dist/mocks/msw/handlers/formTemplateHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.d.ts +8 -0
- package/dist/mocks/msw/handlers/schemaHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js +20 -3
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.d.ts +8 -0
- package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.js +19 -0
- package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.js.map +1 -0
- package/dist/style/abstracts/_cssVariables.scss +13 -0
- package/dist/style/components/_toasts.scss +10 -1
- package/dist/style/main.css +1 -1
- package/dist/synapse-queries/KeyFactory.d.ts +8 -1
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +17 -4
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/auth/index.d.ts +1 -0
- package/dist/synapse-queries/auth/index.d.ts.map +1 -1
- package/dist/synapse-queries/auth/index.js +2 -1
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.d.ts +11 -0
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.d.ts.map +1 -0
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +19 -0
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -0
- package/dist/synapse-queries/dataaccess/index.js +5 -5
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts +18 -0
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +33 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.d.ts +19 -0
- package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.d.ts.map +1 -0
- package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.js +26 -0
- package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.js.map +1 -0
- package/dist/synapse-queries/file/useDirectUploadToS3.js +6 -6
- package/dist/synapse-queries/file/useFileHandle.d.ts +8 -0
- package/dist/synapse-queries/file/useFileHandle.d.ts.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js +15 -6
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/index.js +260 -253
- package/dist/synapse-queries/jsonschema/index.js +2 -2
- package/dist/synapse-queries/jsonschema/useSchema.d.ts +5 -0
- package/dist/synapse-queries/jsonschema/useSchema.d.ts.map +1 -1
- package/dist/synapse-queries/jsonschema/useSchema.js +9 -1
- package/dist/synapse-queries/jsonschema/useSchema.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts +1 -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/featureflag/FeatureFlags.d.ts +1 -0
- 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/toPascalCase.d.ts +6 -0
- package/dist/utils/functions/toPascalCase.d.ts.map +1 -0
- package/dist/utils/functions/toPascalCase.js +8 -0
- package/dist/utils/functions/toPascalCase.js.map +1 -0
- package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js +31 -26
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/jsonschema/schemaData.d.ts +18 -0
- package/dist/utils/jsonschema/schemaData.d.ts.map +1 -0
- package/dist/utils/jsonschema/schemaData.js +26 -0
- package/dist/utils/jsonschema/schemaData.js.map +1 -0
- package/dist/utils/jsonschema/submissionContext.d.ts +5 -0
- package/dist/utils/jsonschema/submissionContext.d.ts.map +1 -1
- package/dist/utils/jsonschema/submissionContext.js +22 -30
- package/dist/utils/jsonschema/submissionContext.js.map +1 -1
- package/package.json +10 -9
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.d.ts.map +0 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +0 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.d.ts.map +0 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { longFieldLabelSx as e } from "./styles.js";
|
|
2
|
+
import { Divider as t, TextField as n, Typography as r } from "@mui/material";
|
|
3
|
+
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.tsx
|
|
5
|
+
function s(s) {
|
|
6
|
+
let { name: c, email: l, disabled: u, onNameChange: d, onEmailChange: f } = s;
|
|
7
|
+
return /* @__PURE__ */ o(i, { children: [
|
|
8
|
+
/* @__PURE__ */ a(r, {
|
|
9
|
+
variant: "headline3",
|
|
10
|
+
sx: { mb: 2 },
|
|
11
|
+
children: "Signing Official"
|
|
12
|
+
}),
|
|
13
|
+
/* @__PURE__ */ a(r, {
|
|
14
|
+
variant: "body1",
|
|
15
|
+
sx: {
|
|
16
|
+
...e,
|
|
17
|
+
mb: 2
|
|
18
|
+
},
|
|
19
|
+
children: "The signing official is a member of your institution with oversight authority who is NOT part of the study team (i.e., not the Project Lead, not a Data Requester or Collaborator, and not the Principal Investigator). They do not need a Synapse account but must be able to receive messages at the email address provided below."
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ a(n, {
|
|
22
|
+
id: "so-name",
|
|
23
|
+
label: "First and last names of your Signing Official",
|
|
24
|
+
placeholder: "First and last name of signing official, ex: John Smith",
|
|
25
|
+
fullWidth: !0,
|
|
26
|
+
type: "text",
|
|
27
|
+
disabled: u,
|
|
28
|
+
value: c,
|
|
29
|
+
required: !0,
|
|
30
|
+
onChange: (e) => d(e.target.value),
|
|
31
|
+
sx: { mb: 2 }
|
|
32
|
+
}),
|
|
33
|
+
/* @__PURE__ */ a(n, {
|
|
34
|
+
id: "so-email",
|
|
35
|
+
label: "Institutional Email of your Signing Official",
|
|
36
|
+
type: "email",
|
|
37
|
+
placeholder: "Individual with signing authority, e.g. jane.smith@institution.edu",
|
|
38
|
+
fullWidth: !0,
|
|
39
|
+
disabled: u,
|
|
40
|
+
value: l,
|
|
41
|
+
required: !0,
|
|
42
|
+
onChange: (e) => f(e.target.value),
|
|
43
|
+
sx: { mb: 2 }
|
|
44
|
+
}),
|
|
45
|
+
/* @__PURE__ */ a(t, { sx: { my: 4 } })
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { s as default };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=SigningOfficialFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SigningOfficialFields.js","names":[],"sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.tsx"],"sourcesContent":["import { Divider, TextField, Typography } from '@mui/material'\nimport { longFieldLabelSx } from './styles'\n\nexport type SigningOfficialFieldsProps = {\n name: string\n email: string\n disabled: boolean\n onNameChange: (name: string) => void\n onEmailChange: (email: string) => void\n}\n\n/**\n * Collects the signing official required to sign an eDUC.\n */\nexport default function SigningOfficialFields(\n props: SigningOfficialFieldsProps,\n) {\n const { name, email, disabled, onNameChange, onEmailChange } = props\n return (\n <>\n <Typography variant={'headline3'} sx={{ mb: 2 }}>\n Signing Official\n </Typography>\n <Typography variant={'body1'} sx={{ ...longFieldLabelSx, mb: 2 }}>\n The signing official is a member of your institution with oversight\n authority who is NOT part of the study team (i.e., not the Project Lead,\n not a Data Requester or Collaborator, and not the Principal\n Investigator). They do not need a Synapse account but must be able to\n receive messages at the email address provided below.\n </Typography>\n <TextField\n id=\"so-name\"\n label=\"First and last names of your Signing Official\"\n placeholder=\"First and last name of signing official, ex: John Smith\"\n fullWidth\n type=\"text\"\n disabled={disabled}\n value={name}\n required\n onChange={e => onNameChange(e.target.value)}\n sx={{ mb: 2 }}\n />\n <TextField\n id=\"so-email\"\n label=\"Institutional Email of your Signing Official\"\n type=\"email\"\n placeholder=\"Individual with signing authority, e.g. jane.smith@institution.edu\"\n fullWidth\n disabled={disabled}\n value={email}\n required\n onChange={e => onEmailChange(e.target.value)}\n sx={{ mb: 2 }}\n />\n <Divider sx={{ my: 4 }} />\n </>\n )\n}\n"],"mappings":";;;;AAcA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,SAAM,UAAO,aAAU,iBAAc,qBAAkB;CAC/D,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GAAY,SAAS;GAAa,IAAI,EAAE,IAAI,EAAE;aAAG;EAErC,CAAA;EACZ,kBAAC,GAAD;GAAY,SAAS;GAAS,IAAI;IAAE,GAAG;IAAkB,IAAI;GAAE;aAAG;EAMtD,CAAA;EACZ,kBAAC,GAAD;GACE,IAAG;GACH,OAAM;GACN,aAAY;GACZ,WAAA;GACA,MAAK;GACK;GACV,OAAO;GACP,UAAA;GACA,WAAU,MAAK,EAAa,EAAE,OAAO,KAAK;GAC1C,IAAI,EAAE,IAAI,EAAE;EACb,CAAA;EACD,kBAAC,GAAD;GACE,IAAG;GACH,OAAM;GACN,MAAK;GACL,aAAY;GACZ,WAAA;GACU;GACV,OAAO;GACP,UAAA;GACA,WAAU,MAAK,EAAc,EAAE,OAAO,KAAK;GAC3C,IAAI,EAAE,IAAI,EAAE;EACb,CAAA;EACD,kBAAC,GAAD,EAAS,IAAI,EAAE,IAAI,EAAE,EAAI,CAAA;CACzB,EAAA,CAAA;AAEN"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const SIGNATURE_QUOTA_EXHAUSTED_TITLE = "Sorry, you've used all of your electronic signature requests.";
|
|
2
|
+
/** The ACT service desk form for requesting a signature quota reset. */
|
|
3
|
+
export declare const ACT_QUOTA_RESET_REQUEST_URL = "https://sagebionetworks.jira.com/servicedesk/customer/portal/8/group/15/create/491";
|
|
4
|
+
/**
|
|
5
|
+
* Explains an exhausted eDUC signature quota and points at the form that can reset it. Shown both
|
|
6
|
+
* as the tooltip on the disabled send action and as the body of the send error alert.
|
|
7
|
+
*/
|
|
8
|
+
export declare function SignatureQuotaExhaustedMessage(props: {
|
|
9
|
+
/** Total routings allowed, when the quota request resolved. */
|
|
10
|
+
quota: number | undefined;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=eDucSignatureUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eDucSignatureUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,+BAA+B,kEACqB,CAAA;AAEjE,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,uFAC8C,CAAA;AAEtF;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,+DAA+D;IAC/D,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,2CAiBA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Link as e } from "@mui/material";
|
|
2
|
+
import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.tsx
|
|
4
|
+
var i = "Sorry, you've used all of your electronic signature requests.", a = "https://sagebionetworks.jira.com/servicedesk/customer/portal/8/group/15/create/491";
|
|
5
|
+
function o(i) {
|
|
6
|
+
let { quota: o } = i;
|
|
7
|
+
return /* @__PURE__ */ r(t, { children: [
|
|
8
|
+
"You have used ",
|
|
9
|
+
o == null ? "all of" : `all ${o} of`,
|
|
10
|
+
" your electronic signature routings for this request. To request a quota reset, submit a request to the",
|
|
11
|
+
" ",
|
|
12
|
+
/* @__PURE__ */ n(e, {
|
|
13
|
+
href: a,
|
|
14
|
+
target: "_blank",
|
|
15
|
+
rel: "noopener",
|
|
16
|
+
children: "Synapse Access and Compliance Team"
|
|
17
|
+
}),
|
|
18
|
+
"."
|
|
19
|
+
] });
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { a as ACT_QUOTA_RESET_REQUEST_URL, i as SIGNATURE_QUOTA_EXHAUSTED_TITLE, o as SignatureQuotaExhaustedMessage };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=eDucSignatureUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eDucSignatureUtils.js","names":[],"sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.tsx"],"sourcesContent":["import { Link } from '@mui/material'\n\nexport const SIGNATURE_QUOTA_EXHAUSTED_TITLE =\n \"Sorry, you've used all of your electronic signature requests.\"\n\n/** The ACT service desk form for requesting a signature quota reset. */\nexport const ACT_QUOTA_RESET_REQUEST_URL =\n 'https://sagebionetworks.jira.com/servicedesk/customer/portal/8/group/15/create/491'\n\n/**\n * Explains an exhausted eDUC signature quota and points at the form that can reset it. Shown both\n * as the tooltip on the disabled send action and as the body of the send error alert.\n */\nexport function SignatureQuotaExhaustedMessage(props: {\n /** Total routings allowed, when the quota request resolved. */\n quota: number | undefined\n}) {\n const { quota } = props\n return (\n <>\n You have used {quota != null ? `all ${quota} of` : 'all of'} your\n electronic signature routings for this request. To request a quota reset,\n submit a request to the{' '}\n <Link\n href={ACT_QUOTA_RESET_REQUEST_URL}\n target={'_blank'}\n rel={'noopener'}\n >\n Synapse Access and Compliance Team\n </Link>\n .\n </>\n )\n}\n"],"mappings":";;;AAEA,IAAa,IACX,iEAGW,IACX;AAMF,SAAgB,EAA+B,GAG5C;CACD,IAAM,EAAE,aAAU;CAClB,OACE,kBAAA,GAAA,EAAA,UAAA;EAAE;EACe,KAAS,OAA2B,WAApB,OAAO,EAAM;EAAgB;EAEpC;EACxB,kBAAC,GAAD;GACE,MAAM;GACN,QAAQ;GACR,KAAK;aACN;EAEK,CAAA;EAAC;CAEP,EAAA,CAAA;AAEN"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ManagedACTAccessRequirement } from '@sage-bionetworks/synapse-types';
|
|
2
|
+
import { RequestableAccessRequirement } from '../RequestDataStep';
|
|
3
|
+
/**
|
|
4
|
+
* The part of an access requirement that every data access request step needs. Satisfied by any access requirement
|
|
5
|
+
* type that supports the data access request flow.
|
|
6
|
+
*/
|
|
7
|
+
export type RequestFlowAccessRequirement = Pick<RequestableAccessRequirement, 'id' | 'concreteType'> & Partial<Pick<ManagedACTAccessRequirement, 'eDucTemplateId'>>;
|
|
8
|
+
/**
|
|
9
|
+
* The part of an access requirement that determines how accessors are collected and which documents are requested.
|
|
10
|
+
*/
|
|
11
|
+
export type AccessorStepAccessRequirement = RequestFlowAccessRequirement & Partial<Pick<ManagedACTAccessRequirement, 'isCertifiedUserRequired' | 'isValidatedProfileRequired' | 'isDUCRequired' | 'ducTemplateFileHandleId'>>;
|
|
12
|
+
//# sourceMappingURL=requestFlowTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestFlowTypes.d.ts","sourceRoot":"","sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,4BAA4B,EAC5B,IAAI,GAAG,cAAc,CACtB,GACC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAE9D;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,4BAA4B,GACtE,OAAO,CACL,IAAI,CACF,2BAA2B,EACzB,yBAAyB,GACzB,4BAA4B,GAC5B,eAAe,GACf,yBAAyB,CAC5B,CACF,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AccessorChange, Renewal, Request, UserProfile } from '@sage-bionetworks/synapse-types';
|
|
2
|
+
/**
|
|
3
|
+
* The accessors of a request after listing the current user as an accessor and removing duplicate accessors.
|
|
4
|
+
*/
|
|
5
|
+
export declare function ensureCurrentUserIsAccessor(accessorChanges: AccessorChange[] | undefined, currentUserId: string, isRenewal: boolean): AccessorChange[];
|
|
6
|
+
type UseInitializeRequestAccessorsArgs = {
|
|
7
|
+
dataAccessRequest: Request | Renewal | undefined;
|
|
8
|
+
user: UserProfile | undefined;
|
|
9
|
+
isRenewal: boolean;
|
|
10
|
+
/** Saves the request. Must handle its own errors, e.g. a react-query `mutate` function with an `onError` handler. */
|
|
11
|
+
updateRequest: (request: Request | Renewal) => void;
|
|
12
|
+
/** When provided, is attached to a request that does not yet reference a research project. */
|
|
13
|
+
researchProjectId?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Applies the updates that every request needs once it and the current user are loaded: the current user is listed as
|
|
17
|
+
* an accessor, duplicate accessors are removed, and (if provided) the research project is attached. The updates are
|
|
18
|
+
* saved at most once.
|
|
19
|
+
*/
|
|
20
|
+
export declare function useInitializeRequestAccessors(args: UseInitializeRequestAccessorsArgs): void;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=useInitializeRequestAccessors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInitializeRequestAccessors.d.ts","sourceRoot":"","sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAEd,OAAO,EACP,OAAO,EACP,WAAW,EACZ,MAAM,iCAAiC,CAAA;AAGxC;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,cAAc,EAAE,GAAG,SAAS,EAC7C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,OAAO,GACjB,cAAc,EAAE,CAoBlB;AAED,KAAK,iCAAiC,GAAG;IACvC,iBAAiB,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;IAChD,IAAI,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,OAAO,CAAA;IAClB,qHAAqH;IACrH,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,KAAK,IAAI,CAAA;IACnD,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,iCAAiC,QAsCxC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useEffect as e, useRef as t } from "react";
|
|
2
|
+
import { AccessType as n } from "@sage-bionetworks/synapse-types";
|
|
3
|
+
import { deepEquals as r } from "@rjsf/utils";
|
|
4
|
+
//#region src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.ts
|
|
5
|
+
function i(e, t, i) {
|
|
6
|
+
let a = {
|
|
7
|
+
userId: t,
|
|
8
|
+
type: i ? n.RENEW_ACCESS : n.GAIN_ACCESS
|
|
9
|
+
}, o = e?.some((e) => r(e, a)) ? e : [a, ...e ?? []], s = /* @__PURE__ */ new Set();
|
|
10
|
+
return o.filter((e) => s.has(e.userId) ? !1 : (s.add(e.userId), !0));
|
|
11
|
+
}
|
|
12
|
+
function a(n) {
|
|
13
|
+
let { dataAccessRequest: a, user: o, isRenewal: s, updateRequest: c, researchProjectId: l } = n, u = t(!1);
|
|
14
|
+
e(() => {
|
|
15
|
+
if (a && o && !u.current) {
|
|
16
|
+
let e = !1;
|
|
17
|
+
l && !a.researchProjectId && (a.researchProjectId = l, e = !0);
|
|
18
|
+
let t = i(a.accessorChanges, o.ownerId, s);
|
|
19
|
+
r(t, a.accessorChanges) || (a.accessorChanges = t, e = !0), e && (u.current = !0, c(a));
|
|
20
|
+
}
|
|
21
|
+
}, [
|
|
22
|
+
a,
|
|
23
|
+
s,
|
|
24
|
+
l,
|
|
25
|
+
c,
|
|
26
|
+
o
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { i as ensureCurrentUserIsAccessor, a as useInitializeRequestAccessors };
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=useInitializeRequestAccessors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInitializeRequestAccessors.js","names":[],"sources":["../../../../src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.ts"],"sourcesContent":["import { deepEquals } from '@rjsf/utils'\nimport {\n AccessorChange,\n AccessType,\n Renewal,\n Request,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport { useEffect, useRef } from 'react'\n\n/**\n * The accessors of a request after listing the current user as an accessor and removing duplicate accessors.\n */\nexport function ensureCurrentUserIsAccessor(\n accessorChanges: AccessorChange[] | undefined,\n currentUserId: string,\n isRenewal: boolean,\n): AccessorChange[] {\n const currentUserWithGainAccess: AccessorChange = {\n userId: currentUserId,\n type: isRenewal ? AccessType.RENEW_ACCESS : AccessType.GAIN_ACCESS,\n }\n const withCurrentUser = accessorChanges?.some(item =>\n deepEquals(item, currentUserWithGainAccess),\n )\n ? accessorChanges\n : [currentUserWithGainAccess, ...(accessorChanges ?? [])]\n\n // SWC-5765: Filter out duplicate accessors\n const seen = new Set<string>()\n return withCurrentUser.filter(accessorChange => {\n if (seen.has(accessorChange.userId)) {\n return false\n }\n seen.add(accessorChange.userId)\n return true\n })\n}\n\ntype UseInitializeRequestAccessorsArgs = {\n dataAccessRequest: Request | Renewal | undefined\n user: UserProfile | undefined\n isRenewal: boolean\n /** Saves the request. Must handle its own errors, e.g. a react-query `mutate` function with an `onError` handler. */\n updateRequest: (request: Request | Renewal) => void\n /** When provided, is attached to a request that does not yet reference a research project. */\n researchProjectId?: string\n}\n\n/**\n * Applies the updates that every request needs once it and the current user are loaded: the current user is listed as\n * an accessor, duplicate accessors are removed, and (if provided) the research project is attached. The updates are\n * saved at most once.\n */\nexport function useInitializeRequestAccessors(\n args: UseInitializeRequestAccessorsArgs,\n) {\n const {\n dataAccessRequest,\n user,\n isRenewal,\n updateRequest,\n researchProjectId,\n } = args\n const hasAppliedImmediateUpdates = useRef(false)\n\n useEffect(() => {\n if (dataAccessRequest && user && !hasAppliedImmediateUpdates.current) {\n let shouldUpdate = false\n\n if (researchProjectId && !dataAccessRequest.researchProjectId) {\n dataAccessRequest.researchProjectId = researchProjectId\n shouldUpdate = true\n }\n\n const accessorChanges = ensureCurrentUserIsAccessor(\n dataAccessRequest.accessorChanges,\n user.ownerId,\n isRenewal,\n )\n if (!deepEquals(accessorChanges, dataAccessRequest.accessorChanges)) {\n dataAccessRequest.accessorChanges = accessorChanges\n shouldUpdate = true\n }\n\n if (shouldUpdate) {\n // Only attempt these updates once. If the server does not echo back a value we applied here, retrying would\n // loop indefinitely, leaving the form perpetually in a pending state.\n hasAppliedImmediateUpdates.current = true\n updateRequest(dataAccessRequest)\n }\n }\n }, [dataAccessRequest, isRenewal, researchProjectId, updateRequest, user])\n}\n"],"mappings":";;;;AAaA,SAAgB,EACd,GACA,GACA,GACkB;CAClB,IAAM,IAA4C;EAChD,QAAQ;EACR,MAAM,IAAY,EAAW,eAAe,EAAW;CACzD,GACM,IAAkB,GAAiB,MAAK,MAC5C,EAAW,GAAM,CAAyB,CAC5C,IACI,IACA,CAAC,GAA2B,GAAI,KAAmB,CAAC,CAAE,GAGpD,oBAAO,IAAI,IAAY;CAC7B,OAAO,EAAgB,QAAO,MACxB,EAAK,IAAI,EAAe,MAAM,IACzB,MAET,EAAK,IAAI,EAAe,MAAM,GACvB,GACR;AACH;AAiBA,SAAgB,EACd,GACA;CACA,IAAM,EACJ,sBACA,SACA,cACA,kBACA,yBACE,GACE,IAA6B,EAAO,EAAK;CAE/C,QAAgB;EACd,IAAI,KAAqB,KAAQ,CAAC,EAA2B,SAAS;GACpE,IAAI,IAAe;GAEnB,AAAI,KAAqB,CAAC,EAAkB,sBAC1C,EAAkB,oBAAoB,GACtC,IAAe;GAGjB,IAAM,IAAkB,EACtB,EAAkB,iBAClB,EAAK,SACL,CACF;GAMA,AALK,EAAW,GAAiB,EAAkB,eAAe,MAChE,EAAkB,kBAAkB,GACpC,IAAe,KAGb,MAGF,EAA2B,UAAU,IACrC,EAAc,CAAiB;EAEnC;CACF,GAAG;EAAC;EAAmB;EAAW;EAAmB;EAAe;CAAI,CAAC;AAC3E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AccessRequirement, JsonSchemaAccessRequirement, ManagedACTAccessRequirement } from '@sage-bionetworks/synapse-types';
|
|
2
|
+
/** The access requirement types that a user can request access to through the request wizard */
|
|
3
|
+
export type RequestableAccessRequirement = ManagedACTAccessRequirement | JsonSchemaAccessRequirement;
|
|
4
|
+
export declare function isRequestableAccessRequirement(accessRequirement: AccessRequirement): accessRequirement is RequestableAccessRequirement;
|
|
5
|
+
/**
|
|
6
|
+
* Represents a distinct screen in the wizard used to request access to a {@link RequestableAccessRequirement}
|
|
7
|
+
*/
|
|
8
|
+
export declare enum RequestDataStep {
|
|
9
|
+
SHOW_ALL_ARS = 0,
|
|
10
|
+
UPDATE_RESEARCH_PROJECT = 1,
|
|
11
|
+
UPDATE_ACCESSORS_AND_FILES = 2,
|
|
12
|
+
PROMPT_CANCEL = 3,
|
|
13
|
+
PROMPT_LOGIN = 4,
|
|
14
|
+
COMPLETE = 5,
|
|
15
|
+
REVIEW_DUC = 6,
|
|
16
|
+
EDUC_PREVIEW = 7,
|
|
17
|
+
MANUAL_UPLOAD_DUC = 8,
|
|
18
|
+
SIGNATURE_STATUS = 9,
|
|
19
|
+
/** The request wizard of a JsonSchemaAccessRequirement, which owns its own sequence of steps */
|
|
20
|
+
SCHEMA_DRIVEN_REQUEST = 10
|
|
21
|
+
}
|
|
22
|
+
/** The first step of the wizard in which a user requests access to the given access requirement */
|
|
23
|
+
export declare function getFirstRequestStep(accessRequirement: Pick<RequestableAccessRequirement, 'concreteType'>): RequestDataStep;
|
|
24
|
+
/**
|
|
25
|
+
* The step that follows `currentStep` in the request wizard of the given access requirement.
|
|
26
|
+
* @throws if `currentStep` is the last step of, or not a step of, the access requirement's request wizard
|
|
27
|
+
*/
|
|
28
|
+
export declare function getNextRequestStep(accessRequirement: Pick<RequestableAccessRequirement, 'concreteType'>, currentStep: RequestDataStep): RequestDataStep;
|
|
29
|
+
/**
|
|
30
|
+
* The step that precedes `currentStep` in the request wizard of the given access requirement.
|
|
31
|
+
* @throws if `currentStep` is the first step of, or not a step of, the access requirement's request wizard
|
|
32
|
+
*/
|
|
33
|
+
export declare function getPreviousRequestStep(accessRequirement: Pick<RequestableAccessRequirement, 'concreteType'>, currentStep: RequestDataStep): RequestDataStep;
|
|
34
|
+
//# sourceMappingURL=RequestDataStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestDataStep.d.ts","sourceRoot":"","sources":["../../../src/components/AccessRequirementList/RequestDataStep.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,2BAA2B,EAE3B,2BAA2B,EAC5B,MAAM,iCAAiC,CAAA;AAExC,gGAAgG;AAChG,MAAM,MAAM,4BAA4B,GACpC,2BAA2B,GAC3B,2BAA2B,CAAA;AAE/B,wBAAgB,8BAA8B,CAC5C,iBAAiB,EAAE,iBAAiB,GACnC,iBAAiB,IAAI,4BAA4B,CAOnD;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,YAAY,IAAA;IACZ,uBAAuB,IAAA;IACvB,0BAA0B,IAAA;IAC1B,aAAa,IAAA;IACb,YAAY,IAAA;IACZ,QAAQ,IAAA;IACR,UAAU,IAAA;IACV,YAAY,IAAA;IACZ,iBAAiB,IAAA;IACjB,gBAAgB,IAAA;IAChB,gGAAgG;IAChG,qBAAqB,KAAA;CACtB;AAyBD,mGAAmG;AACnG,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,GACpE,eAAe,CAEjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,EACrE,WAAW,EAAE,eAAe,GAC3B,eAAe,CAEjB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,EACrE,WAAW,EAAE,eAAe,GAC3B,eAAe,CAEjB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { JSON_SCHEMA_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE as e, MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE as t } from "@sage-bionetworks/synapse-types";
|
|
2
|
+
//#region src/components/AccessRequirementList/RequestDataStep.ts
|
|
3
|
+
function n(n) {
|
|
4
|
+
return n.concreteType === t || n.concreteType === e;
|
|
5
|
+
}
|
|
6
|
+
var r = /* @__PURE__ */ function(e) {
|
|
7
|
+
return e[e.SHOW_ALL_ARS = 0] = "SHOW_ALL_ARS", e[e.UPDATE_RESEARCH_PROJECT = 1] = "UPDATE_RESEARCH_PROJECT", e[e.UPDATE_ACCESSORS_AND_FILES = 2] = "UPDATE_ACCESSORS_AND_FILES", e[e.PROMPT_CANCEL = 3] = "PROMPT_CANCEL", e[e.PROMPT_LOGIN = 4] = "PROMPT_LOGIN", e[e.COMPLETE = 5] = "COMPLETE", e[e.REVIEW_DUC = 6] = "REVIEW_DUC", e[e.EDUC_PREVIEW = 7] = "EDUC_PREVIEW", e[e.MANUAL_UPLOAD_DUC = 8] = "MANUAL_UPLOAD_DUC", e[e.SIGNATURE_STATUS = 9] = "SIGNATURE_STATUS", e[e.SCHEMA_DRIVEN_REQUEST = 10] = "SCHEMA_DRIVEN_REQUEST", e;
|
|
8
|
+
}({}), i = [
|
|
9
|
+
6,
|
|
10
|
+
7,
|
|
11
|
+
8
|
|
12
|
+
], a = {
|
|
13
|
+
[t]: [
|
|
14
|
+
1,
|
|
15
|
+
2,
|
|
16
|
+
...i
|
|
17
|
+
],
|
|
18
|
+
[e]: [10, ...i]
|
|
19
|
+
};
|
|
20
|
+
function o(e) {
|
|
21
|
+
return a[e.concreteType][0];
|
|
22
|
+
}
|
|
23
|
+
function s(e, t) {
|
|
24
|
+
return l(e, t, 1);
|
|
25
|
+
}
|
|
26
|
+
function c(e, t) {
|
|
27
|
+
return l(e, t, -1);
|
|
28
|
+
}
|
|
29
|
+
function l(e, t, n) {
|
|
30
|
+
let i = a[e.concreteType], o = i.indexOf(t), s = o === -1 ? void 0 : i[o + n];
|
|
31
|
+
if (s === void 0) throw Error(`There is no ${n === 1 ? "next" : "previous"} step for ${r[t]} in the request wizard of ${e.concreteType}`);
|
|
32
|
+
return s;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { r as RequestDataStep, o as getFirstRequestStep, s as getNextRequestStep, c as getPreviousRequestStep, n as isRequestableAccessRequirement };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=RequestDataStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestDataStep.js","names":[],"sources":["../../../src/components/AccessRequirementList/RequestDataStep.ts"],"sourcesContent":["import {\n AccessRequirement,\n JSON_SCHEMA_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n JsonSchemaAccessRequirement,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ManagedACTAccessRequirement,\n} from '@sage-bionetworks/synapse-types'\n\n/** The access requirement types that a user can request access to through the request wizard */\nexport type RequestableAccessRequirement =\n | ManagedACTAccessRequirement\n | JsonSchemaAccessRequirement\n\nexport function isRequestableAccessRequirement(\n accessRequirement: AccessRequirement,\n): accessRequirement is RequestableAccessRequirement {\n return (\n accessRequirement.concreteType ===\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE ||\n accessRequirement.concreteType ===\n JSON_SCHEMA_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE\n )\n}\n\n/**\n * Represents a distinct screen in the wizard used to request access to a {@link RequestableAccessRequirement}\n */\nexport enum RequestDataStep {\n SHOW_ALL_ARS,\n UPDATE_RESEARCH_PROJECT,\n UPDATE_ACCESSORS_AND_FILES,\n PROMPT_CANCEL,\n PROMPT_LOGIN,\n COMPLETE,\n REVIEW_DUC,\n EDUC_PREVIEW,\n MANUAL_UPLOAD_DUC,\n SIGNATURE_STATUS,\n /** The request wizard of a JsonSchemaAccessRequirement, which owns its own sequence of steps */\n SCHEMA_DRIVEN_REQUEST,\n}\n\n// Only ARs with an eDUC template continue to these steps; others submit from the last step before them.\n// MANUAL_UPLOAD_DUC is the alternative to sending the eDUC for signature from EDUC_PREVIEW.\nconst EDUC_STEPS = [\n RequestDataStep.REVIEW_DUC,\n RequestDataStep.EDUC_PREVIEW,\n RequestDataStep.MANUAL_UPLOAD_DUC,\n] as const\n\nconst REQUEST_STEP_ORDER: Record<\n RequestableAccessRequirement['concreteType'],\n readonly RequestDataStep[]\n> = {\n [MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE]: [\n RequestDataStep.UPDATE_RESEARCH_PROJECT,\n RequestDataStep.UPDATE_ACCESSORS_AND_FILES,\n ...EDUC_STEPS,\n ],\n [JSON_SCHEMA_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE]: [\n RequestDataStep.SCHEMA_DRIVEN_REQUEST,\n ...EDUC_STEPS,\n ],\n}\n\n/** The first step of the wizard in which a user requests access to the given access requirement */\nexport function getFirstRequestStep(\n accessRequirement: Pick<RequestableAccessRequirement, 'concreteType'>,\n): RequestDataStep {\n return REQUEST_STEP_ORDER[accessRequirement.concreteType][0]\n}\n\n/**\n * The step that follows `currentStep` in the request wizard of the given access requirement.\n * @throws if `currentStep` is the last step of, or not a step of, the access requirement's request wizard\n */\nexport function getNextRequestStep(\n accessRequirement: Pick<RequestableAccessRequirement, 'concreteType'>,\n currentStep: RequestDataStep,\n): RequestDataStep {\n return getAdjacentRequestStep(accessRequirement, currentStep, 1)\n}\n\n/**\n * The step that precedes `currentStep` in the request wizard of the given access requirement.\n * @throws if `currentStep` is the first step of, or not a step of, the access requirement's request wizard\n */\nexport function getPreviousRequestStep(\n accessRequirement: Pick<RequestableAccessRequirement, 'concreteType'>,\n currentStep: RequestDataStep,\n): RequestDataStep {\n return getAdjacentRequestStep(accessRequirement, currentStep, -1)\n}\n\nfunction getAdjacentRequestStep(\n accessRequirement: Pick<RequestableAccessRequirement, 'concreteType'>,\n currentStep: RequestDataStep,\n offset: 1 | -1,\n): RequestDataStep {\n const stepOrder = REQUEST_STEP_ORDER[accessRequirement.concreteType]\n const currentIndex = stepOrder.indexOf(currentStep)\n const adjacentStep =\n currentIndex === -1 ? undefined : stepOrder[currentIndex + offset]\n if (adjacentStep === undefined) {\n throw new Error(\n `There is no ${offset === 1 ? 'next' : 'previous'} step for ${RequestDataStep[currentStep]} in the request wizard of ${accessRequirement.concreteType}`,\n )\n }\n return adjacentStep\n}\n"],"mappings":";;AAaA,SAAgB,EACd,GACmD;CACnD,OACE,EAAkB,iBAChB,KACF,EAAkB,iBAChB;AAEN;AAKA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,EAAA,eAAA,KAAA,gBACA,EAAA,EAAA,0BAAA,KAAA,2BACA,EAAA,EAAA,6BAAA,KAAA,8BACA,EAAA,EAAA,gBAAA,KAAA,iBACA,EAAA,EAAA,eAAA,KAAA,gBACA,EAAA,EAAA,WAAA,KAAA,YACA,EAAA,EAAA,aAAA,KAAA,cACA,EAAA,EAAA,eAAA,KAAA,gBACA,EAAA,EAAA,oBAAA,KAAA,qBACA,EAAA,EAAA,mBAAA,KAAA,oBAEA,EAAA,EAAA,wBAAA,MAAA;AACF,EAAA,CAAA,CAAA,GAIM,IAAa;;;;AAInB,GAEM,IAGF;EACD,IAAqD;;;EAGpD,GAAG;CACL;EACC,IAAqD,CAAA,IAEpD,GAAG,CACL;AACF;AAGA,SAAgB,EACd,GACiB;CACjB,OAAO,EAAmB,EAAkB,cAAc;AAC5D;AAMA,SAAgB,EACd,GACA,GACiB;CACjB,OAAO,EAAuB,GAAmB,GAAa,CAAC;AACjE;AAMA,SAAgB,EACd,GACA,GACiB;CACjB,OAAO,EAAuB,GAAmB,GAAa,EAAE;AAClE;AAEA,SAAS,EACP,GACA,GACA,GACiB;CACjB,IAAM,IAAY,EAAmB,EAAkB,eACjD,IAAe,EAAU,QAAQ,CAAW,GAC5C,IACJ,MAAiB,KAAK,KAAA,IAAY,EAAU,IAAe;CAC7D,IAAI,MAAiB,KAAA,GACnB,MAAU,MACR,eAAe,MAAW,IAAI,SAAS,WAAW,YAAY,EAAgB,GAAa,4BAA4B,EAAkB,cAC3I;CAEF,OAAO;AACT"}
|
package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type UnmanagedACTAccessRequirementItemProps = {
|
|
|
8
8
|
/**
|
|
9
9
|
* Renders a {@link RequirementItem} for the deprecated {@link ACTAccessRequirement}.
|
|
10
10
|
*
|
|
11
|
-
* For {@link ManagedACTAccessRequirement}s, see {@link
|
|
11
|
+
* For {@link ManagedACTAccessRequirement}s and {@link JsonSchemaAccessRequirement}s, see {@link RequestableAccessRequirementItem}
|
|
12
12
|
*
|
|
13
13
|
* For {@link SelfSignAccessRequirement} and {@link TermsOfUseAccessRequirement}, see {@link SelfSignAccessRequirementItem}
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnmanagedACTAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.tsx"],"sourcesContent":["import {\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ACTAccessRequirement,\n RestrictableObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../../Markdown/MarkdownSynapse'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\nexport type UnmanagedACTAccessRequirementItemProps = {\n subjectId?: string\n subjectType?: RestrictableObjectType\n accessRequirement: ACTAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for the deprecated {@link ACTAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s, see {@link
|
|
1
|
+
{"version":3,"file":"UnmanagedACTAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.tsx"],"sourcesContent":["import {\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ACTAccessRequirement,\n RestrictableObjectType,\n} from '@sage-bionetworks/synapse-types'\nimport { useState } from 'react'\nimport MarkdownSynapse from '../../Markdown/MarkdownSynapse'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\nexport type UnmanagedACTAccessRequirementItemProps = {\n subjectId?: string\n subjectType?: RestrictableObjectType\n accessRequirement: ACTAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for the deprecated {@link ACTAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s and {@link JsonSchemaAccessRequirement}s, see {@link RequestableAccessRequirementItem}\n *\n * For {@link SelfSignAccessRequirement} and {@link TermsOfUseAccessRequirement}, see {@link SelfSignAccessRequirementItem}\n */\nexport default function UnmanagedACTAccessRequirementItem(\n props: UnmanagedACTAccessRequirementItemProps,\n) {\n const { accessRequirement, subjectId, subjectType, onHide } = props\n const { isAuthenticated } = useSynapseContext()\n\n const { data: accessRequirementStatus, isLoading: isLoadingStatus } =\n useGetAccessRequirementStatus(String(accessRequirement.id))\n\n const { data: wikiPage } = useGetAccessRequirementWikiPageKey(\n accessRequirement.id.toString(),\n // ACT ARs may have the contact info embedded in the AR or may have an associated Wiki.\n )\n\n const isApproved = accessRequirementStatus?.isApproved\n\n const [showACTContactInfoInstructions, setShowACTContactInfoInstructions] =\n useState<boolean>(false)\n\n let acceptButtonText = ''\n if (\n typeof window !== 'undefined' &&\n (window.location.hostname === 'www.synapse.org' ||\n window.location.hostname === 'staging.synapse.org')\n ) {\n acceptButtonText = 'Request access'\n } else {\n acceptButtonText = 'Request access via Synapse.org'\n }\n\n const gotoSynapseAccessRequirementPage = () => {\n const subjectTypeFilter = subjectType ? `&TYPE=${subjectType}` : ''\n const subjectIdFilter = subjectId ? `&ID=${subjectId}` : ''\n window.open(\n `${PRODUCTION_ENDPOINT_CONFIG.PORTAL}AccessRequirement:AR_ID=${accessRequirement.id}${subjectTypeFilter}${subjectIdFilter}`,\n )\n }\n const onAcceptClicked = () => {\n gotoSynapseAccessRequirementPage()\n // PORTALS-1483: and close the dialog.\n if (onHide) {\n onHide()\n }\n }\n\n const actContactInfo = accessRequirement.actContactInfo\n\n let actions: ButtonProps[] | undefined = undefined\n\n if (isAuthenticated && !isApproved) {\n actions = [\n {\n variant: 'outlined',\n onClick: onAcceptClicked,\n children: acceptButtonText,\n },\n {\n variant: 'text',\n onClick: onHide,\n children: 'I do not accept',\n },\n ]\n }\n\n let renderedTerms = <></>\n if (actContactInfo) {\n renderedTerms = <MarkdownSynapse markdown={actContactInfo} />\n } else if (wikiPage) {\n renderedTerms = (\n <MarkdownSynapse\n wikiId={wikiPage?.wikiPageId}\n ownerId={wikiPage?.ownerObjectId}\n objectType={wikiPage?.ownerObjectType}\n />\n )\n }\n return (\n <RequirementItem\n data-testid={'UnmanagedACTAccessRequirementItem'}\n status={\n isLoadingStatus\n ? RequirementItemStatus.LOADING\n : isApproved\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n actions={actions}\n >\n {isApproved ? (\n <>\n <Typography variant={'body1'}>\n Your data access request has been approved.{' '}\n <Link\n role={'button'}\n onClick={() =>\n setShowACTContactInfoInstructions(\n !showACTContactInfoInstructions,\n )\n }\n >\n {showACTContactInfoInstructions\n ? 'Hide Instructions'\n : 'View Instructions'}\n </Link>\n </Typography>\n {showACTContactInfoInstructions && (\n <Box sx={{ my: 1 }}>{renderedTerms}</Box>\n )}\n </>\n ) : (\n renderedTerms\n )}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;;;AA8BA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,cAAW,gBAAa,cAAW,GACxD,EAAE,uBAAoB,EAAkB,GAExC,EAAE,MAAM,GAAyB,WAAW,MAChD,EAA8B,OAAO,EAAkB,EAAE,CAAC,GAEtD,EAAE,MAAM,MAAa,EACzB,EAAkB,GAAG,SAAS,CAEhC,GAEM,IAAa,GAAyB,YAEtC,CAAC,GAAgC,KACrC,EAAkB,EAAK,GAErB,IAAmB;CACvB,AAOE,IANA,OAAO,SAAW,QACjB,OAAO,SAAS,aAAa,qBAC5B,OAAO,SAAS,aAAa,yBAEZ,mBAEA;CAGrB,IAAM,UAAyC;EAC7C,IAAM,IAAoB,IAAc,SAAS,MAAgB,IAC3D,IAAkB,IAAY,OAAO,MAAc;EACzD,OAAO,KACL,GAAG,EAA2B,OAAO,0BAA0B,EAAkB,KAAK,IAAoB,GAC5G;CACF,GACM,UAAwB;EAG5B,AAFA,EAAiC,GAE7B,KACF,EAAO;CAEX,GAEM,IAAiB,EAAkB,gBAErC;CAEJ,AAAI,KAAmB,CAAC,MACtB,IAAU,CACR;EACE,SAAS;EACT,SAAS;EACT,UAAU;CACZ,GACA;EACE,SAAS;EACT,SAAS;EACT,UAAU;CACZ,CACF;CAGF,IAAI,IAAgB,kBAAA,GAAA,CAAI,CAAA;CAYxB,OAXI,IACF,IAAgB,kBAAC,GAAD,EAAiB,UAAU,EAAiB,CAAA,IACnD,MACT,IACE,kBAAC,GAAD;EACE,QAAQ,GAAU;EAClB,SAAS,GAAU;EACnB,YAAY,GAAU;CACvB,CAAA,IAIH,kBAAC,GAAD;EACE,eAAa;EACb,QACE,IACI,EAAsB,UACtB,IACE,EAAsB,WACtB,EAAsB;EAErB;YAER,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;aAArB;IAA8B;IACgB;IAC5C,kBAAC,GAAD;KACE,MAAM;KACN,eACE,EACE,CAAC,CACH;eAGD,IACG,sBACA;IACA,CAAA;GACI;MACX,KACC,kBAAC,GAAD;GAAK,IAAI,EAAE,IAAI,EAAE;aAAI;EAAmB,CAAA,CAE1C,EAAA,CAAA,IAEF;CAEa,CAAA;AAErB"}
|
|
@@ -5,8 +5,8 @@ import { AclEditorSkeleton as r } from "./AclEditorSkeleton.js";
|
|
|
5
5
|
import { ResourceAccessItem as i } from "./ResourceAccessItem.js";
|
|
6
6
|
import "react";
|
|
7
7
|
import { noop as a } from "lodash-es";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { Box as o, Button as s, Checkbox as c, Collapse as l, FormControlLabel as u, Tooltip as d, Typography as f } from "@mui/material";
|
|
9
|
+
import { TransitionGroup as p } from "react-transition-group";
|
|
10
10
|
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
11
11
|
//#region src/components/AclEditor/AclEditor.tsx
|
|
12
12
|
var g = "Add a user or team", _ = "Make Public", v = "Remove Public Access", y = "Notify people via email";
|
|
@@ -38,19 +38,19 @@ function b(g) {
|
|
|
38
38
|
L && E(Number(L)), I && E(Number(I));
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
return /* @__PURE__ */ h(
|
|
42
|
-
/* @__PURE__ */ h(
|
|
41
|
+
return /* @__PURE__ */ h(o, { children: [
|
|
42
|
+
/* @__PURE__ */ h(o, {
|
|
43
43
|
sx: { mb: "30px" },
|
|
44
|
-
children: [/* @__PURE__ */ m(
|
|
44
|
+
children: [/* @__PURE__ */ m(f, {
|
|
45
45
|
variant: "headline3",
|
|
46
46
|
sx: { mb: "10px" },
|
|
47
47
|
children: "Users and Teams with Permissions"
|
|
48
|
-
}), y.length === 0 ? /* @__PURE__ */ m(
|
|
48
|
+
}), y.length === 0 ? /* @__PURE__ */ m(f, {
|
|
49
49
|
variant: "body1Italic",
|
|
50
50
|
children: T
|
|
51
|
-
}) : /* @__PURE__ */ m(
|
|
51
|
+
}) : /* @__PURE__ */ m(p, { children: y.map((e) => {
|
|
52
52
|
let t = typeof x == "function" ? x(e) : x, n = typeof C == "function" ? C(e) : C;
|
|
53
|
-
return /* @__PURE__ */ m(
|
|
53
|
+
return /* @__PURE__ */ m(l, { children: /* @__PURE__ */ m(i, {
|
|
54
54
|
resourceAccess: e,
|
|
55
55
|
availablePermissionLevels: b,
|
|
56
56
|
canChangePermission: t,
|
|
@@ -61,13 +61,13 @@ function b(g) {
|
|
|
61
61
|
}) }, e.principalId);
|
|
62
62
|
}) })]
|
|
63
63
|
}),
|
|
64
|
-
x && /* @__PURE__ */ h(
|
|
65
|
-
/* @__PURE__ */ m(
|
|
64
|
+
x && /* @__PURE__ */ h(o, { children: [
|
|
65
|
+
/* @__PURE__ */ m(f, {
|
|
66
66
|
variant: "headline3",
|
|
67
67
|
sx: { mb: "10px" },
|
|
68
68
|
children: "Add More"
|
|
69
69
|
}),
|
|
70
|
-
/* @__PURE__ */ m(
|
|
70
|
+
/* @__PURE__ */ m(f, {
|
|
71
71
|
sx: {
|
|
72
72
|
mb: "20px",
|
|
73
73
|
variant: "body1",
|
|
@@ -77,9 +77,9 @@ function b(g) {
|
|
|
77
77
|
},
|
|
78
78
|
children: "Search for a username or team to add. You can search by username, first or last names, or team name."
|
|
79
79
|
}),
|
|
80
|
-
/* @__PURE__ */ h(
|
|
80
|
+
/* @__PURE__ */ h(o, {
|
|
81
81
|
sx: { mb: 1 },
|
|
82
|
-
children: [/* @__PURE__ */ m(
|
|
82
|
+
children: [/* @__PURE__ */ m(f, {
|
|
83
83
|
component: "label",
|
|
84
84
|
variant: "smallText2",
|
|
85
85
|
htmlFor: "reviewer-search",
|
|
@@ -94,25 +94,25 @@ function b(g) {
|
|
|
94
94
|
}
|
|
95
95
|
})]
|
|
96
96
|
}),
|
|
97
|
-
/* @__PURE__ */ h(
|
|
97
|
+
/* @__PURE__ */ h(o, {
|
|
98
98
|
sx: {
|
|
99
99
|
display: "flex",
|
|
100
100
|
justifyContent: "space-between",
|
|
101
101
|
gap: 2
|
|
102
102
|
},
|
|
103
|
-
children: [/* @__PURE__ */ m(
|
|
103
|
+
children: [/* @__PURE__ */ m(o, { children: k && /* @__PURE__ */ m(s, {
|
|
104
104
|
size: "small",
|
|
105
105
|
variant: "outlined",
|
|
106
106
|
...B
|
|
107
|
-
}) }), A && /* @__PURE__ */ m(
|
|
107
|
+
}) }), A && /* @__PURE__ */ m(d, {
|
|
108
108
|
title: "Select to notify newly added people that this item has been shared with them",
|
|
109
|
-
children: /* @__PURE__ */ m(
|
|
109
|
+
children: /* @__PURE__ */ m(u, {
|
|
110
110
|
sx: { mr: 0 },
|
|
111
|
-
control: /* @__PURE__ */ m(
|
|
111
|
+
control: /* @__PURE__ */ m(c, {
|
|
112
112
|
value: j,
|
|
113
113
|
onChange: () => M(!j)
|
|
114
114
|
}),
|
|
115
|
-
label: /* @__PURE__ */ m(
|
|
115
|
+
label: /* @__PURE__ */ m(f, {
|
|
116
116
|
variant: "smallText1",
|
|
117
117
|
children: "Notify people via email"
|
|
118
118
|
})
|
|
@@ -120,7 +120,7 @@ function b(g) {
|
|
|
120
120
|
})]
|
|
121
121
|
})
|
|
122
122
|
] }),
|
|
123
|
-
!x && !S && /* @__PURE__ */ m(
|
|
123
|
+
!x && !S && /* @__PURE__ */ m(f, {
|
|
124
124
|
variant: "body1",
|
|
125
125
|
children: "You do not have sufficient privileges to modify the sharing settings."
|
|
126
126
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwoFactorBackupCodes.js","names":[],"sources":["../../../src/components/Authentication/TwoFactorBackupCodes.tsx"],"sourcesContent":["import {\n LeftRightPanel,\n StyledOuterContainer,\n} from '@/components/styled/LeftRightPanel'\nimport { createRecoveryCodes } from '@/synapse-client/SynapseClient'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { useMediaPrintOnly } from '@/utils/hooks/useMediaPrintOnly'\nimport {\n Alert,\n Box,\n Button,\n IconButton,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { TwoFactorAuthRecoveryCodes } from '@sage-bionetworks/synapse-types'\nimport { useMutation } from '@tanstack/react-query'\nimport { useCallback, useEffect, useState } from 'react'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport { RecoveryCodeGrid } from './RecoveryCodeGrid'\nimport { RegenerateBackupCodesWarning } from './RegenerateBackupCodesWarning'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\n\nexport type TwoFactorBackupCodesProps = {\n /* Whether to show a warning before generating new codes, to prevent users from overwriting their existing codes */\n showReplaceOldCodesWarning?: boolean\n /* Invoked when the user decides not to generate new codes, or has acknowledged new codes. */\n onClose: () => void\n}\n\nexport default function TwoFactorBackupCodes(props: TwoFactorBackupCodesProps) {\n const { showReplaceOldCodesWarning, onClose } = props\n const theme = useTheme()\n const [hasConfirmedRegeneration, setHasConfirmedRegeneration] = useState(\n !showReplaceOldCodesWarning,\n )\n\n const { accessToken } = useSynapseContext()\n\n const {\n mutate: generateCodes,\n data: recoveryCodes,\n error,\n } = useMutation<TwoFactorAuthRecoveryCodes, SynapseClientError>({\n mutationFn: () => createRecoveryCodes(accessToken),\n onMutate: () => {\n setHasConfirmedRegeneration(true)\n },\n })\n\n // Generate codes on mount if no warning is shown\n useEffect(() => {\n if (!showReplaceOldCodesWarning) {\n generateCodes()\n }\n // Run on mount only\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const { visibleOnPrintClassName, hiddenOnPrintClassName } =\n useMediaPrintOnly()\n\n const copyCodesToClipboard = useCallback(() => {\n const codes = (recoveryCodes?.codes || []).join('\\n')\n copyStringToClipboard(codes).then(() => {\n displayToast('Recovery codes copied to clipboard', 'success')\n })\n }, [recoveryCodes])\n\n if (showReplaceOldCodesWarning && !hasConfirmedRegeneration) {\n return (\n <StyledOuterContainer sx={{ display: 'flex', flexDirection: 'column' }}>\n <RegenerateBackupCodesWarning\n onConfirm={generateCodes}\n onCancel={onClose}\n />\n </StyledOuterContainer>\n )\n }\n\n return (\n <LeftRightPanel\n className={visibleOnPrintClassName}\n leftContent={\n <Box\n sx={{\n py: { xs: '10px', md: 10 },\n px: { xs: '10px', md: 8 },\n height: '100%',\n }}\n >\n <IconButton\n type=\"button\"\n onClick={onClose}\n className={hiddenOnPrintClassName}\n sx={{\n position: 'absolute',\n top: { xs: 0, md: theme.spacing(2) },\n left: { xs: 0, md: theme.spacing(2) },\n }}\n >\n <IconSvg\n icon=\"arrowBack\"\n wrap={false}\n sx={{ height: '24px', width: '24px' }}\n />\n </IconButton>\n <Typography variant=\"headline1\" sx={{ mt: { xs: 0, md: 7 } }}>\n Backup codes\n </Typography>\n {showReplaceOldCodesWarning && (\n <Alert\n severity=\"warning\"\n className={hiddenOnPrintClassName}\n sx={{\n my: 2,\n }}\n icon={false}\n >\n <strong>These new codes have replaced your old codes.</strong>{' '}\n Please save these codes and use them from now on.\n </Alert>\n )}\n <RecoveryCodeGrid recoveryCodes={recoveryCodes} />\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }} icon={false}>\n {error.message}\n </Alert>\n )}\n <Box\n className={hiddenOnPrintClassName}\n sx={{\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: '10px',\n mb: '10px',\n }}\n >\n <Button\n variant={'outlined'}\n onClick={copyCodesToClipboard}\n disabled={!recoveryCodes}\n >\n Copy Codes\n </Button>\n <Button\n variant={'outlined'}\n disabled={!recoveryCodes}\n onClick={window.print}\n >\n Print Codes\n </Button>\n </Box>\n <Button\n variant={'contained'}\n className={hiddenOnPrintClassName}\n fullWidth\n disabled={!recoveryCodes}\n onClick={onClose}\n >\n Done\n </Button>\n </Box>\n }\n rightContent={\n <Box\n sx={{\n padding: { xs: '60px 0 0 0', md: 10 },\n height: '100%',\n background: {\n xs: 'none',\n md: `url(https://s3.amazonaws.com/static.synapse.org/images/twofactor-graphic.svg) no-repeat right bottom`,\n },\n backgroundSize: '100%',\n }}\n >\n <Box\n sx={{\n mt: { xs: 0, md: 7 },\n px: { xs: '10px', md: 9 },\n }}\n >\n <Typography\n variant=\"headline1\"\n sx={theme => ({\n mb: 2.5,\n [theme.breakpoints.down('md')]: { fontSize: '18px' },\n })}\n >\n Save these codes\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n my: 2,\n }}\n >\n You can use these 10 backup codes to access your account if you\n ever lose access to your authentication device.\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n my: 2,\n }}\n >\n Each code can only be used once.\n </Typography>\n </Box>\n </Box>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAgCA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,+BAA4B,eAAY,GAC1C,IAAQ,EAAS,GACjB,CAAC,GAA0B,KAA+B,EAC9D,CAAC,CACH,GAEM,EAAE,mBAAgB,EAAkB,GAEpC,EACJ,QAAQ,GACR,MAAM,GACN,aACE,EAA4D;EAC9D,kBAAkB,EAAoB,CAAW;EACjD,gBAAgB;GACd,EAA4B,EAAI;EAClC;CACF,CAAC;CAGD,QAAgB;EACd,AAAK,KACH,EAAc;CAIlB,GAAG,CAAC,CAAC;CAEL,IAAM,EAAE,4BAAyB,8BAC/B,EAAkB,GAEd,IAAuB,QAAkB;EAE7C,GADe,GAAe,SAAS,CAAC,GAAG,KAAK,IAC1B,CAAK,EAAE,WAAW;GACtC,EAAa,sCAAsC,SAAS;EAC9D,CAAC;CACH,GAAG,CAAC,CAAa,CAAC;CAalB,OAXI,KAA8B,CAAC,IAE/B,kBAAC,GAAD;EAAsB,IAAI;GAAE,SAAS;GAAQ,eAAe;EAAS;YACnE,kBAAC,GAAD;GACE,WAAW;GACX,UAAU;EACX,CAAA;CACmB,CAAA,IAKxB,kBAAC,GAAD;EACE,WAAW;EACX,aACE,kBAAC,GAAD;GACE,IAAI;IACF,IAAI;KAAE,IAAI;KAAQ,IAAI;IAAG;IACzB,IAAI;KAAE,IAAI;KAAQ,IAAI;IAAE;IACxB,QAAQ;GACV;aALF;IAOE,kBAAC,GAAD;KACE,MAAK;KACL,SAAS;KACT,WAAW;KACX,IAAI;MACF,UAAU;MACV,KAAK;OAAE,IAAI;OAAG,IAAI,EAAM,QAAQ,CAAC;MAAE;MACnC,MAAM;OAAE,IAAI;OAAG,IAAI,EAAM,QAAQ,CAAC;MAAE;KACtC;eAEA,kBAAC,GAAD;MACE,MAAK;MACL,MAAM;MACN,IAAI;OAAE,QAAQ;OAAQ,OAAO;MAAO;KACrC,CAAA;IACS,CAAA;IACZ,kBAAC,GAAD;KAAY,SAAQ;KAAY,IAAI,EAAE,IAAI;MAAE,IAAI;MAAG,IAAI;KAAE,EAAE;eAAG;IAElD,CAAA;IACX,KACC,kBAAC,GAAD;KACE,UAAS;KACT,WAAW;KACX,IAAI,EACF,IAAI,EACN;KACA,MAAM;eANR;MAQE,kBAAC,UAAD,EAAA,UAAQ,gDAAqD,CAAA;MAAE;MAAI;KAE9D;;IAET,kBAAC,GAAD,EAAiC,iBAAgB,CAAA;IAChD,KACC,kBAAC,GAAD;KAAO,UAAU;KAAS,IAAI,EAAE,IAAI,EAAE;KAAG,MAAM;eAC5C,EAAM;IACF,CAAA;IAET,kBAAC,GAAD;KACE,WAAW;KACX,IAAI;MACF,SAAS;MACT,qBAAqB;MACrB,KAAK;MACL,IAAI;KACN;eAPF,CASE,kBAAC,GAAD;MACE,SAAS;MACT,SAAS;MACT,UAAU,CAAC;gBACZ;KAEO,CAAA,GACR,kBAAC,GAAD;MACE,SAAS;MACT,UAAU,CAAC;MACX,SAAS,OAAO;gBACjB;KAEO,CAAA,CACL;;IACL,kBAAC,GAAD;KACE,SAAS;KACT,WAAW;KACX,WAAA;KACA,UAAU,CAAC;KACX,SAAS;eACV;IAEO,CAAA;GACL;;EAEP,cACE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;KAAE,IAAI;KAAc,IAAI;
|
|
1
|
+
{"version":3,"file":"TwoFactorBackupCodes.js","names":[],"sources":["../../../src/components/Authentication/TwoFactorBackupCodes.tsx"],"sourcesContent":["import {\n LeftRightPanel,\n StyledOuterContainer,\n} from '@/components/styled/LeftRightPanel'\nimport { createRecoveryCodes } from '@/synapse-client/SynapseClient'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { useMediaPrintOnly } from '@/utils/hooks/useMediaPrintOnly'\nimport {\n Alert,\n Box,\n Button,\n IconButton,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client/util/SynapseClientError'\nimport { TwoFactorAuthRecoveryCodes } from '@sage-bionetworks/synapse-types'\nimport { useMutation } from '@tanstack/react-query'\nimport { useCallback, useEffect, useState } from 'react'\nimport IconSvg from '../IconSvg/IconSvg'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport { RecoveryCodeGrid } from './RecoveryCodeGrid'\nimport { RegenerateBackupCodesWarning } from './RegenerateBackupCodesWarning'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\n\nexport type TwoFactorBackupCodesProps = {\n /* Whether to show a warning before generating new codes, to prevent users from overwriting their existing codes */\n showReplaceOldCodesWarning?: boolean\n /* Invoked when the user decides not to generate new codes, or has acknowledged new codes. */\n onClose: () => void\n}\n\nexport default function TwoFactorBackupCodes(props: TwoFactorBackupCodesProps) {\n const { showReplaceOldCodesWarning, onClose } = props\n const theme = useTheme()\n const [hasConfirmedRegeneration, setHasConfirmedRegeneration] = useState(\n !showReplaceOldCodesWarning,\n )\n\n const { accessToken } = useSynapseContext()\n\n const {\n mutate: generateCodes,\n data: recoveryCodes,\n error,\n } = useMutation<TwoFactorAuthRecoveryCodes, SynapseClientError>({\n mutationFn: () => createRecoveryCodes(accessToken),\n onMutate: () => {\n setHasConfirmedRegeneration(true)\n },\n })\n\n // Generate codes on mount if no warning is shown\n useEffect(() => {\n if (!showReplaceOldCodesWarning) {\n generateCodes()\n }\n // Run on mount only\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const { visibleOnPrintClassName, hiddenOnPrintClassName } =\n useMediaPrintOnly()\n\n const copyCodesToClipboard = useCallback(() => {\n const codes = (recoveryCodes?.codes || []).join('\\n')\n copyStringToClipboard(codes).then(() => {\n displayToast('Recovery codes copied to clipboard', 'success')\n })\n }, [recoveryCodes])\n\n if (showReplaceOldCodesWarning && !hasConfirmedRegeneration) {\n return (\n <StyledOuterContainer sx={{ display: 'flex', flexDirection: 'column' }}>\n <RegenerateBackupCodesWarning\n onConfirm={generateCodes}\n onCancel={onClose}\n />\n </StyledOuterContainer>\n )\n }\n\n return (\n <LeftRightPanel\n className={visibleOnPrintClassName}\n leftContent={\n <Box\n sx={{\n py: { xs: '10px', md: 10 },\n px: { xs: '10px', md: 8 },\n height: '100%',\n }}\n >\n <IconButton\n type=\"button\"\n onClick={onClose}\n className={hiddenOnPrintClassName}\n sx={{\n position: 'absolute',\n top: { xs: 0, md: theme.spacing(2) },\n left: { xs: 0, md: theme.spacing(2) },\n }}\n >\n <IconSvg\n icon=\"arrowBack\"\n wrap={false}\n sx={{ height: '24px', width: '24px' }}\n />\n </IconButton>\n <Typography variant=\"headline1\" sx={{ mt: { xs: 0, md: 7 } }}>\n Backup codes\n </Typography>\n {showReplaceOldCodesWarning && (\n <Alert\n severity=\"warning\"\n className={hiddenOnPrintClassName}\n sx={{\n my: 2,\n }}\n icon={false}\n >\n <strong>These new codes have replaced your old codes.</strong>{' '}\n Please save these codes and use them from now on.\n </Alert>\n )}\n <RecoveryCodeGrid recoveryCodes={recoveryCodes} />\n {error && (\n <Alert severity={'error'} sx={{ my: 2 }} icon={false}>\n {error.message}\n </Alert>\n )}\n <Box\n className={hiddenOnPrintClassName}\n sx={{\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: '10px',\n mb: '10px',\n }}\n >\n <Button\n variant={'outlined'}\n onClick={copyCodesToClipboard}\n disabled={!recoveryCodes}\n >\n Copy Codes\n </Button>\n <Button\n variant={'outlined'}\n disabled={!recoveryCodes}\n onClick={window.print}\n >\n Print Codes\n </Button>\n </Box>\n <Button\n variant={'contained'}\n className={hiddenOnPrintClassName}\n fullWidth\n disabled={!recoveryCodes}\n onClick={onClose}\n >\n Done\n </Button>\n </Box>\n }\n rightContent={\n <Box\n sx={{\n padding: { xs: '60px 0 0 0', md: theme.spacing(10, 0) },\n height: '100%',\n background: {\n xs: 'none',\n md: `url(https://s3.amazonaws.com/static.synapse.org/images/twofactor-graphic.svg) no-repeat right bottom`,\n },\n backgroundSize: '100%',\n }}\n >\n <Box\n sx={{\n mt: { xs: 0, md: 7 },\n px: { xs: '10px', md: 9 },\n }}\n >\n <Typography\n variant=\"headline1\"\n sx={theme => ({\n mb: 2.5,\n [theme.breakpoints.down('md')]: { fontSize: '18px' },\n })}\n >\n Save these codes\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n my: 2,\n }}\n >\n You can use these 10 backup codes to access your account if you\n ever lose access to your authentication device.\n </Typography>\n <Typography\n variant=\"body1\"\n sx={{\n my: 2,\n }}\n >\n Each code can only be used once.\n </Typography>\n </Box>\n </Box>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;AAgCA,SAAwB,EAAqB,GAAkC;CAC7E,IAAM,EAAE,+BAA4B,eAAY,GAC1C,IAAQ,EAAS,GACjB,CAAC,GAA0B,KAA+B,EAC9D,CAAC,CACH,GAEM,EAAE,mBAAgB,EAAkB,GAEpC,EACJ,QAAQ,GACR,MAAM,GACN,aACE,EAA4D;EAC9D,kBAAkB,EAAoB,CAAW;EACjD,gBAAgB;GACd,EAA4B,EAAI;EAClC;CACF,CAAC;CAGD,QAAgB;EACd,AAAK,KACH,EAAc;CAIlB,GAAG,CAAC,CAAC;CAEL,IAAM,EAAE,4BAAyB,8BAC/B,EAAkB,GAEd,IAAuB,QAAkB;EAE7C,GADe,GAAe,SAAS,CAAC,GAAG,KAAK,IAC1B,CAAK,EAAE,WAAW;GACtC,EAAa,sCAAsC,SAAS;EAC9D,CAAC;CACH,GAAG,CAAC,CAAa,CAAC;CAalB,OAXI,KAA8B,CAAC,IAE/B,kBAAC,GAAD;EAAsB,IAAI;GAAE,SAAS;GAAQ,eAAe;EAAS;YACnE,kBAAC,GAAD;GACE,WAAW;GACX,UAAU;EACX,CAAA;CACmB,CAAA,IAKxB,kBAAC,GAAD;EACE,WAAW;EACX,aACE,kBAAC,GAAD;GACE,IAAI;IACF,IAAI;KAAE,IAAI;KAAQ,IAAI;IAAG;IACzB,IAAI;KAAE,IAAI;KAAQ,IAAI;IAAE;IACxB,QAAQ;GACV;aALF;IAOE,kBAAC,GAAD;KACE,MAAK;KACL,SAAS;KACT,WAAW;KACX,IAAI;MACF,UAAU;MACV,KAAK;OAAE,IAAI;OAAG,IAAI,EAAM,QAAQ,CAAC;MAAE;MACnC,MAAM;OAAE,IAAI;OAAG,IAAI,EAAM,QAAQ,CAAC;MAAE;KACtC;eAEA,kBAAC,GAAD;MACE,MAAK;MACL,MAAM;MACN,IAAI;OAAE,QAAQ;OAAQ,OAAO;MAAO;KACrC,CAAA;IACS,CAAA;IACZ,kBAAC,GAAD;KAAY,SAAQ;KAAY,IAAI,EAAE,IAAI;MAAE,IAAI;MAAG,IAAI;KAAE,EAAE;eAAG;IAElD,CAAA;IACX,KACC,kBAAC,GAAD;KACE,UAAS;KACT,WAAW;KACX,IAAI,EACF,IAAI,EACN;KACA,MAAM;eANR;MAQE,kBAAC,UAAD,EAAA,UAAQ,gDAAqD,CAAA;MAAE;MAAI;KAE9D;;IAET,kBAAC,GAAD,EAAiC,iBAAgB,CAAA;IAChD,KACC,kBAAC,GAAD;KAAO,UAAU;KAAS,IAAI,EAAE,IAAI,EAAE;KAAG,MAAM;eAC5C,EAAM;IACF,CAAA;IAET,kBAAC,GAAD;KACE,WAAW;KACX,IAAI;MACF,SAAS;MACT,qBAAqB;MACrB,KAAK;MACL,IAAI;KACN;eAPF,CASE,kBAAC,GAAD;MACE,SAAS;MACT,SAAS;MACT,UAAU,CAAC;gBACZ;KAEO,CAAA,GACR,kBAAC,GAAD;MACE,SAAS;MACT,UAAU,CAAC;MACX,SAAS,OAAO;gBACjB;KAEO,CAAA,CACL;;IACL,kBAAC,GAAD;KACE,SAAS;KACT,WAAW;KACX,WAAA;KACA,UAAU,CAAC;KACX,SAAS;eACV;IAEO,CAAA;GACL;;EAEP,cACE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;KAAE,IAAI;KAAc,IAAI,EAAM,QAAQ,IAAI,CAAC;IAAE;IACtD,QAAQ;IACR,YAAY;KACV,IAAI;KACJ,IAAI;IACN;IACA,gBAAgB;GAClB;aAEA,kBAAC,GAAD;IACE,IAAI;KACF,IAAI;MAAE,IAAI;MAAG,IAAI;KAAE;KACnB,IAAI;MAAE,IAAI;MAAQ,IAAI;KAAE;IAC1B;cAJF;KAME,kBAAC,GAAD;MACE,SAAQ;MACR,KAAI,OAAU;OACZ,IAAI;QACH,EAAM,YAAY,KAAK,IAAI,IAAI,EAAE,UAAU,OAAO;MACrD;gBACD;KAEW,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI,EACF,IAAI,EACN;gBACD;KAGW,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI,EACF,IAAI,EACN;gBACD;KAEW,CAAA;IACT;;EACF,CAAA;CAER,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwoFactorEnrollmentForm.d.ts","sourceRoot":"","sources":["../../../src/components/Authentication/TwoFactorEnrollmentForm.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TwoFactorEnrollmentForm.d.ts","sourceRoot":"","sources":["../../../src/components/Authentication/TwoFactorEnrollmentForm.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAY5D;;;;GAIG;AACH,iBAAS,YAAY,CAAC,MAAM,EAAE,UAAU,UAEvC;AAiCD,eAAO,MAAM,oBAAoB,+HAC6F,CAAA;AAE9H,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,UAAU,CAAA;IACtB,4BAA4B,EAAE,MAAM,IAAI,CAAA;IACxC,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,KAAK,EAAE,4BAA4B,2CAmPpC;AAED,eAAO,MAAM,yBAAyB;;CAAmB,CAAA"}
|