synapse-react-client 4.0.19 → 4.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -1
- package/dist/SWC.index.js +1 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/assets/DefaultColorfulPortalCardBackground.js.map +1 -1
- package/dist/assets/GoogleIcon.js.map +1 -1
- package/dist/assets/GoogleIcon24.js.map +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
- package/dist/assets/homepage/BlinkingLiveIcon.js.map +1 -1
- package/dist/assets/homepage/aacr.js.map +1 -1
- package/dist/assets/homepage/cri.js.map +1 -1
- package/dist/assets/homepage/ctf.js.map +1 -1
- package/dist/assets/homepage/egress.js.map +1 -1
- package/dist/assets/homepage/facebook.js.map +1 -1
- package/dist/assets/homepage/fisma.js.map +1 -1
- package/dist/assets/homepage/gff.js.map +1 -1
- package/dist/assets/homepage/github.js.map +1 -1
- package/dist/assets/homepage/gray.js.map +1 -1
- package/dist/assets/homepage/hipaa-compliant.js.map +1 -1
- package/dist/assets/homepage/instagram.js.map +1 -1
- package/dist/assets/homepage/linkedin.js.map +1 -1
- package/dist/assets/homepage/ml-commons.js.map +1 -1
- package/dist/assets/homepage/nih-aging.js.map +1 -1
- package/dist/assets/homepage/nih-heart.js.map +1 -1
- package/dist/assets/homepage/nih-nci.js.map +1 -1
- package/dist/assets/homepage/nih-nimh.js.map +1 -1
- package/dist/assets/homepage/ntap.js.map +1 -1
- package/dist/assets/homepage/plan-item.js.map +1 -1
- package/dist/assets/homepage/powered-by-synapse-feature.js.map +1 -1
- package/dist/assets/homepage/precision-governance-feature.js.map +1 -1
- package/dist/assets/homepage/python.js.map +1 -1
- package/dist/assets/homepage/r.js.map +1 -1
- package/dist/assets/homepage/research-credit-feature.js.map +1 -1
- package/dist/assets/homepage/seamless-integration-feature.js.map +1 -1
- package/dist/assets/homepage/sloan.js.map +1 -1
- package/dist/assets/homepage/twitter.js.map +1 -1
- package/dist/assets/homepage/users.js.map +1 -1
- package/dist/assets/homepage/youtube.js.map +1 -1
- package/dist/assets/icons/AccessDataAnywhere.js.map +1 -1
- package/dist/assets/icons/AccessPending.js.map +1 -1
- package/dist/assets/icons/AccessPendingCloud.js.map +1 -1
- package/dist/assets/icons/AddAd.js.map +1 -1
- package/dist/assets/icons/AddToList.js.map +1 -1
- package/dist/assets/icons/Alert.js.map +1 -1
- package/dist/assets/icons/Arrow.js.map +1 -1
- package/dist/assets/icons/AwardScroll.js.map +1 -1
- package/dist/assets/icons/Baseline.js.map +1 -1
- package/dist/assets/icons/Cavatica.js.map +1 -1
- package/dist/assets/icons/CertifiedUser.js.map +1 -1
- package/dist/assets/icons/Challenge.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Checked2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate.js.map +1 -1
- package/dist/assets/icons/Checkbox/Indeterminate2.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked.js.map +1 -1
- package/dist/assets/icons/Checkbox/Unchecked2.js.map +1 -1
- package/dist/assets/icons/ClappingHands.js.map +1 -1
- package/dist/assets/icons/CloudWarning.js.map +1 -1
- package/dist/assets/icons/CommunicateFindings.js.map +1 -1
- package/dist/assets/icons/CreateVersion.js.map +1 -1
- package/dist/assets/icons/DNA_Two.js.map +1 -1
- package/dist/assets/icons/Data2.js.map +1 -1
- package/dist/assets/icons/DoubleQuotes.js.map +1 -1
- package/dist/assets/icons/EmailAddressAdornment.js.map +1 -1
- package/dist/assets/icons/FileWithShield.js.map +1 -1
- package/dist/assets/icons/FileWithShield2.js.map +1 -1
- package/dist/assets/icons/FrontHand.js.map +1 -1
- package/dist/assets/icons/HandWithMoney.js.map +1 -1
- package/dist/assets/icons/IconCopy.js.map +1 -1
- package/dist/assets/icons/IconMinus.js.map +1 -1
- package/dist/assets/icons/IconPlus.js.map +1 -1
- package/dist/assets/icons/Java.js.map +1 -1
- package/dist/assets/icons/MintDoi.js.map +1 -1
- package/dist/assets/icons/MultiFile.js.map +1 -1
- package/dist/assets/icons/MultiFile2.js.map +1 -1
- package/dist/assets/icons/NoData.js.map +1 -1
- package/dist/assets/icons/NoSearchResults.js.map +1 -1
- package/dist/assets/icons/ORCIDIcon.js.map +1 -1
- package/dist/assets/icons/OpenBook.js.map +1 -1
- package/dist/assets/icons/Podium.js.map +1 -1
- package/dist/assets/icons/Python.js.map +1 -1
- package/dist/assets/icons/QueryStructuredData.js.map +1 -1
- package/dist/assets/icons/RLogo.js.map +1 -1
- package/dist/assets/icons/RecordProvenance.js.map +1 -1
- package/dist/assets/icons/RosetteRibbon.js.map +1 -1
- package/dist/assets/icons/SageFullLogo.js.map +1 -1
- package/dist/assets/icons/SearchImage.js.map +1 -1
- package/dist/assets/icons/ShareYourResearch.js.map +1 -1
- package/dist/assets/icons/Sort.js.map +1 -1
- package/dist/assets/icons/StarTrophy.js.map +1 -1
- package/dist/assets/icons/SynapseFullLogo.js.map +1 -1
- package/dist/assets/icons/SynapseIconWhite.js.map +1 -1
- package/dist/assets/icons/SynapseLogoName.js.map +1 -1
- package/dist/assets/icons/TasksIcon.js.map +1 -1
- package/dist/assets/icons/Terminal.js.map +1 -1
- package/dist/assets/icons/ThreeStars.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile.js.map +1 -1
- package/dist/assets/icons/UnpackagableFile2.js.map +1 -1
- package/dist/assets/icons/ValidatedProfile.js.map +1 -1
- package/dist/assets/icons/account-certified.js.map +1 -1
- package/dist/assets/icons/account-enabled-mfa.js.map +1 -1
- package/dist/assets/icons/account-validated.js.map +1 -1
- package/dist/assets/icons/bioChemicalPhysical.js.map +1 -1
- package/dist/assets/icons/chart2.js.map +1 -1
- package/dist/assets/icons/columns.js.map +1 -1
- package/dist/assets/icons/columnsDarkTheme.js.map +1 -1
- package/dist/assets/icons/computationalTool.js.map +1 -1
- package/dist/assets/icons/dataReuse.js.map +1 -1
- package/dist/assets/icons/emailAddressAdornment2.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/error_page/maintenance.js.map +1 -1
- package/dist/assets/icons/error_page/no-access.js.map +1 -1
- package/dist/assets/icons/error_page/unavailable.js.map +1 -1
- package/dist/assets/icons/file.js.map +1 -1
- package/dist/assets/icons/inSilicoModel.js.map +1 -1
- package/dist/assets/icons/institution.js.map +1 -1
- package/dist/assets/icons/json-form-tool-no-submissions.js.map +1 -1
- package/dist/assets/icons/modelSystem.js.map +1 -1
- package/dist/assets/icons/mouse.js.map +1 -1
- package/dist/assets/icons/organizations.js.map +1 -1
- package/dist/assets/icons/person.js.map +1 -1
- package/dist/assets/icons/spatialProfiling.js.map +1 -1
- package/dist/assets/icons/standardDataModel.js.map +1 -1
- package/dist/assets/icons/study-active.js.map +1 -1
- package/dist/assets/icons/study-complete.js.map +1 -1
- package/dist/assets/icons/subscribe_plus.js.map +1 -1
- package/dist/assets/icons/synapse-logo.js.map +1 -1
- package/dist/assets/icons/terms/CheckIcon.js.map +1 -1
- package/dist/assets/icons/translational.js.map +1 -1
- package/dist/assets/icons/tree_horizontal.js.map +1 -1
- package/dist/assets/illustrations/acknowledgement_statements_illustration.js.map +1 -1
- package/dist/assets/illustrations/challenges_illustration.js.map +1 -1
- package/dist/assets/illustrations/cohort_builder_illustration.js.map +1 -1
- package/dist/assets/illustrations/data_access_management_illustration.js.map +1 -1
- package/dist/assets/illustrations/datasets_illustration.js.map +1 -1
- package/dist/assets/illustrations/diagonalLinePattern.js.map +1 -1
- package/dist/assets/illustrations/discussions_illustration.js.map +1 -1
- package/dist/assets/illustrations/docker_illustration.js.map +1 -1
- package/dist/assets/illustrations/donation_illustration.js.map +1 -1
- package/dist/assets/illustrations/favorites_illustration.js.map +1 -1
- package/dist/assets/illustrations/files_illustration.js.map +1 -1
- package/dist/assets/illustrations/following_illustration.js.map +1 -1
- package/dist/assets/illustrations/index.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/left_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/projects_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_dark_illustration.js.map +1 -1
- package/dist/assets/illustrations/right_dot_blob_illustration.js.map +1 -1
- package/dist/assets/illustrations/tables_illustration.js.map +1 -1
- package/dist/assets/illustrations/teams_illustration.js.map +1 -1
- package/dist/assets/illustrations/trash_can_illustration.js.map +1 -1
- package/dist/assets/illustrations/underconstruction_illustration.js.map +1 -1
- package/dist/assets/illustrations/wikis_illustration.js.map +1 -1
- package/dist/assets/logos/other/ad-workbench-logo.js.map +1 -1
- package/dist/assets/logos/other/cavatica-logo.js.map +1 -1
- package/dist/assets/logos/other/pluto-logo.js.map +1 -1
- package/dist/assets/logos/other/terra-logo.js.map +1 -1
- package/dist/assets/mui_components/AccessManagement.js.map +1 -1
- package/dist/assets/mui_components/AccountCertified.js.map +1 -1
- package/dist/assets/mui_components/AccountRegistered.js.map +1 -1
- package/dist/assets/mui_components/AccountValidated.js.map +1 -1
- package/dist/assets/mui_components/ActionKey.js.map +1 -1
- package/dist/assets/mui_components/BioChemicalPhysical.js.map +1 -1
- package/dist/assets/mui_components/Chromatin.js.map +1 -1
- package/dist/assets/mui_components/Clinical.js.map +1 -1
- package/dist/assets/mui_components/ComputationalTool.js.map +1 -1
- package/dist/assets/mui_components/Data.js.map +1 -1
- package/dist/assets/mui_components/DataLocked.js.map +1 -1
- package/dist/assets/mui_components/DataReuse.js.map +1 -1
- package/dist/assets/mui_components/Dataset.js.map +1 -1
- package/dist/assets/mui_components/DatasetCollection.js.map +1 -1
- package/dist/assets/mui_components/Docker.js.map +1 -1
- package/dist/assets/mui_components/GeneExpression.js.map +1 -1
- package/dist/assets/mui_components/GeneVariants.js.map +1 -1
- package/dist/assets/mui_components/HelpChatBubble.js.map +1 -1
- package/dist/assets/mui_components/Imaging.js.map +1 -1
- package/dist/assets/mui_components/InSilicoModel.js.map +1 -1
- package/dist/assets/mui_components/Kinomics.js.map +1 -1
- package/dist/assets/mui_components/LineGraph.js.map +1 -1
- package/dist/assets/mui_components/ModelSystem.js.map +1 -1
- package/dist/assets/mui_components/Other.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile.js.map +1 -1
- package/dist/assets/mui_components/PackagableFile2.js.map +1 -1
- package/dist/assets/mui_components/Proteomics.js.map +1 -1
- package/dist/assets/mui_components/Rat.js.map +1 -1
- package/dist/assets/mui_components/SpatialProfiling.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition1.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition2.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition3.js.map +1 -1
- package/dist/assets/sustainability/darkDialPosition4.js.map +1 -1
- package/dist/assets/sustainability/dialPosition1.js.map +1 -1
- package/dist/assets/sustainability/dialPosition2.js.map +1 -1
- package/dist/assets/sustainability/dialPosition3.js.map +1 -1
- package/dist/assets/sustainability/dialPosition4.js.map +1 -1
- package/dist/assets/themed_icons/Active.js.map +1 -1
- package/dist/assets/themed_icons/Chart.js.map +1 -1
- package/dist/assets/themed_icons/Close.js.map +1 -1
- package/dist/assets/themed_icons/Collapse.js.map +1 -1
- package/dist/assets/themed_icons/Columns.js.map +1 -1
- package/dist/assets/themed_icons/ColumnsDark.js.map +1 -1
- package/dist/assets/themed_icons/Database.js.map +1 -1
- package/dist/assets/themed_icons/Download.js.map +1 -1
- package/dist/assets/themed_icons/Expand.js.map +1 -1
- package/dist/assets/themed_icons/Explore.js.map +1 -1
- package/dist/assets/themed_icons/ExternalLink.js.map +1 -1
- package/dist/assets/themed_icons/Filter.js.map +1 -1
- package/dist/assets/themed_icons/Program.js.map +1 -1
- package/dist/assets/themed_icons/Project.js.map +1 -1
- package/dist/assets/themed_icons/Publication.js.map +1 -1
- package/dist/assets/themed_icons/Search.js.map +1 -1
- package/dist/assets/themed_icons/Settings.js.map +1 -1
- package/dist/assets/themed_icons/SortDown.js.map +1 -1
- package/dist/assets/themed_icons/SortUp.js.map +1 -1
- package/dist/assets/themed_icons/SqlEditorIcon.js.map +1 -1
- package/dist/assets/themed_icons/Study.js.map +1 -1
- package/dist/assets/themed_icons/ToolClinical.js.map +1 -1
- package/dist/assets/themed_icons/ToolComputational.js.map +1 -1
- package/dist/assets/themed_icons/ToolExperimental.js.map +1 -1
- package/dist/assets/themed_icons/VerticalDots.js.map +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +10 -11
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +73 -76
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/AuthenticatedRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/LockAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
- package/dist/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadge/AccountLevelBadge.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgement.js.map +1 -1
- package/dist/components/AcknowledgementsPage/StudyAcknowledgements.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/AclEditor/AclEditorSkeleton.js.map +1 -1
- package/dist/components/AclEditor/PermissionLevelMenu.js.map +1 -1
- package/dist/components/AclEditor/ReadOnlyPermissionLevel.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js +2 -4
- package/dist/components/AclEditor/ResourceAccessAndUserGroupHeader.js.map +1 -1
- package/dist/components/AclEditor/ResourceAccessItem.js.map +1 -1
- package/dist/components/AclEditor/useSortResourceAccessList.js.map +1 -1
- package/dist/components/AclEditor/useUpdateAcl.js.map +1 -1
- package/dist/components/AdaptiveTwoColumnLayout/AdaptiveTwoColumnLayout.js.map +1 -1
- package/dist/components/AddToDownloadListV2.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/LoginFlowBackButton.js.map +1 -1
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/LoginMethodButton.js.map +1 -1
- package/dist/components/Authentication/Logout.js.map +1 -1
- package/dist/components/Authentication/OneTimePasswordForm.js.map +1 -1
- package/dist/components/Authentication/PasswordField.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/Reset2FAWarning.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorAuthSettingsPanel.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorSecretDialog.js.map +1 -1
- package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.js.map +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/CTASectionWrapper/CTASectionWrapper.js.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Desktop.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.Mobile.js.map +1 -1
- package/dist/components/CardDeck/CardDeck.js.map +1 -1
- package/dist/components/CardDeck/TableQueryCardDeck.js.map +1 -1
- package/dist/components/CardGridWithLinks/CardGridWithLinks.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationAnswer.js.map +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js.map +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js.map +1 -1
- package/dist/components/ChallengeRegisterButton/ChallengeRegisterButton.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/AddExternalRepo.js.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +62 -64
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionCommitList.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamSearch.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +96 -102
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/OpenMembershipInvitation.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/RegistrationSuccessful.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePassword.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopover.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CitationPopover/useCitation.js.map +1 -1
- package/dist/components/ColorGradient/ColorGradient.js.map +1 -1
- package/dist/components/ColoredBulletListItem/ColoredBulletListItem.js.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/ComponentCollapse.js.map +1 -1
- package/dist/components/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiePreferencesDialog.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.d.ts.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +9 -9
- package/dist/components/CookiesNotification/CookiesNotification.js.map +1 -1
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/CopyToClipboardInput/CopyToClipboardInput.js.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizardUtils.js.map +1 -1
- package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
- package/dist/components/CreateProjectModal/ProjectVisibilityRadioGroup.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizardUtils.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableTypeSelection.js.map +1 -1
- package/dist/components/CreateTableViewWizard/ViewTypeSelection.js.map +1 -1
- package/dist/components/CrispChat/CrispChat.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +28 -31
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/DataGridTypes.js.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.d.ts +2 -0
- package/dist/components/DataGrid/DataGridWebSocket.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridWebSocket.js +9 -10
- package/dist/components/DataGrid/DataGridWebSocket.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +1 -1
- package/dist/components/DataGrid/StartGridSession.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts +3 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +219 -211
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridMenuButton/GridMenuButton.js.map +1 -1
- package/dist/components/DataGrid/components/GridSessionSelectionField.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/components/ValidationAlert.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +2 -0
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridReplicaUsers.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useRemoteSelections.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/useCRDTModelView.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts +2 -0
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +12 -2
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useInitializeGridConnection.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithTable.js.map +1 -1
- package/dist/components/DataGrid/utils/DataGridUtils.js.map +1 -1
- package/dist/components/DataGrid/utils/MessageCounter.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/calculateColumnWidth.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeReplicaSelectionModel.js.map +1 -1
- package/dist/components/DataGrid/utils/convertActionToModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/createTestModel.js.map +1 -1
- package/dist/components/DataGrid/utils/enrichRowsWithChangeInfo.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellAuthorSid.js.map +1 -1
- package/dist/components/DataGrid/utils/getCellClassName.js.map +1 -1
- package/dist/components/DataGrid/utils/getChangeTooltipText.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -1
- package/dist/components/DataGrid/utils/getReplicaCategory.js.map +1 -1
- package/dist/components/DataGrid/utils/isValidationUpToDateForRow.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxMessage.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxNotification.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequest.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxRequestComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponse.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
- package/dist/components/DataGrid/utils/logicalTimestampToString.js.map +1 -1
- package/dist/components/DataGrid/utils/mapOperationsToModelChanges.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/modelRowsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/parseFreeTextUsingJsonSchemaType.js.map +1 -1
- package/dist/components/DataGrid/utils/replicaSelectionToGridSelection.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DatasetJsonLdScript.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/Dialog/ConfirmCloseWithoutSavingDialog.js.map +1 -1
- package/dist/components/DialogBase.js.map +1 -1
- package/dist/components/DirectDownload/DirectDownload.js.map +1 -1
- package/dist/components/DirectDownload/FileEntityDirectDownload.js.map +1 -1
- package/dist/components/DirectDownloadButton.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/AvailableForDownloadTable.js.map +1 -1
- package/dist/components/DownloadCart/CreatePackageV2.js.map +1 -1
- package/dist/components/DownloadCart/DirectProgrammaticDownload.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadDetails.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListStats.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js.map +1 -1
- package/dist/components/DownloadCart/EnableTwoFaRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/ShowDownloadV2.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/fileNameUtils.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/DynamicForm/DynamicForm.js.map +1 -1
- package/dist/components/DynamicForm/DynamicFormModal.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemCard.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemLayout.js.map +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js.map +1 -1
- package/dist/components/Ecosystem/TableQueryEcosystem.js.map +1 -1
- package/dist/components/EntityAclEditor/CreateOrDeleteLocalSharingSettingsButton.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js.map +1 -1
- package/dist/components/EntityAclEditor/InheritanceMessage.js.map +1 -1
- package/dist/components/EntityAclEditor/OpenData.js.map +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +68 -70
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +32 -35
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/Breadcrumbs.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinder.js +134 -136
- package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
- package/dist/components/EntityFinder/EntityFinderModal.js.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/VersionSelectionType.js.map +1 -1
- package/dist/components/EntityFinder/details/EntityDetailsList.js +20 -20
- package/dist/components/EntityFinder/details/EntityDetailsList.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/ReferenceDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +67 -67
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js +1 -1
- package/dist/components/EntityFinder/details/view/VersionColumnHeader.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/DateCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderCheckboxCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityFinderVersionCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityTypeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityDirectDownloadCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/UserBadgeCell.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +80 -80
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +31 -31
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityFinder/useEntitySelection.js.map +1 -1
- package/dist/components/EntityForm/EntityForm.js.map +1 -1
- package/dist/components/EntityHeaderTable/DebouncedInput.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTableCellRenderers.js.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/EntityHeaderTable/useEntityHeaderTableState.js.map +1 -1
- package/dist/components/EntityIcon.js.map +1 -1
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySubjectsSelector/EntitySubjectsSelector.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.js.map +1 -1
- package/dist/components/EntityTreeTable/components/AutoLoadMore.js.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityBadgeIconsCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableContext.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableRow.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useEntityTreeState.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableData.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTreeOperationsWithDirectFetch.js.map +1 -1
- package/dist/components/EntityUpload/EntityUpload.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadModal.js +29 -31
- package/dist/components/EntityUpload/EntityUploadModal.js.map +1 -1
- package/dist/components/EntityUpload/EntityUploadPromptDialog.js.map +1 -1
- package/dist/components/EntityUpload/ExternalObjectStoreCredentialsForm.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/EntityUpload/LinkToURL.js.map +1 -1
- package/dist/components/EntityUpload/ProjectStorageLimitAlert.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditor.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewScopeEditorModal.js.map +1 -1
- package/dist/components/Evaluation/CreatedOnByUserDiv.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditorPage.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditorList.js.map +1 -1
- package/dist/components/Evaluation/input_models/models.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/EvaluationFinder/EvaluationFinder.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.d.ts.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +24 -30
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataPlots.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FeaturedDataTabs.js.map +1 -1
- package/dist/components/FeaturedDataTabs/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/components/FeaturedDataTabs/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/components/FeaturedResearch/FeaturedResearch.js +16 -18
- package/dist/components/FeaturedResearch/FeaturedResearch.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolCard.js.map +1 -1
- package/dist/components/FeaturedToolsList/FeaturedToolsList.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileEntityPreview.js.map +1 -1
- package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
- package/dist/components/FilePreview/HtmlPreview/HtmlPreview.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/FilePreview/PreviewRendererType.js.map +1 -1
- package/dist/components/FilePreview/PreviewUtils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionSearchResult.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/Forum/ForumPage.js.map +1 -1
- package/dist/components/Forum/ForumTable.js.map +1 -1
- package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
- package/dist/components/Forum/SubscribersModal.js.map +1 -1
- package/dist/components/ForumSearch/ForumSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearchUtils.js.map +1 -1
- package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js.map +1 -1
- package/dist/components/GenericCard/CroissantButton/CroissantButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/GenericCardIcon.js.map +1 -1
- package/dist/components/GenericCard/GenericCardTitle.js.map +1 -1
- package/dist/components/GenericCard/LabelMaybeWithIcon.js.map +1 -1
- package/dist/components/GenericCard/Linkify.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GenericCard/useResolvedSynapseEntity.js.map +1 -1
- package/dist/components/Goals/Goals.Desktop.js.map +1 -1
- package/dist/components/Goals/Goals.Mobile.js.map +1 -1
- package/dist/components/Goals/Goals.js +25 -27
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Mobile.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.js +14 -16
- package/dist/components/GoalsV2/GoalsV2.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Desktop.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.Mobile.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +14 -16
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js.map +1 -1
- package/dist/components/GoogleMap/GoogleMap.js.map +1 -1
- package/dist/components/GoogleMap/SynapseUserMarker.js.map +1 -1
- package/dist/components/HasAccess/AccessIcon.js +10 -10
- package/dist/components/HasAccess/AccessIcon.js.map +1 -1
- package/dist/components/HasAccess/HasAccessV2.js.map +1 -1
- package/dist/components/HasAccess/useHasAccess.js.map +1 -1
- package/dist/components/HeaderCard/HeaderCardV2.js.map +1 -1
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IDUReport/IDUReport.js.map +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/IconList.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/IconSvgButton.js.map +1 -1
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js +7 -9
- package/dist/components/ImageCardGridWithLinks/ImageCardGridWithLinks.js.map +1 -1
- package/dist/components/ImageFromSynapseTable.js.map +1 -1
- package/dist/components/InteractiveCopyIdsIcon.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditorModal.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/JsonLdScript.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldDescriptionTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldItemTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTitleTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/DescriptionFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ErrorListTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldDescriptionTable.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldErrorTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/BooleanWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateTimeWidget.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/Markdown/GovernanceMarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/MarkdownGithub.js.map +1 -1
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +75 -106
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +14 -4
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +38 -37
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/MarkdownWidget.js.map +1 -1
- package/dist/components/Markdown/SynapseWikiContext.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/Bookmarks.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownEntityPreview.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownIDUReport.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownProvenanceGraph.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseImage.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownSynapseTable.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownTableOfContents.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownUserOrTeamBadge.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownVideo.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.FormSchema.js.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/MuiContainer.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
- package/dist/components/OAuthClientManagement/CreateOAuthClient.js.map +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
- package/dist/components/OrientationBanner/OrientationBanner.js.map +1 -1
- package/dist/components/PageProgress/PageProgress.js.map +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/DotPlot.js.map +1 -1
- package/dist/components/Plot/Plot.d.ts +12 -1
- package/dist/components/Plot/Plot.d.ts.map +1 -1
- package/dist/components/Plot/Plot.js +5 -1
- package/dist/components/Plot/Plot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +12 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.js +54 -0
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -0
- package/dist/components/Plot/ThemesPlot.js.map +1 -1
- package/dist/components/Plot/UpsetPlot.js.map +1 -1
- package/dist/components/Plot/index.d.ts +3 -1
- package/dist/components/Plot/index.d.ts.map +1 -1
- package/dist/components/Plot/index.js +2 -1
- package/dist/components/Plot/safe-react-plotly-factory.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js.map +1 -1
- package/dist/components/PortalFeatureHighlights/PortalFeatureHighlights.js.map +1 -1
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js +4 -6
- package/dist/components/PortalFeaturedPartners/PortalFeaturedPartners.js.map +1 -1
- package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
- package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/PortalSectionHeader/PortalSectionHeader.js.map +1 -1
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js +69 -69
- package/dist/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/Programs/Programs.Desktop.js.map +1 -1
- package/dist/components/Programs/Programs.Mobile.js.map +1 -1
- package/dist/components/Programs/Programs.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ActivityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/EntityPlaceholderNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExpandGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ExternalGraphNodeLabel.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceEntityIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraphUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js +13 -13
- package/dist/components/ProvenanceGraph/ProvenanceUtils.js.map +1 -1
- package/dist/components/ProvenanceGraph/UndefinedNodeLabel.js.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryCount/QueryCount.js.map +1 -1
- package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
- package/dist/components/QuerySortSelector.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/NoContentPlaceholder.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationContext.js.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +27 -27
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapperLoadingScreen.js.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/TableRowSelectionState.js.map +1 -1
- package/dist/components/QueryWrapper/ViewMoreQueryResultsButton.js.map +1 -1
- package/dist/components/QueryWrapper/generateEncodedPathAndQueryForSelectedFacetURL.js.map +1 -1
- package/dist/components/QueryWrapper/useComputeRowSelectionPrimaryKey.js.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useGetQueryMetadata.js.map +1 -1
- package/dist/components/QueryWrapper/useHasFacetedSelectColumn.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RORInstitutionField/RORInstitutionField.js.map +1 -1
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js +6 -8
- package/dist/components/RecentPublicationsGrid/RecentPublicationsGrid.js.map +1 -1
- package/dist/components/RegisterPageLogoutPrompt/RegisterPageLogoutPrompt.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCard.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardMedium.js.map +1 -1
- package/dist/components/ReleaseCard/ReleaseCardUtils.js.map +1 -1
- package/dist/components/RenderIfInView/RenderIfInView.js.map +1 -1
- package/dist/components/ResizableContainer/ResizableContainer.js.map +1 -1
- package/dist/components/ResizableContainer/hooks/useResizable.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js.map +1 -1
- package/dist/components/Resources/Resources.Mobile.js.map +1 -1
- package/dist/components/Resources/Resources.js +8 -11
- package/dist/components/Resources/Resources.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RowDataTable/RowDataTableWithQuery.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SageResourcesPopover/SageResourcesPopover.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/AdditionalPropertyContext.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/SynapseAnnotationsWrapIfAdditionalTemplate.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/widget/TextWidget.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementTextInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessRequirementWikiInstructions.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/AccessorRequirements.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
- package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/ShowMore/ShowMore.js.map +1 -1
- package/dist/components/SignInButton.js.map +1 -1
- package/dist/components/SignInRequiredModal/SignInRequiredModal.js.map +1 -1
- package/dist/components/Skeleton/SkeletonButton.js.map +1 -1
- package/dist/components/Skeleton/SkeletonInlineBlock.js.map +1 -1
- package/dist/components/Skeleton/SkeletonParagraph.js.map +1 -1
- package/dist/components/Skeleton/SkeletonTable.js.map +1 -1
- package/dist/components/SmartLink/SmartButton.js.map +1 -1
- package/dist/components/SmartLink/SmartLink.js.map +1 -1
- package/dist/components/SmartLink/useSmartLink.js.map +1 -1
- package/dist/components/SourceAppImage.js.map +1 -1
- package/dist/components/SpinnerButton/SpinnerButton.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditor.js.map +1 -1
- package/dist/components/SqlDefinedTableEditor/SqlDefinedTableEditorModal.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/StepperDialog/StepperDialog.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditor.js.map +1 -1
- package/dist/components/SubmissionViewScopeEditor/SubmissionViewScopeEditorModal.js.map +1 -1
- package/dist/components/SubscriptionPage/ForumTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionItem.js.map +1 -1
- package/dist/components/SubscriptionPage/SubscriptionPage.js.map +1 -1
- package/dist/components/SubscriptionPage/ThreadTopic.js.map +1 -1
- package/dist/components/SubscriptionPage/Topic.js.map +1 -1
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js.map +1 -1
- package/dist/components/SustainabilityScorecard/Dial.js.map +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardUtils.js.map +1 -1
- package/dist/components/SynapseChat/AccessLevelMenu.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/SynapseChat/extractMessageFromTraceEvent.js.map +1 -1
- package/dist/components/SynapseChat/useChatState.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseLinksColumn.js.map +1 -1
- package/dist/components/SynapseForm/DataDebug.js.map +1 -1
- package/dist/components/SynapseForm/Header.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseForm/SummaryTable.js.map +1 -1
- package/dist/components/SynapseForm/SynapseForm.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormCheckboxesWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormRadioWidget.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormSubmissionGrid.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormUtils.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseForm/types.js.map +1 -1
- package/dist/components/SynapseForm/useGetFormPropsFromSearchParams.js.map +1 -1
- package/dist/components/SynapseHomepageV2/FloatingBlobsBackground.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HomepageStyles.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbers.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseByTheNumbersItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatureItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasets.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeatures.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +18 -21
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageSearch.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageV2.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdrops.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHotdropsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInAction.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePartners.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlan.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlanContent.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlans.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapsePlansPage.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseSearchChips.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjects.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +78 -78
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanel.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageRouter.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/chipStyles.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlButton.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControlPanel.js.map +1 -1
- package/dist/components/SynapseTable/CustomControls/CustomControls.js.map +1 -1
- package/dist/components/SynapseTable/EntityIDColumnCopyIcon.js.map +1 -1
- package/dist/components/SynapseTable/ExpandCollapseButton.js.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/NoContentAvailable.js.map +1 -1
- package/dist/components/SynapseTable/NoContentPlaceholderType.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +4 -4
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
- package/dist/components/SynapseTable/SearchResultsNotFound.js.map +1 -1
- package/dist/components/SynapseTable/SearchV2.js.map +1 -1
- package/dist/components/SynapseTable/SqlEditor.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EntityIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/EvaluationIdRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/ComplexJSONRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONArrayRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONObjectRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONPrimitiveRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONRendererUtils.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/JSON/JSONTableCellRenderer.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/UserIdList.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableConstants.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableContext.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TableIsEmpty.js.map +1 -1
- package/dist/components/SynapseTable/TablePagination.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControlsUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorCheckboxCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorUtils.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +131 -133
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/datasets/EntityFetchErrorCell.js.map +1 -1
- package/dist/components/SynapseTable/export/ADDiscoveryPortalInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +48 -51
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformDisclaimer.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadLoginModal.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/SynapseTable/useTableSort.js.map +1 -1
- package/dist/components/SystemUseNotification/SystemUseNotification.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +4 -4
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/DefaultValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/FieldWithRecommendedMinimum.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +9 -9
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DefaultValueValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EnumValuesValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableBody.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/TeamBadge.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
- package/dist/components/TemplateComponent.js.map +1 -1
- package/dist/components/TemporaryBanner/TemporaryBanner.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js.map +1 -1
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextFieldWithWordLimit.js.map +1 -1
- package/dist/components/TextToComponentCollapse.js.map +1 -1
- package/dist/components/ThemeGallery/ThemeGallery.js.map +1 -1
- package/dist/components/TimelinePlot/TimelineLegendItem.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePhase.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlot.js.map +1 -1
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
- package/dist/components/TimelinePlot/phasesQueryResponseData.js.map +1 -1
- package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
- package/dist/components/TotalQueryResults.js.map +1 -1
- package/dist/components/UserCard/Avatar.js.map +1 -1
- package/dist/components/UserCard/UserBadge.js.map +1 -1
- package/dist/components/UserCard/UserCard.js.map +1 -1
- package/dist/components/UserCard/UserCardContextMenu.js.map +1 -1
- package/dist/components/UserCard/UserCardLarge.js.map +1 -1
- package/dist/components/UserCard/UserCardMedium.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Mobile.js.map +1 -1
- package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/components/UserOrTeamBadge/UserOrTeamBadge.js.map +1 -1
- package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
- package/dist/components/UserProfileLinks/UserChallenges.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProfileLinks.js.map +1 -1
- package/dist/components/UserProfileLinks/UserProjects.js.map +1 -1
- package/dist/components/UserProfileLinks/UserTeams.js.map +1 -1
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/Webhook/WebhookVerificationDialog.js.map +1 -1
- package/dist/components/WikiMarkdownEditor/WikiMarkdownEditor.js.map +1 -1
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonDescription.js.map +1 -1
- package/dist/components/WizardChoiceButton/WizardChoiceButtonGroup.js.map +1 -1
- package/dist/components/WordPress/WordPressLatestPostChip.js.map +1 -1
- package/dist/components/WordPress/useWordPressCategories.js.map +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/AccessApprovalsTable.js.map +1 -1
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequestSubmissionTable.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementSearchBox/AccessRequirementSearchBox.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/RejectDataAccessRequestModal.js.map +1 -1
- package/dist/components/dataaccess/RejectProfileValidationRequestModal.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/SubmissionSortStateTranslator.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/doi/DoiFormSchemas.js.map +1 -1
- package/dist/components/doi/PrivateEntityDoiWarning.js.map +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUI.js +30 -32
- package/dist/components/download_list/DownloadConfirmationUI.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/download_list/index.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/metadata/EntityAnnotationKey.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/metadata/MetadataTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/CitationsDialog.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js.map +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useDataCiteUsage.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/error/ErrorChip.js.map +1 -1
- package/dist/components/error/ErrorPage.js +24 -24
- package/dist/components/error/ErrorPage.js.map +1 -1
- package/dist/components/error/RouteErrorBoundary.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js.map +1 -1
- package/dist/components/error/SynapseObjectDOIInfo.js.map +1 -1
- package/dist/components/favorites/FavoriteButton.js.map +1 -1
- package/dist/components/favorites/FavoritesPage.js.map +1 -1
- package/dist/components/file/upload/BasicFileHandleUpload.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js.map +1 -1
- package/dist/components/file/upload/UploadFilePanel.js.map +1 -1
- package/dist/components/form/RadioGroupWithOtherString.js.map +1 -1
- package/dist/components/home_page/ExpandableContent.js.map +1 -1
- package/dist/components/index.js +48 -47
- package/dist/components/layout/InfiniteTableLayout.js.map +1 -1
- package/dist/components/layout/SWCHeader.js.map +1 -1
- package/dist/components/layout/SWCPageLayout.js.map +1 -1
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/row_renderers/ObservationCard.js.map +1 -1
- package/dist/components/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/components/row_renderers/utils/ChipContainer.js.map +1 -1
- package/dist/components/styled/HoverPopover.js.map +1 -1
- package/dist/components/styled/InlineBadge.js.map +1 -1
- package/dist/components/styled/InputSizedButton.js.map +1 -1
- package/dist/components/styled/LargeButton.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/styled/LightTooltip.js.map +1 -1
- package/dist/components/styled/StyledFormControl.js.map +1 -1
- package/dist/components/styled/StyledPopover.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/styled/WideButton.js.map +1 -1
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +39 -42
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -1
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -1
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +11 -11
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -1
- package/dist/components/table/CsvTableDescriptorForm/CsvTableDescriptorForm.js.map +1 -1
- package/dist/components/trash/TrashCanList.js.map +1 -1
- package/dist/components/utils/Blocker.js.map +1 -1
- package/dist/components/utils/ConditionalWrapper.js.map +1 -1
- package/dist/components/utils/VisibilityObserver.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/EntityColumnImage.js.map +1 -1
- package/dist/components/widgets/FileHandleLink.js.map +1 -1
- package/dist/components/widgets/ImageFileHandle.js.map +1 -1
- package/dist/components/widgets/LoginAwareButton.js.map +1 -1
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/SynapseVideo.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainerSkeleton.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterSkeleton.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +3 -3
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +41 -41
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/features/curator/GridPage/GridPage.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageRouter.js.map +1 -1
- package/dist/features/curator/GridPage/components/GridPageTitle.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/UserOrTeamChip.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +5 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +227 -181
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +3 -0
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGetOrCreateGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +5 -0
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +2 -2
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getLatestGridSessionForSource.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/taskHasAssignee.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- package/dist/index.js +54 -53
- package/dist/index.js.map +1 -1
- package/dist/mocks/MockAccessApprovals.js.map +1 -1
- package/dist/mocks/MockSynapseContext.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirementAcls.js.map +1 -1
- package/dist/mocks/accessRequirement/mockAccessRequirements.js.map +1 -1
- package/dist/mocks/applicationSessionContext/MockApplicationSessionContext.js.map +1 -1
- package/dist/mocks/challenge/mockChallenge.js.map +1 -1
- package/dist/mocks/chat/mockChat.js.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
- package/dist/mocks/dataaccess/MockResearchProject.js.map +1 -1
- package/dist/mocks/dataaccess/MockSubmission.js.map +1 -1
- package/dist/mocks/dataaccess/mockAccessRequest.js.map +1 -1
- package/dist/mocks/discussion/mock_discussion.js.map +1 -1
- package/dist/mocks/doi/MockDoi.js.map +1 -1
- package/dist/mocks/entity/index.js.map +1 -1
- package/dist/mocks/entity/mockDataset.js.map +1 -1
- package/dist/mocks/entity/mockDatasetCollection.js.map +1 -1
- package/dist/mocks/entity/mockEntity.js.map +1 -1
- package/dist/mocks/entity/mockEvaluationQueue.js.map +1 -1
- package/dist/mocks/entity/mockFileEntity.js.map +1 -1
- package/dist/mocks/entity/mockFileEntityACLVariants.js.map +1 -1
- package/dist/mocks/entity/mockFileView.js.map +1 -1
- package/dist/mocks/entity/mockGeneratedEntityData.js.map +1 -1
- package/dist/mocks/entity/mockProject.js.map +1 -1
- package/dist/mocks/entity/mockProjectView.js.map +1 -1
- package/dist/mocks/entity/mockReleaseCardsTable.js.map +1 -1
- package/dist/mocks/entity/mockRootEntity.js.map +1 -1
- package/dist/mocks/entity/mockTableEntity.js.map +1 -1
- package/dist/mocks/faker/fakerUtils.js.map +1 -1
- package/dist/mocks/faker/generateDiscussion.js.map +1 -1
- package/dist/mocks/faker/generateEvaluation.js.map +1 -1
- package/dist/mocks/faker/generateFakeEntity.js.map +1 -1
- package/dist/mocks/faker/generateSubscription.js.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/mockCertificationQuiz.js.map +1 -1
- package/dist/mocks/mockDataCatalogQuery.js.map +1 -1
- package/dist/mocks/mockFileViewQuery.js.map +1 -1
- package/dist/mocks/mockOAuthClientAcls.js.map +1 -1
- package/dist/mocks/mockQueryResponseData.js.map +1 -1
- package/dist/mocks/mockQueryResponseDataWithManyEnumFacets.js.map +1 -1
- package/dist/mocks/mockSchema.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/mockShortIo.js.map +1 -1
- package/dist/mocks/mockSourceAppConfigQuery.js.map +1 -1
- package/dist/mocks/mockSubscription.js.map +1 -1
- package/dist/mocks/mockWiki.js.map +1 -1
- package/dist/mocks/mockWikiPageKey.js.map +1 -1
- package/dist/mocks/mock_drug_tool_data.js.map +1 -1
- package/dist/mocks/mock_file_handle.js.map +1 -1
- package/dist/mocks/mock_file_statistics.js.map +1 -1
- package/dist/mocks/mock_has_access_data.js.map +1 -1
- package/dist/mocks/mock_upload_destination.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/challengeHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/changePasswordHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/dataciteHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/discussionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/doiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/evaluationHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/messageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/oauthClientAclHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/personalAccessTokenHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/projectStorageHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/realmHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/researchProjectHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/shortIoHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryService.js.map +1 -1
- package/dist/mocks/msw/handlers/teamHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/termsOfServiceHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/webhookHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/wikiHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/mocks/msw/server.d.ts +1 -1
- package/dist/mocks/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js.map +1 -1
- package/dist/mocks/msw/util/BasicMockedCrudService.js.map +1 -1
- package/dist/mocks/oauth/MockClient.js.map +1 -1
- package/dist/mocks/personalAccessToken/mockPersonalAccessToken.js.map +1 -1
- package/dist/mocks/projectStorage/mockProjectStorageLimits.js.map +1 -1
- package/dist/mocks/provenance/mockActivity.js.map +1 -1
- package/dist/mocks/query/defaultFileViewColumnModels.js.map +1 -1
- package/dist/mocks/query/mockFeaturedDataTabsQueryData.js.map +1 -1
- package/dist/mocks/query/mockHomepageQueryResultData.js.map +1 -1
- package/dist/mocks/query/mockProjectViewQueryResults.js.map +1 -1
- package/dist/mocks/query/mockRejectionReasonsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockReleaseCardsTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/mocks/query/mock_query_data.js.map +1 -1
- package/dist/mocks/query/syn16787123.js.map +1 -1
- package/dist/mocks/query/syn17328596.js.map +1 -1
- package/dist/mocks/query/syn51735464.js.map +1 -1
- package/dist/mocks/query/syn51735464GroupBySpecies.js.map +1 -1
- package/dist/mocks/realm/mockRealmPrincipal.js.map +1 -1
- package/dist/mocks/team/mockTeam.js.map +1 -1
- package/dist/mocks/termsOfService/mockTermsOfService.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/mocks/usergroup/mockUserGroup.js.map +1 -1
- package/dist/ror-client/index.js.map +1 -1
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/stories/ToastDemo.js.map +1 -1
- package/dist/stories/stubs/Alert/MuiAlert.js.map +1 -1
- package/dist/stories/stubs/Button/MuiButton.js.map +1 -1
- package/dist/stories/stubs/Dialog/MuiDialog.js.map +1 -1
- package/dist/stories/stubs/TextField/MuiTextField.js.map +1 -1
- package/dist/stories/stubs/Tooltip/MuiTooltip.js.map +1 -1
- package/dist/synapse-client/HttpClient.js.map +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +61 -69
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/SynapseClientUtils.js.map +1 -1
- package/dist/synapse-queries/InfiniteQueryUtils.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
- package/dist/synapse-queries/QueryMatching.test-utils.js.map +1 -1
- package/dist/synapse-queries/asynchronous/usePollAsynchronousJob.js.map +1 -1
- package/dist/synapse-queries/auth/useChangePassword.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useResetPassword.js.map +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/croissant/useGetCroissantUrl.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +12 -2
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessApprovals.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useGetApprovedSubmissionInfo.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useRestrictionInformation.js.map +1 -1
- package/dist/synapse-queries/docker/useGetDockerTag.js.map +1 -1
- package/dist/synapse-queries/doi/useDOI.js.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useActionsRequiredForTableQuery.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +1 -1
- package/dist/synapse-queries/entity/useEntityBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useExportTableQueryToAnalysisPlatform.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToTerra.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityActionsRequired.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChallenge.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityChildren.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityForum.js.map +1 -1
- package/dist/synapse-queries/entity/useGetEntityHeaders.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/entity/useProjectStorage.js.map +1 -1
- package/dist/synapse-queries/entity/useSchema.js.map +1 -1
- package/dist/synapse-queries/evaluation/useEvaluation.js.map +1 -1
- package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
- package/dist/synapse-queries/file/UploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useDirectUploadToS3.js.map +1 -1
- package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
- package/dist/synapse-queries/file/useFiles.js.map +1 -1
- package/dist/synapse-queries/file/useSynapseMultipartUpload.js.map +1 -1
- package/dist/synapse-queries/file/useUploadDestination.js.map +1 -1
- package/dist/synapse-queries/forum/useForum.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/github/useGithub.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useExportGrid.js.map +1 -1
- package/dist/synapse-queries/grid/useGridPresignedUrl.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/grid/useImportCsvIntoGrid.js.map +1 -1
- package/dist/synapse-queries/message/useMessage.js.map +1 -1
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/useListPortals.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/provenance/useGetActivityForEntity.js.map +1 -1
- package/dist/synapse-queries/realm/useRealmPrincipals.js.map +1 -1
- package/dist/synapse-queries/ror/index.js.map +1 -1
- package/dist/synapse-queries/search/useSearch.js.map +1 -1
- package/dist/synapse-queries/search/useSuggestion.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useColumnModel.js.map +1 -1
- package/dist/synapse-queries/table/useDefiningSql.js.map +1 -1
- package/dist/synapse-queries/table/useDownloadTable.js.map +1 -1
- package/dist/synapse-queries/table/useGetCsvPreview.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserProjects.js.map +1 -1
- package/dist/synapse-queries/user/useGetUserTeams.js.map +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js.map +1 -1
- package/dist/synapse-queries/user/useProjects.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/synapse-queries/user/useUserGroupHeader.js.map +1 -1
- package/dist/synapse-queries/verificationSubmission/useVerificationSubmission.js.map +1 -1
- package/dist/synapse-queries/webhook/useWebhook.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/testutils/ComponentToBePassedPropsCustomMatcher.js.map +1 -1
- package/dist/testutils/IsEditingStoreTestUtils.js +17 -0
- package/dist/testutils/IsEditingStoreTestUtils.js.map +1 -0
- package/dist/testutils/LocationTracker.js.map +1 -1
- package/dist/testutils/MarkdownSynapseUtils.js.map +1 -1
- package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
- package/dist/testutils/TestingLibraryUtils.js +18 -16
- package/dist/testutils/TestingLibraryUtils.js.map +1 -1
- package/dist/testutils/muiDatePickerMock.js.map +1 -1
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/mergeTheme.js.map +1 -1
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/theme/spreadSx.js.map +1 -1
- package/dist/theme/typography/Link.js.map +1 -1
- package/dist/theme/typography/Typography.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.d.ts.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +11 -11
- package/dist/utils/AppUtils/AppUtils.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionContext.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/AuthenticationGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/OrientationBannerConstants.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/analytics/sendAnalyticsEvent.js.map +1 -1
- package/dist/utils/analytics/sendSearchEvent.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/challenge/evaluation/EvaluationUtils.js.map +1 -1
- package/dist/utils/context/AridhiaContext.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/context/FullContextProvider.js.map +1 -1
- package/dist/utils/context/GlobalIsEditingContext.js.map +1 -1
- package/dist/utils/context/SynapseContext.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/DateFormatter.js.map +1 -1
- package/dist/utils/functions/DateTimeUtils.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/GridApiUtils.js.map +1 -1
- package/dist/utils/functions/IsEqualTreatUndefinedAsMissing.js.map +1 -1
- package/dist/utils/functions/IsExternalLink.js.map +1 -1
- package/dist/utils/functions/ObjectUtils.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RealmUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/ResolveLinkEntity.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.test-utils.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/TableColumnSchemaUtils.js.map +1 -1
- package/dist/utils/functions/calculateFriendlyFileSize.js.map +1 -1
- package/dist/utils/functions/colorPalette.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/dispatchDownloadListChangeEvent.js.map +1 -1
- package/dist/utils/functions/generateCsrfToken.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js +3 -3
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getPrincipalDisplayName.js.map +1 -1
- package/dist/utils/functions/getSynapseEntityUrl.js.map +1 -1
- package/dist/utils/functions/getSynapseWebClientLink.js.map +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useConfirmItems.js.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.d.ts.map +1 -1
- package/dist/utils/hooks/useCookiePreferences.js +24 -23
- package/dist/utils/hooks/useCookiePreferences.js.map +1 -1
- package/dist/utils/hooks/useCreateShortUrl.js.map +1 -1
- package/dist/utils/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useDirectDownloadHandler.js.map +1 -1
- package/dist/utils/hooks/useGetEntityMetadata.js.map +1 -1
- package/dist/utils/hooks/useGetGoalData.js +2 -4
- package/dist/utils/hooks/useGetGoalData.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/hooks/useImageUrlUtils.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useTableQueryReducer.js.map +1 -1
- package/dist/utils/hooks/useIsBot.js.map +1 -1
- package/dist/utils/hooks/useJsonLdScriptElement.js.map +1 -1
- package/dist/utils/hooks/useListState.js.map +1 -1
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useMediaPrintOnly.js.map +1 -1
- package/dist/utils/hooks/useMutuallyExclusiveState.js.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useOverlay.js.map +1 -1
- package/dist/utils/hooks/usePreFetchResource.js.map +1 -1
- package/dist/utils/hooks/useQuerySearchParam.js.map +1 -1
- package/dist/utils/hooks/useScrollFadeTransition.js.map +1 -1
- package/dist/utils/hooks/useSet.js.map +1 -1
- package/dist/utils/hooks/useShowDesktop.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/hooks/useTableImageUrl.js.map +1 -1
- package/dist/utils/hooks/useTraceUpdate.js.map +1 -1
- package/dist/utils/hooks/useTrackTransientListItems.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getActiveUploadCount.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/getFileEntityIdWithSameName.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreatePathsAndGetParentId.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useLinkFileEntityToURL.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/usePrepareFileEntityUpload.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useTrackFileUploads.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFileEntities.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useUploadFiles.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/willUploadsExceedStorageLimit.js.map +1 -1
- package/dist/utils/html/TargetEnum.js.map +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/getEnumeratedValues.js.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getRequiredAttributes.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaForProperty.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/getType.js.map +1 -1
- package/dist/utils/searchDefaults.js.map +1 -1
- package/dist/utils/slots/SlotUtils.js.map +1 -1
- package/dist/utils/types/IsType.js.map +1 -1
- package/package.json +67 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/RequirementItem.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react'\nimport AccessApprovalCheckMark, {\n RequirementItemStatus,\n} from '../AccessApprovalCheckMark'\nimport { Box, BoxProps, Button, ButtonProps, styled } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nexport type RequirementItemProps = PropsWithChildren<{\n status: RequirementItemStatus\n actions?: ButtonProps[]\n}>\n\nconst RequirementContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'RequirementContainer',\n})({\n display: 'grid',\n gridTemplateRows: '50px auto auto',\n gridTemplateColumns: '30px auto',\n columnGap: '20px',\n alignItems: 'center',\n margin: '1rem 0 2rem',\n})\n\nconst InlineButtonContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'InlineButtonContainer',\n})(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n margin: `${theme.spacing(1)} 0`,\n}))\n\n/**\n * Renders a single requirement item, which includes a checkmark, the requirement text, and any required actions. This\n * component represents one condition (of potentially many) that a user must meet to gain access to data.\n *\n * This component does not make requests to external stores and is side-effect free. Variations in the displayed\n * component are controlled entirely by props\n */\nexport default function RequirementItem(props: RequirementItemProps) {\n const { actions, status, children } = props\n return (\n <RequirementContainer data-testid={'RequirementItem'}>\n <AccessApprovalCheckMark\n status={status}\n sx={{\n gridRow: '1 / span 1',\n gridColumn: '1 / span 1',\n margin: 'auto',\n }}\n />\n <Box\n sx={{\n gridColumn: '2 / span 1',\n gridRow: '1 / span 2',\n alignSelf: 'start',\n mt: '12px',\n }}\n >\n {children}\n </Box>\n {actions && !!actions.length && (\n <>\n {/* This Box renders a vertical line beneath the icon that spans the 2nd row */}\n <Box\n sx={{\n gridColumnStart: 1,\n gridRow: '2 / span 1',\n width: '1px',\n height: '100%',\n backgroundColor: 'grey.400',\n margin: 'auto',\n }}\n />\n {/*\n This Box renders the 'L' shaped line, which is visually connected to the vertical line in the 3rd row\n Placing this in the 3rd row vertically aligns this with the InlineButtonContainer actions\n */}\n <Box\n sx={theme => ({\n gridColumnStart: 1,\n gridRow: '3 / span 1',\n width: '50%',\n height: '60%',\n borderLeft: `1px solid ${theme.palette.grey[400]}`,\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n marginLeft: 'auto',\n marginBottom: 'auto',\n marginRight: '0',\n })}\n />\n </>\n )}\n {actions && !!actions.length && (\n <InlineButtonContainer\n sx={{ gridColumnStart: 2, gridRow: '3 / span 1', mt: 2 }}\n >\n {actions.map((buttonProps, i) => (\n <Button\n key={i}\n disabled={status === RequirementItemStatus.LOADING}\n {...buttonProps}\n />\n ))}\n </InlineButtonContainer>\n )}\n </RequirementContainer>\n )\n}\n"],"mappings":";;;;AAYA,IAAM,IAAkD,EAAO,GAAK,EAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"RequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/RequirementItem.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react'\nimport AccessApprovalCheckMark, {\n RequirementItemStatus,\n} from '../AccessApprovalCheckMark'\nimport { Box, BoxProps, Button, ButtonProps, styled } from '@mui/material'\nimport { StyledComponent } from '@emotion/styled'\n\nexport type RequirementItemProps = PropsWithChildren<{\n status: RequirementItemStatus\n actions?: ButtonProps[]\n}>\n\nconst RequirementContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'RequirementContainer',\n})({\n display: 'grid',\n gridTemplateRows: '50px auto auto',\n gridTemplateColumns: '30px auto',\n columnGap: '20px',\n alignItems: 'center',\n margin: '1rem 0 2rem',\n})\n\nconst InlineButtonContainer: StyledComponent<BoxProps> = styled(Box, {\n label: 'InlineButtonContainer',\n})(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n margin: `${theme.spacing(1)} 0`,\n}))\n\n/**\n * Renders a single requirement item, which includes a checkmark, the requirement text, and any required actions. This\n * component represents one condition (of potentially many) that a user must meet to gain access to data.\n *\n * This component does not make requests to external stores and is side-effect free. Variations in the displayed\n * component are controlled entirely by props\n */\nexport default function RequirementItem(props: RequirementItemProps) {\n const { actions, status, children } = props\n return (\n <RequirementContainer data-testid={'RequirementItem'}>\n <AccessApprovalCheckMark\n status={status}\n sx={{\n gridRow: '1 / span 1',\n gridColumn: '1 / span 1',\n margin: 'auto',\n }}\n />\n <Box\n sx={{\n gridColumn: '2 / span 1',\n gridRow: '1 / span 2',\n alignSelf: 'start',\n mt: '12px',\n }}\n >\n {children}\n </Box>\n {actions && !!actions.length && (\n <>\n {/* This Box renders a vertical line beneath the icon that spans the 2nd row */}\n <Box\n sx={{\n gridColumnStart: 1,\n gridRow: '2 / span 1',\n width: '1px',\n height: '100%',\n backgroundColor: 'grey.400',\n margin: 'auto',\n }}\n />\n {/*\n This Box renders the 'L' shaped line, which is visually connected to the vertical line in the 3rd row\n Placing this in the 3rd row vertically aligns this with the InlineButtonContainer actions\n */}\n <Box\n sx={theme => ({\n gridColumnStart: 1,\n gridRow: '3 / span 1',\n width: '50%',\n height: '60%',\n borderLeft: `1px solid ${theme.palette.grey[400]}`,\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n marginLeft: 'auto',\n marginBottom: 'auto',\n marginRight: '0',\n })}\n />\n </>\n )}\n {actions && !!actions.length && (\n <InlineButtonContainer\n sx={{ gridColumnStart: 2, gridRow: '3 / span 1', mt: 2 }}\n >\n {actions.map((buttonProps, i) => (\n <Button\n key={i}\n disabled={status === RequirementItemStatus.LOADING}\n {...buttonProps}\n />\n ))}\n </InlineButtonContainer>\n )}\n </RequirementContainer>\n )\n}\n"],"mappings":";;;;AAYA,IAAM,IAAkD,EAAO,GAAK,EAClE,OAAO,uBACT,CAAC,EAAE;CACD,SAAS;CACT,kBAAkB;CAClB,qBAAqB;CACrB,WAAW;CACX,YAAY;CACZ,QAAQ;AACV,CAAC,GAEK,IAAmD,EAAO,GAAK,EACnE,OAAO,wBACT,CAAC,GAAG,EAAE,gBAAa;CACjB,SAAS;CACT,KAAK,EAAM,QAAQ,CAAC;CACpB,QAAQ,GAAG,EAAM,QAAQ,CAAC,EAAE;AAC9B,EAAE;AASF,SAAwB,EAAgB,GAA6B;CACnE,IAAM,EAAE,YAAS,WAAQ,gBAAa;CACtC,OACE,kBAAC,GAAD;EAAsB,eAAa;YAAnC;GACE,kBAAC,GAAD;IACU;IACR,IAAI;KACF,SAAS;KACT,YAAY;KACZ,QAAQ;IACV;GACD,CAAA;GACD,kBAAC,GAAD;IACE,IAAI;KACF,YAAY;KACZ,SAAS;KACT,WAAW;KACX,IAAI;IACN;IAEC;GACE,CAAA;GACJ,KAAW,CAAC,CAAC,EAAQ,UACpB,kBAAA,GAAA,EAAA,UAAA,CAEE,kBAAC,GAAD,EACE,IAAI;IACF,iBAAiB;IACjB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,iBAAiB;IACjB,QAAQ;GACV,EACD,CAAA,GAKD,kBAAC,GAAD,EACE,KAAI,OAAU;IACZ,iBAAiB;IACjB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,YAAY,aAAa,EAAM,QAAQ,KAAK;IAC5C,cAAc,aAAa,EAAM,QAAQ,KAAK;IAC9C,YAAY;IACZ,cAAc;IACd,aAAa;GACf,GACD,CAAA,CACD,EAAA,CAAA;GAEH,KAAW,CAAC,CAAC,EAAQ,UACpB,kBAAC,GAAD;IACE,IAAI;KAAE,iBAAiB;KAAG,SAAS;KAAc,IAAI;IAAE;cAEtD,EAAQ,KAAK,GAAa,MACzB,kBAAC,GAAD;KAEE,UAAU,MAAW,EAAsB;KAC3C,GAAI;IACL,GAHM,CAGN,CACF;GACoB,CAAA;EAEL;;AAE1B"}
|
package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelfSignAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.tsx"],"sourcesContent":["import {\n useCreateAccessApproval,\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n useGetCurrentUserBundle,\n useGetCurrentUserProfile,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { isTermsOfUseAccessRequirement } from '@/utils/types/IsType'\nimport { Alert, Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ApprovalState,\n CreateAccessApprovalRequest,\n SelfSignAccessRequirement,\n TermsOfUseAccessRequirement,\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 SelfSignAccessRequirementItemProps = {\n accessRequirement: SelfSignAccessRequirement | TermsOfUseAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for an self-sign Access Requirement, including {@link SelfSignAccessRequirement} or\n * {@link TermsOfUseAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s, see {@link RequestDataAccess}\n */\nexport default function SelfSignAccessRequirementItem(\n props: SelfSignAccessRequirementItemProps,\n) {\n const { accessRequirement, onHide } = props\n const { isAuthenticated } = useSynapseContext()\n const isTermsOfUse = isTermsOfUseAccessRequirement(accessRequirement)\n\n const { data: user } = useGetCurrentUserProfile()\n const { data: userBundle } = useGetCurrentUserBundle()\n\n const certificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isCertifiedUserRequired &&\n !userBundle.isCertified\n const verificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isValidatedProfileRequired &&\n !userBundle.isVerified\n\n const { data: accessRequirementStatus, isLoading: isLoadingStatus } =\n useGetAccessRequirementStatus(String(accessRequirement.id))\n\n const isApproved = accessRequirementStatus?.isApproved\n\n const { data: wikiPage } = useGetAccessRequirementWikiPageKey(\n accessRequirement.id.toString(),\n // TermsOfUse ARs may have the terms embedded in the AR or an associated Wiki.\n )\n\n const [showTerms, setShowTerms] = useState<boolean>(false)\n\n const {\n mutate: createAccessApproval,\n isPending: createAccessApprovalIsPending,\n error,\n } = useCreateAccessApproval({\n onError: err => {\n console.error('Error creating access approval: ', err)\n },\n })\n\n const onAcceptClicked = () => {\n const accessApprovalRequest: CreateAccessApprovalRequest = {\n requirementId: accessRequirement?.id,\n submitterId: user?.ownerId!,\n accessorId: user?.ownerId!,\n state: ApprovalState.APPROVED,\n }\n\n createAccessApproval(accessApprovalRequest)\n }\n\n let renderedTerms = <></>\n if (isTermsOfUse && accessRequirement.termsOfUse) {\n renderedTerms = <MarkdownSynapse markdown={accessRequirement.termsOfUse} />\n } else if (wikiPage) {\n renderedTerms = (\n <MarkdownSynapse\n wikiId={wikiPage?.wikiPageId}\n ownerId={wikiPage?.ownerObjectId}\n objectType={wikiPage?.ownerObjectType}\n />\n )\n }\n let actions: ButtonProps[] | undefined = undefined\n\n if (isAuthenticated && !isApproved) {\n let acceptButtonText = 'I Accept Terms of Use'\n let acceptButtonDisabled = false\n if (certificationRequirementNotMet || verificationRequirementNotMet) {\n acceptButtonDisabled = true\n acceptButtonText = `You must ${\n certificationRequirementNotMet ? 'be certified' : ''\n }${\n certificationRequirementNotMet && verificationRequirementNotMet\n ? ' and '\n : ''\n }${\n verificationRequirementNotMet ? 'have a validated user profile' : ''\n } to accept`\n }\n\n actions = [\n {\n variant: 'outlined',\n onClick: onAcceptClicked,\n children: acceptButtonText,\n disabled: createAccessApprovalIsPending || acceptButtonDisabled,\n },\n {\n variant: 'text',\n onClick: onHide,\n children: 'I do not accept',\n },\n ]\n }\n\n return (\n <RequirementItem\n data-testid=\"SelfSignAccessRequirementItem\"\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 You have accepted the terms of use.{' '}\n <Link role=\"button\" onClick={() => setShowTerms(!showTerms)}>\n {showTerms ? 'Hide Terms' : 'View Terms'}\n </Link>\n </Typography>\n {showTerms && <Box sx={{ my: 1 }}>{renderedTerms}</Box>}\n </>\n ) : (\n renderedTerms\n )}\n {error && <Alert severity=\"error\">{error.reason}</Alert>}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAgCA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,cAAW,GAChC,EAAE,uBAAoB,
|
|
1
|
+
{"version":3,"file":"SelfSignAccessRequirementItem.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.tsx"],"sourcesContent":["import {\n useCreateAccessApproval,\n useGetAccessRequirementStatus,\n useGetAccessRequirementWikiPageKey,\n useGetCurrentUserBundle,\n useGetCurrentUserProfile,\n} from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { isTermsOfUseAccessRequirement } from '@/utils/types/IsType'\nimport { Alert, Box, ButtonProps, Link, Typography } from '@mui/material'\nimport {\n ApprovalState,\n CreateAccessApprovalRequest,\n SelfSignAccessRequirement,\n TermsOfUseAccessRequirement,\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 SelfSignAccessRequirementItemProps = {\n accessRequirement: SelfSignAccessRequirement | TermsOfUseAccessRequirement\n onHide: () => void\n}\n\n/**\n * Renders a {@link RequirementItem} for an self-sign Access Requirement, including {@link SelfSignAccessRequirement} or\n * {@link TermsOfUseAccessRequirement}.\n *\n * For {@link ManagedACTAccessRequirement}s, see {@link RequestDataAccess}\n */\nexport default function SelfSignAccessRequirementItem(\n props: SelfSignAccessRequirementItemProps,\n) {\n const { accessRequirement, onHide } = props\n const { isAuthenticated } = useSynapseContext()\n const isTermsOfUse = isTermsOfUseAccessRequirement(accessRequirement)\n\n const { data: user } = useGetCurrentUserProfile()\n const { data: userBundle } = useGetCurrentUserBundle()\n\n const certificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isCertifiedUserRequired &&\n !userBundle.isCertified\n const verificationRequirementNotMet =\n isAuthenticated &&\n userBundle &&\n !isTermsOfUse &&\n accessRequirement.isValidatedProfileRequired &&\n !userBundle.isVerified\n\n const { data: accessRequirementStatus, isLoading: isLoadingStatus } =\n useGetAccessRequirementStatus(String(accessRequirement.id))\n\n const isApproved = accessRequirementStatus?.isApproved\n\n const { data: wikiPage } = useGetAccessRequirementWikiPageKey(\n accessRequirement.id.toString(),\n // TermsOfUse ARs may have the terms embedded in the AR or an associated Wiki.\n )\n\n const [showTerms, setShowTerms] = useState<boolean>(false)\n\n const {\n mutate: createAccessApproval,\n isPending: createAccessApprovalIsPending,\n error,\n } = useCreateAccessApproval({\n onError: err => {\n console.error('Error creating access approval: ', err)\n },\n })\n\n const onAcceptClicked = () => {\n const accessApprovalRequest: CreateAccessApprovalRequest = {\n requirementId: accessRequirement?.id,\n submitterId: user?.ownerId!,\n accessorId: user?.ownerId!,\n state: ApprovalState.APPROVED,\n }\n\n createAccessApproval(accessApprovalRequest)\n }\n\n let renderedTerms = <></>\n if (isTermsOfUse && accessRequirement.termsOfUse) {\n renderedTerms = <MarkdownSynapse markdown={accessRequirement.termsOfUse} />\n } else if (wikiPage) {\n renderedTerms = (\n <MarkdownSynapse\n wikiId={wikiPage?.wikiPageId}\n ownerId={wikiPage?.ownerObjectId}\n objectType={wikiPage?.ownerObjectType}\n />\n )\n }\n let actions: ButtonProps[] | undefined = undefined\n\n if (isAuthenticated && !isApproved) {\n let acceptButtonText = 'I Accept Terms of Use'\n let acceptButtonDisabled = false\n if (certificationRequirementNotMet || verificationRequirementNotMet) {\n acceptButtonDisabled = true\n acceptButtonText = `You must ${\n certificationRequirementNotMet ? 'be certified' : ''\n }${\n certificationRequirementNotMet && verificationRequirementNotMet\n ? ' and '\n : ''\n }${\n verificationRequirementNotMet ? 'have a validated user profile' : ''\n } to accept`\n }\n\n actions = [\n {\n variant: 'outlined',\n onClick: onAcceptClicked,\n children: acceptButtonText,\n disabled: createAccessApprovalIsPending || acceptButtonDisabled,\n },\n {\n variant: 'text',\n onClick: onHide,\n children: 'I do not accept',\n },\n ]\n }\n\n return (\n <RequirementItem\n data-testid=\"SelfSignAccessRequirementItem\"\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 You have accepted the terms of use.{' '}\n <Link role=\"button\" onClick={() => setShowTerms(!showTerms)}>\n {showTerms ? 'Hide Terms' : 'View Terms'}\n </Link>\n </Typography>\n {showTerms && <Box sx={{ my: 1 }}>{renderedTerms}</Box>}\n </>\n ) : (\n renderedTerms\n )}\n {error && <Alert severity=\"error\">{error.reason}</Alert>}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAgCA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,sBAAmB,cAAW,GAChC,EAAE,uBAAoB,EAAkB,GACxC,IAAe,EAA8B,CAAiB,GAE9D,EAAE,MAAM,MAAS,EAAyB,GAC1C,EAAE,MAAM,MAAe,EAAwB,GAE/C,IACJ,KACA,KACA,CAAC,KACD,EAAkB,2BAClB,CAAC,EAAW,aACR,IACJ,KACA,KACA,CAAC,KACD,EAAkB,8BAClB,CAAC,EAAW,YAER,EAAE,MAAM,GAAyB,WAAW,MAChD,EAA8B,OAAO,EAAkB,EAAE,CAAC,GAEtD,IAAa,GAAyB,YAEtC,EAAE,MAAM,MAAa,EACzB,EAAkB,GAAG,SAAS,CAEhC,GAEM,CAAC,GAAW,KAAgB,EAAkB,EAAK,GAEnD,EACJ,QAAQ,GACR,WAAW,GACX,aACE,EAAwB,EAC1B,UAAS,MAAO;EACd,QAAQ,MAAM,oCAAoC,CAAG;CACvD,EACF,CAAC,GAEK,UAAwB;EAQ5B,EAAqB;GANnB,eAAe,GAAmB;GAClC,aAAa,GAAM;GACnB,YAAY,GAAM;GAClB,OAAO,EAAc;EAGF,CAAqB;CAC5C,GAEI,IAAgB,kBAAA,GAAA,CAAI,CAAA;CACxB,AAAI,KAAgB,EAAkB,aACpC,IAAgB,kBAAC,GAAD,EAAiB,UAAU,EAAkB,WAAa,CAAA,IACjE,MACT,IACE,kBAAC,GAAD;EACE,QAAQ,GAAU;EAClB,SAAS,GAAU;EACnB,YAAY,GAAU;CACvB,CAAA;CAGL,IAAI;CAEJ,IAAI,KAAmB,CAAC,GAAY;EAClC,IAAI,IAAmB,yBACnB,IAAuB;EAc3B,CAbI,KAAkC,OACpC,IAAuB,IACvB,IAAmB,YACjB,IAAiC,iBAAiB,KAElD,KAAkC,IAC9B,UACA,KAEJ,IAAgC,kCAAkC,GACnE,cAGH,IAAU,CACR;GACE,SAAS;GACT,SAAS;GACT,UAAU;GACV,UAAU,KAAiC;EAC7C,GACA;GACE,SAAS;GACT,SAAS;GACT,UAAU;EACZ,CACF;CACF;CAEA,OACE,kBAAC,GAAD;EACE,eAAY;EACZ,QACE,IACI,EAAsB,UACtB,IACE,EAAsB,WACtB,EAAsB;EAErB;YATX,CAWG,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAY,SAAS;aAArB;IAA8B;IACQ;IACpC,kBAAC,GAAD;KAAM,MAAK;KAAS,eAAe,EAAa,CAAC,CAAS;eACvD,IAAY,eAAe;IACxB,CAAA;GACI;MACX,KAAa,kBAAC,GAAD;GAAK,IAAI,EAAE,IAAI,EAAE;aAAI;EAAmB,CAAA,CACtD,EAAA,CAAA,IAEF,GAED,KAAS,kBAAC,GAAD;GAAO,UAAS;aAAS,EAAM;EAAc,CAAA,CACxC;;AAErB"}
|
package/dist/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwoFactorAuthEnabledRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.tsx"],"sourcesContent":["import { useGetTwoFactorEnrollmentStatus } from '@/synapse-queries/auth/useTwoFactorEnrollment'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { ButtonProps, Typography } from '@mui/material'\nimport { TwoFactorAuthStatus } from '@sage-bionetworks/synapse-types'\nimport { TWO_FACTOR_DOCS_LINK } from '../../Authentication/TwoFactorEnrollmentForm'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem, { RequirementItemProps } from './RequirementItem'\n\nconst TWO_FACTOR_ENROLLMENT_LINK = `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n)}TwoFactorAuth:Enroll`\n\nfunction getState(\n isAuthenticated: boolean,\n isLoading: boolean,\n status?: TwoFactorAuthStatus['status'],\n): RequirementItemStatus {\n if (!isAuthenticated) {\n return RequirementItemStatus.LOCKED\n }\n if (isLoading) {\n return RequirementItemStatus.LOADING\n }\n return status === 'ENABLED'\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n}\n\n/**\n * Displays a data access request requirement that prompts the user to enable two-factor authentication.\n */\nexport default function TwoFactorAuthEnabledRequirement() {\n const { isAuthenticated } = useSynapseContext()\n\n const { data: twoFactorAuthStatus, isLoading } =\n useGetTwoFactorEnrollmentStatus({\n enabled: isAuthenticated,\n // If required, we send the user to a new tab to complete 2FA enrollment\n // Refetch on window focus so the enrollment state is immediately updated when they return to this tab\n refetchOnWindowFocus: true,\n // Refetch won't happen unless staleTime is less than the amount of time since last fetch. 5sec seems reasonable\n staleTime: 5000,\n })\n\n const actions: RequirementItemProps['actions'] =\n twoFactorAuthStatus?.status === 'DISABLED'\n ? [\n {\n variant: 'outlined',\n href: TWO_FACTOR_ENROLLMENT_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: 'Activate 2FA (opens a new tab)',\n } as ButtonProps,\n {\n variant: 'text',\n href: TWO_FACTOR_DOCS_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: '2FA Documentation',\n } as ButtonProps,\n ]\n : undefined\n\n return (\n <RequirementItem\n status={getState(isAuthenticated, isLoading, twoFactorAuthStatus?.status)}\n actions={actions}\n >\n <Typography variant={'body1'}>\n You must have Two-factor Authentication (2FA) active on your Synapse\n account in order to download the requested files\n </Typography>\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;AAYA,IAAM,IAA6B,GAAG,EACpC,EAAuB,
|
|
1
|
+
{"version":3,"file":"TwoFactorAuthEnabledRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/TwoFactorAuthEnabledRequirement.tsx"],"sourcesContent":["import { useGetTwoFactorEnrollmentStatus } from '@/synapse-queries/auth/useTwoFactorEnrollment'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { ButtonProps, Typography } from '@mui/material'\nimport { TwoFactorAuthStatus } from '@sage-bionetworks/synapse-types'\nimport { TWO_FACTOR_DOCS_LINK } from '../../Authentication/TwoFactorEnrollmentForm'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem, { RequirementItemProps } from './RequirementItem'\n\nconst TWO_FACTOR_ENROLLMENT_LINK = `${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n)}TwoFactorAuth:Enroll`\n\nfunction getState(\n isAuthenticated: boolean,\n isLoading: boolean,\n status?: TwoFactorAuthStatus['status'],\n): RequirementItemStatus {\n if (!isAuthenticated) {\n return RequirementItemStatus.LOCKED\n }\n if (isLoading) {\n return RequirementItemStatus.LOADING\n }\n return status === 'ENABLED'\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n}\n\n/**\n * Displays a data access request requirement that prompts the user to enable two-factor authentication.\n */\nexport default function TwoFactorAuthEnabledRequirement() {\n const { isAuthenticated } = useSynapseContext()\n\n const { data: twoFactorAuthStatus, isLoading } =\n useGetTwoFactorEnrollmentStatus({\n enabled: isAuthenticated,\n // If required, we send the user to a new tab to complete 2FA enrollment\n // Refetch on window focus so the enrollment state is immediately updated when they return to this tab\n refetchOnWindowFocus: true,\n // Refetch won't happen unless staleTime is less than the amount of time since last fetch. 5sec seems reasonable\n staleTime: 5000,\n })\n\n const actions: RequirementItemProps['actions'] =\n twoFactorAuthStatus?.status === 'DISABLED'\n ? [\n {\n variant: 'outlined',\n href: TWO_FACTOR_ENROLLMENT_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: 'Activate 2FA (opens a new tab)',\n } as ButtonProps,\n {\n variant: 'text',\n href: TWO_FACTOR_DOCS_LINK,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: '2FA Documentation',\n } as ButtonProps,\n ]\n : undefined\n\n return (\n <RequirementItem\n status={getState(isAuthenticated, isLoading, twoFactorAuthStatus?.status)}\n actions={actions}\n >\n <Typography variant={'body1'}>\n You must have Two-factor Authentication (2FA) active on your Synapse\n account in order to download the requested files\n </Typography>\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;;AAYA,IAAM,IAA6B,GAAG,EACpC,EAAuB,eACzB,EAAE;AAEF,SAAS,EACP,GACA,GACA,GACuB;CAOvB,OANK,IAGD,IACK,EAAsB,UAExB,MAAW,YACd,EAAsB,WACtB,EAAsB,SAPjB,EAAsB;AAQjC;AAKA,SAAwB,IAAkC;CACxD,IAAM,EAAE,uBAAoB,EAAkB,GAExC,EAAE,MAAM,GAAqB,iBACjC,EAAgC;EAC9B,SAAS;EAGT,sBAAsB;EAEtB,WAAW;CACb,CAAC,GAEG,IACJ,GAAqB,WAAW,aAC5B,CACE;EACE,SAAS;EACT,MAAM;EACN,QAAQ;EACR,KAAK;EACL,UAAU;CACZ,GACA;EACE,SAAS;EACT,MAAM;EACN,QAAQ;EACR,KAAK;EACL,UAAU;CACZ,CACF,IACA,KAAA;CAEN,OACE,kBAAC,GAAD;EACE,QAAQ,EAAS,GAAiB,GAAW,GAAqB,MAAM;EAC/D;YAET,kBAAC,GAAD;GAAY,SAAS;aAAS;EAGlB,CAAA;CACG,CAAA;AAErB"}
|
|
@@ -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 ManagedACTAccessRequirementItem}\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,
|
|
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 ManagedACTAccessRequirementItem}\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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/ValidationRequirement.tsx"],"sourcesContent":["import { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport { Link, Typography } from '@mui/material'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\n/**\n * When creating requests for access requirements on a particular file, one or more access requirements may require that the\n * user has a validated profile.\n *\n * This component checks if the user has a validated profile, and if not, provides a link on how to begin profile validation.\n */\nexport default function ValidationRequirement() {\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n const validationURL = useOneSageURL(\n '/authenticated/myaccount',\n undefined,\n 'trust',\n )\n\n return (\n <RequirementItem\n status={\n isLoading\n ? RequirementItemStatus.LOADING\n : userBundle!.isVerified\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n >\n <Typography variant={'body1'}>\n You must first apply to have your{' '}\n <Link href={validationURL.toString()} target={'_blank'}>\n user profile validated\n </Link>\n </Typography>\n {isLoading && <span className=\"spinner\" />}\n {userBundle?.isVerified && (\n <Typography variant={'body1'}>\n Your user profile is validated.\n </Typography>\n )}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAwB,IAAwB;CAC9C,IAAM,EAAE,MAAM,GAAY,iBAAc,
|
|
1
|
+
{"version":3,"file":"ValidationRequirement.js","names":[],"sources":["../../../../src/components/AccessRequirementList/RequirementItem/ValidationRequirement.tsx"],"sourcesContent":["import { useGetCurrentUserBundle } from '@/synapse-queries'\nimport { useOneSageURL } from '@/utils/hooks/useOneSageURL'\nimport { Link, Typography } from '@mui/material'\nimport { RequirementItemStatus } from '../AccessApprovalCheckMark'\nimport RequirementItem from './RequirementItem'\n\n/**\n * When creating requests for access requirements on a particular file, one or more access requirements may require that the\n * user has a validated profile.\n *\n * This component checks if the user has a validated profile, and if not, provides a link on how to begin profile validation.\n */\nexport default function ValidationRequirement() {\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n const validationURL = useOneSageURL(\n '/authenticated/myaccount',\n undefined,\n 'trust',\n )\n\n return (\n <RequirementItem\n status={\n isLoading\n ? RequirementItemStatus.LOADING\n : userBundle!.isVerified\n ? RequirementItemStatus.COMPLETE\n : RequirementItemStatus.LOCKED\n }\n >\n <Typography variant={'body1'}>\n You must first apply to have your{' '}\n <Link href={validationURL.toString()} target={'_blank'}>\n user profile validated\n </Link>\n </Typography>\n {isLoading && <span className=\"spinner\" />}\n {userBundle?.isVerified && (\n <Typography variant={'body1'}>\n Your user profile is validated.\n </Typography>\n )}\n </RequirementItem>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAwB,IAAwB;CAC9C,IAAM,EAAE,MAAM,GAAY,iBAAc,EAAwB,GAC1D,IAAgB,EACpB,4BACA,KAAA,GACA,OACF;CAEA,OACE,kBAAC,GAAD;EACE,QACE,IACI,EAAsB,UACtB,EAAY,aACV,EAAsB,WACtB,EAAsB;YANhC;GASE,kBAAC,GAAD;IAAY,SAAS;cAArB;KAA8B;KACM;KAClC,kBAAC,GAAD;MAAM,MAAM,EAAc,SAAS;MAAG,QAAQ;gBAAU;KAElD,CAAA;IACI;;GACX,KAAa,kBAAC,QAAD,EAAM,WAAU,UAAW,CAAA;GACxC,GAAY,cACX,kBAAC,GAAD;IAAY,SAAS;cAAS;GAElB,CAAA;EAEC;;AAErB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRequirementRelatedProjectsList.js","names":[],"sources":["../../../src/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.tsx"],"sourcesContent":["import React from 'react'\nimport { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { Alert, List, ListItem, Typography } from '@mui/material'\nimport { AccessRequirementSearchRequest } from '@sage-bionetworks/synapse-types'\nimport pluralize from 'pluralize'\nimport { EntityLink } from '../EntityLink'\n\nexport type AccessRequirementRelatedProjectsListProps = {\n accessRequirementId: number\n}\n\nexport const AccessRequirementRelatedProjectsList = (\n props: AccessRequirementRelatedProjectsListProps,\n): React.ReactNode => {\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> = {\n ids: [props.accessRequirementId],\n }\n\n const { data, isError, error } =\n useSearchAccessRequirementsInfinite(searchRequest)\n const ar = data?.pages.flatMap(page => page.results)[0] ?? undefined\n\n const nRelatedProjects = ar?.relatedProjectIds.length || 0\n const relatedProjectsTitle = `${pluralize(\n 'project',\n nRelatedProjects,\n true,\n )}${nRelatedProjects > 0 ? ':' : ''}`\n\n return (\n <>\n {ar && (\n <>\n <Typography variant=\"body1\">{relatedProjectsTitle}</Typography>\n <List sx={{ listStyleType: 'disc', pl: 4 }}>\n {ar.relatedProjectIds.map(projectId => (\n <ListItem\n sx={{\n display: 'list-item',\n py: '4px',\n // remove extra margin added by type.less to p tags\n '.no-margin-y': { my: 0 },\n }}\n key={projectId}\n >\n <EntityLink\n entity={projectId}\n link={false}\n showIcon={false}\n className=\"no-margin-y\"\n />\n </ListItem>\n ))}\n </List>\n </>\n )}\n {isError && <Alert severity=\"error\">{error.message}</Alert>}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAWA,IAAa,KACX,MACoB;CAKpB,IAAM,EAAE,SAAM,YAAS,aACrB,EAAoC,EAJpC,KAAK,CAAC,EAAM,
|
|
1
|
+
{"version":3,"file":"AccessRequirementRelatedProjectsList.js","names":[],"sources":["../../../src/components/AccessRequirementRelatedProjectsList/AccessRequirementRelatedProjectsList.tsx"],"sourcesContent":["import React from 'react'\nimport { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { Alert, List, ListItem, Typography } from '@mui/material'\nimport { AccessRequirementSearchRequest } from '@sage-bionetworks/synapse-types'\nimport pluralize from 'pluralize'\nimport { EntityLink } from '../EntityLink'\n\nexport type AccessRequirementRelatedProjectsListProps = {\n accessRequirementId: number\n}\n\nexport const AccessRequirementRelatedProjectsList = (\n props: AccessRequirementRelatedProjectsListProps,\n): React.ReactNode => {\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> = {\n ids: [props.accessRequirementId],\n }\n\n const { data, isError, error } =\n useSearchAccessRequirementsInfinite(searchRequest)\n const ar = data?.pages.flatMap(page => page.results)[0] ?? undefined\n\n const nRelatedProjects = ar?.relatedProjectIds.length || 0\n const relatedProjectsTitle = `${pluralize(\n 'project',\n nRelatedProjects,\n true,\n )}${nRelatedProjects > 0 ? ':' : ''}`\n\n return (\n <>\n {ar && (\n <>\n <Typography variant=\"body1\">{relatedProjectsTitle}</Typography>\n <List sx={{ listStyleType: 'disc', pl: 4 }}>\n {ar.relatedProjectIds.map(projectId => (\n <ListItem\n sx={{\n display: 'list-item',\n py: '4px',\n // remove extra margin added by type.less to p tags\n '.no-margin-y': { my: 0 },\n }}\n key={projectId}\n >\n <EntityLink\n entity={projectId}\n link={false}\n showIcon={false}\n className=\"no-margin-y\"\n />\n </ListItem>\n ))}\n </List>\n </>\n )}\n {isError && <Alert severity=\"error\">{error.message}</Alert>}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAWA,IAAa,KACX,MACoB;CAKpB,IAAM,EAAE,SAAM,YAAS,aACrB,EAAoC,EAJpC,KAAK,CAAC,EAAM,mBAAmB,EAIK,CAAa,GAC7C,IAAK,GAAM,MAAM,SAAQ,MAAQ,EAAK,OAAO,EAAE,MAAM,KAAA,GAErD,IAAmB,GAAI,kBAAkB,UAAU,GACnD,IAAuB,GAAG,EAC9B,WACA,GACA,EACF,IAAI,IAAmB,IAAI,MAAM;CAEjC,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,KACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAQ;YAAS;CAAiC,CAAA,GAC9D,kBAAC,GAAD;EAAM,IAAI;GAAE,eAAe;GAAQ,IAAI;EAAE;YACtC,EAAG,kBAAkB,KAAI,MACxB,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,IAAI;IAEJ,gBAAgB,EAAE,IAAI,EAAE;GAC1B;aAGA,kBAAC,GAAD;IACE,QAAQ;IACR,MAAM;IACN,UAAU;IACV,WAAU;GACX,CAAA;EACO,GARH,CAQG,CACX;CACG,CAAA,CACN,EAAA,CAAA,GAEH,KAAW,kBAAC,GAAD;EAAO,UAAS;YAAS,EAAM;CAAe,CAAA,CAC1D,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessTokenCard.js","names":[],"sources":["../../../../src/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.tsx"],"sourcesContent":["import { useDeletePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport DeleteTwoToneIcon from '@mui/icons-material/DeleteTwoTone'\nimport {\n Box,\n Card,\n IconButton,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n AccessTokenRecord,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { noop } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\nimport WarningDialog from '../../SynapseForm/WarningDialog'\n\ndayjs.extend(relativeTime)\n\nexport type AccessTokenCardProps = {\n /** Record referring to an access token, not a token itself */\n accessToken: AccessTokenRecord\n onDelete?: () => void\n}\n\nexport const EXPIRED_PAT_WARNING =\n 'This token has expired. It no longer works and can only be deleted.'\n\nexport function AccessTokenCard(props: AccessTokenCardProps) {\n const { accessToken, onDelete = noop } = props\n const [showModal, setShowModal] = useState(false)\n\n const isExpired = accessToken.state === 'EXPIRED'\n\n const { mutate: deleteToken, isPending: deleteIsPending } =\n useDeletePersonalAccessToken({\n onSuccess: () => {\n onDelete()\n },\n throwOnError: true,\n })\n\n const onClickDeleteButton = useCallback(() => {\n if (isExpired) {\n // token no longer works, no need for warning/confirmation\n deleteToken(accessToken.id)\n } else {\n setShowModal(true)\n }\n }, [accessToken.id, deleteToken, isExpired])\n\n const warningDialog = (\n <WarningDialog\n title={'Confirm Deletion'}\n content={\n <>\n <Typography variant={'body1'}>\n If you delete this token, any applications using it will stop\n working. This action cannot be undone.\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n fontWeight: '700',\n }}\n >\n Are you sure you want to delete this token?\n </Typography>\n </>\n }\n confirmButtonText={'Delete Token'}\n onCancel={() => setShowModal(false)}\n onConfirm={() => {\n deleteToken(accessToken.id)\n setShowModal(false)\n }}\n confirmButtonColor=\"error\"\n open={showModal}\n />\n )\n return (\n <Card\n sx={{\n my: 2,\n height: '120px',\n width: '100%',\n p: 1.5,\n pl: 4,\n backgroundColor: isExpired ? '#fcf8e3' : 'inherit',\n }}\n >\n {warningDialog}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: '100%',\n }}\n >\n <Stack\n sx={{\n flexGrow: 1,\n gap: 1,\n justifyContent: 'space-between',\n }}\n >\n <Typography variant={'headline3'} sx={{ fontSize: '16px' }}>\n {accessToken.name}\n </Typography>\n <div>\n <span>Permissions: </span>\n {accessToken.scopes.map(scope => {\n const scopeDescriptionKey =\n scope as keyof typeof scopeDescriptions\n let scopeDescription = scopeDescriptions[scopeDescriptionKey]\n if (scopeDescription === undefined) {\n const titleCaseScope =\n scope.charAt(0).toUpperCase() + scope.slice(1)\n scopeDescription = {\n displayName: titleCaseScope,\n description: titleCaseScope,\n }\n }\n return (\n <Tooltip key={scope} title={scopeDescription.description}>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{ mx: 0.25, cursor: 'default', color: 'primary.main' }}\n >\n {scopeDescription.displayName}\n </Typography>\n </Tooltip>\n )\n })}\n </div>\n <div>\n <Typography component={'span'} variant={'smallText1'}>\n Last used {dayjs(accessToken.lastUsed).fromNow()}\n </Typography>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {' | '}\n </Typography>\n <Typography component={'span'} variant={'smallText1'}>\n Created {dayjs(accessToken.createdOn).fromNow()}\n </Typography>\n </div>\n </Stack>\n <Box\n sx={{\n alignSelf: 'flex-start',\n display: 'flex',\n gap: 1,\n alignItems: 'center',\n }}\n >\n {isExpired && (\n <Tooltip title={EXPIRED_PAT_WARNING} placement={'top'}>\n <IconButton>\n <IconSvg\n icon=\"warning\"\n sx={{ color: 'warning.main', fontSize: 'inherit' }}\n wrap={false}\n />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip title={'Delete Token'} placement={'top'}>\n <IconButton\n disabled={deleteIsPending}\n color=\"error\"\n onClick={onClickDeleteButton}\n >\n <DeleteTwoToneIcon />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n </Card>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAqBA,EAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"AccessTokenCard.js","names":[],"sources":["../../../../src/components/AccessTokenPage/AccessTokenCard/AccessTokenCard.tsx"],"sourcesContent":["import { useDeletePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport DeleteTwoToneIcon from '@mui/icons-material/DeleteTwoTone'\nimport {\n Box,\n Card,\n IconButton,\n Stack,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n AccessTokenRecord,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { noop } from 'lodash-es'\nimport { useCallback, useState } from 'react'\nimport IconSvg from '../../IconSvg/IconSvg'\nimport WarningDialog from '../../SynapseForm/WarningDialog'\n\ndayjs.extend(relativeTime)\n\nexport type AccessTokenCardProps = {\n /** Record referring to an access token, not a token itself */\n accessToken: AccessTokenRecord\n onDelete?: () => void\n}\n\nexport const EXPIRED_PAT_WARNING =\n 'This token has expired. It no longer works and can only be deleted.'\n\nexport function AccessTokenCard(props: AccessTokenCardProps) {\n const { accessToken, onDelete = noop } = props\n const [showModal, setShowModal] = useState(false)\n\n const isExpired = accessToken.state === 'EXPIRED'\n\n const { mutate: deleteToken, isPending: deleteIsPending } =\n useDeletePersonalAccessToken({\n onSuccess: () => {\n onDelete()\n },\n throwOnError: true,\n })\n\n const onClickDeleteButton = useCallback(() => {\n if (isExpired) {\n // token no longer works, no need for warning/confirmation\n deleteToken(accessToken.id)\n } else {\n setShowModal(true)\n }\n }, [accessToken.id, deleteToken, isExpired])\n\n const warningDialog = (\n <WarningDialog\n title={'Confirm Deletion'}\n content={\n <>\n <Typography variant={'body1'}>\n If you delete this token, any applications using it will stop\n working. This action cannot be undone.\n </Typography>\n <Typography\n variant={'body1'}\n sx={{\n fontWeight: '700',\n }}\n >\n Are you sure you want to delete this token?\n </Typography>\n </>\n }\n confirmButtonText={'Delete Token'}\n onCancel={() => setShowModal(false)}\n onConfirm={() => {\n deleteToken(accessToken.id)\n setShowModal(false)\n }}\n confirmButtonColor=\"error\"\n open={showModal}\n />\n )\n return (\n <Card\n sx={{\n my: 2,\n height: '120px',\n width: '100%',\n p: 1.5,\n pl: 4,\n backgroundColor: isExpired ? '#fcf8e3' : 'inherit',\n }}\n >\n {warningDialog}\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: '100%',\n }}\n >\n <Stack\n sx={{\n flexGrow: 1,\n gap: 1,\n justifyContent: 'space-between',\n }}\n >\n <Typography variant={'headline3'} sx={{ fontSize: '16px' }}>\n {accessToken.name}\n </Typography>\n <div>\n <span>Permissions: </span>\n {accessToken.scopes.map(scope => {\n const scopeDescriptionKey =\n scope as keyof typeof scopeDescriptions\n let scopeDescription = scopeDescriptions[scopeDescriptionKey]\n if (scopeDescription === undefined) {\n const titleCaseScope =\n scope.charAt(0).toUpperCase() + scope.slice(1)\n scopeDescription = {\n displayName: titleCaseScope,\n description: titleCaseScope,\n }\n }\n return (\n <Tooltip key={scope} title={scopeDescription.description}>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{ mx: 0.25, cursor: 'default', color: 'primary.main' }}\n >\n {scopeDescription.displayName}\n </Typography>\n </Tooltip>\n )\n })}\n </div>\n <div>\n <Typography component={'span'} variant={'smallText1'}>\n Last used {dayjs(accessToken.lastUsed).fromNow()}\n </Typography>\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {' | '}\n </Typography>\n <Typography component={'span'} variant={'smallText1'}>\n Created {dayjs(accessToken.createdOn).fromNow()}\n </Typography>\n </div>\n </Stack>\n <Box\n sx={{\n alignSelf: 'flex-start',\n display: 'flex',\n gap: 1,\n alignItems: 'center',\n }}\n >\n {isExpired && (\n <Tooltip title={EXPIRED_PAT_WARNING} placement={'top'}>\n <IconButton>\n <IconSvg\n icon=\"warning\"\n sx={{ color: 'warning.main', fontSize: 'inherit' }}\n wrap={false}\n />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip title={'Delete Token'} placement={'top'}>\n <IconButton\n disabled={deleteIsPending}\n color=\"error\"\n onClick={onClickDeleteButton}\n >\n <DeleteTwoToneIcon />\n </IconButton>\n </Tooltip>\n </Box>\n </Box>\n </Card>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessTokenPage.js","names":[],"sources":["../../../src/components/AccessTokenPage/AccessTokenPage.tsx"],"sourcesContent":["import { useGetPersonalAccessTokensInfinite } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { AddCircleTwoTone } from '@mui/icons-material'\nimport { Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useState } from 'react'\nimport { ErrorBanner, SynapseErrorBoundary } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport { AccessTokenCard } from './AccessTokenCard/AccessTokenCard'\nimport { CreateAccessTokenModal } from './CreateAccessTokenModal'\n\nexport type AccessTokenPageProps = {\n title: string\n body: ReactNode\n}\n\nexport function AccessTokenPage({ title, body }: AccessTokenPageProps) {\n const [showCreateTokenModal, setShowCreateTokenModal] = useState(false)\n\n const {\n data: infiniteData,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n } = useGetPersonalAccessTokensInfinite()\n\n const tokenRecords = infiniteData?.pages.flatMap(page => page.results) ?? []\n\n return (\n <div>\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n justifyContent: 'space-between',\n flexDirection: { xs: 'column', md: 'row' },\n }}\n >\n <Box\n sx={{\n flexGrow: 1,\n }}\n >\n <h1>{title}</h1>\n {body}\n </Box>\n <Box\n sx={theme => ({\n flexShrink: 0,\n alignSelf: 'end',\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n >\n <Button\n sx={theme => ({\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setShowCreateTokenModal(true)}\n startIcon={<AddCircleTwoTone />}\n >\n Create New Token\n </Button>\n </Box>\n </Box>\n <SynapseErrorBoundary>\n {showCreateTokenModal && (\n <CreateAccessTokenModal\n onClose={() => setShowCreateTokenModal(false)}\n />\n )}\n\n <div>\n {!isLoading && !error && tokenRecords.length === 0 && (\n <Typography\n variant={'headline2'}\n sx={{\n m: 5,\n textAlign: 'center',\n }}\n >\n You currently have no personal access tokens.\n </Typography>\n )}\n <Box\n sx={{\n maxWidth: '800px',\n mx: 'auto',\n my: 2.5,\n }}\n >\n {tokenRecords.map(accessToken => {\n return (\n <AccessTokenCard\n key={accessToken.id}\n accessToken={accessToken}\n />\n )\n })}\n {isLoading && loadingScreen}\n {!isLoading && hasNextPage && !error && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n }}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n fetchNextPage()\n }}\n >\n Load More\n </Button>\n </Box>\n )}\n </Box>\n {error && <ErrorBanner error={error}></ErrorBanner>}\n </div>\n </SynapseErrorBoundary>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,EAAgB,EAAE,UAAO,WAA8B;CACrE,IAAM,CAAC,GAAsB,KAA2B,EAAS,
|
|
1
|
+
{"version":3,"file":"AccessTokenPage.js","names":[],"sources":["../../../src/components/AccessTokenPage/AccessTokenPage.tsx"],"sourcesContent":["import { useGetPersonalAccessTokensInfinite } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { AddCircleTwoTone } from '@mui/icons-material'\nimport { Box, Button, Typography } from '@mui/material'\nimport { ReactNode, useState } from 'react'\nimport { ErrorBanner, SynapseErrorBoundary } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport { AccessTokenCard } from './AccessTokenCard/AccessTokenCard'\nimport { CreateAccessTokenModal } from './CreateAccessTokenModal'\n\nexport type AccessTokenPageProps = {\n title: string\n body: ReactNode\n}\n\nexport function AccessTokenPage({ title, body }: AccessTokenPageProps) {\n const [showCreateTokenModal, setShowCreateTokenModal] = useState(false)\n\n const {\n data: infiniteData,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n } = useGetPersonalAccessTokensInfinite()\n\n const tokenRecords = infiniteData?.pages.flatMap(page => page.results) ?? []\n\n return (\n <div>\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n justifyContent: 'space-between',\n flexDirection: { xs: 'column', md: 'row' },\n }}\n >\n <Box\n sx={{\n flexGrow: 1,\n }}\n >\n <h1>{title}</h1>\n {body}\n </Box>\n <Box\n sx={theme => ({\n flexShrink: 0,\n alignSelf: 'end',\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n >\n <Button\n sx={theme => ({\n [theme.breakpoints.down('md')]: { width: '100%' },\n })}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setShowCreateTokenModal(true)}\n startIcon={<AddCircleTwoTone />}\n >\n Create New Token\n </Button>\n </Box>\n </Box>\n <SynapseErrorBoundary>\n {showCreateTokenModal && (\n <CreateAccessTokenModal\n onClose={() => setShowCreateTokenModal(false)}\n />\n )}\n\n <div>\n {!isLoading && !error && tokenRecords.length === 0 && (\n <Typography\n variant={'headline2'}\n sx={{\n m: 5,\n textAlign: 'center',\n }}\n >\n You currently have no personal access tokens.\n </Typography>\n )}\n <Box\n sx={{\n maxWidth: '800px',\n mx: 'auto',\n my: 2.5,\n }}\n >\n {tokenRecords.map(accessToken => {\n return (\n <AccessTokenCard\n key={accessToken.id}\n accessToken={accessToken}\n />\n )\n })}\n {isLoading && loadingScreen}\n {!isLoading && hasNextPage && !error && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n }}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n fetchNextPage()\n }}\n >\n Load More\n </Button>\n </Box>\n )}\n </Box>\n {error && <ErrorBanner error={error}></ErrorBanner>}\n </div>\n </SynapseErrorBoundary>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAgB,EAAgB,EAAE,UAAO,WAA8B;CACrE,IAAM,CAAC,GAAsB,KAA2B,EAAS,EAAK,GAEhE,EACJ,MAAM,GACN,cACA,UACA,kBACA,mBACE,EAAmC,GAEjC,IAAe,GAAc,MAAM,SAAQ,MAAQ,EAAK,OAAO,KAAK,CAAC;CAE3E,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,KAAK;GACL,gBAAgB;GAChB,eAAe;IAAE,IAAI;IAAU,IAAI;GAAM;EAC3C;YANF,CAQE,kBAAC,GAAD;GACE,IAAI,EACF,UAAU,EACZ;aAHF,CAKE,kBAAC,MAAD,EAAA,UAAK,EAAU,CAAA,GACd,CACE;MACL,kBAAC,GAAD;GACE,KAAI,OAAU;IACZ,YAAY;IACZ,WAAW;KACV,EAAM,YAAY,KAAK,IAAI,IAAI,EAAE,OAAO,OAAO;GAClD;aAEA,kBAAC,GAAD;IACE,KAAI,OAAU,GACX,EAAM,YAAY,KAAK,IAAI,IAAI,EAAE,OAAO,OAAO,EAClD;IACA,SAAQ;IACR,OAAM;IACN,eAAe,EAAwB,EAAI;IAC3C,WAAW,kBAAC,GAAD,CAAmB,CAAA;cAC/B;GAEO,CAAA;EACL,CAAA,CACF;KACL,kBAAC,GAAD,EAAA,UAAA,CACG,KACC,kBAAC,GAAD,EACE,eAAe,EAAwB,EAAK,EAC7C,CAAA,GAGH,kBAAC,OAAD,EAAA,UAAA;EACG,CAAC,KAAa,CAAC,KAAS,EAAa,WAAW,KAC/C,kBAAC,GAAD;GACE,SAAS;GACT,IAAI;IACF,GAAG;IACH,WAAW;GACb;aACD;EAEW,CAAA;EAEd,kBAAC,GAAD;GACE,IAAI;IACF,UAAU;IACV,IAAI;IACJ,IAAI;GACN;aALF;IAOG,EAAa,KAAI,MAEd,kBAAC,GAAD,EAEe,eACd,GAFM,EAAY,EAElB,CAEJ;IACA,KAAa;IACb,CAAC,KAAa,KAAe,CAAC,KAC7B,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,gBAAgB;KAClB;eAEA,kBAAC,GAAD;MACE,SAAQ;MACR,OAAM;MACN,eAAe;OACb,EAAc;MAChB;gBACD;KAEO,CAAA;IACL,CAAA;GAEJ;;EACJ,KAAS,kBAAC,GAAD,EAAoB,SAAoB,CAAA;CAC/C,EAAA,CAAA,CACe,EAAA,CAAA,CACnB,EAAA,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAccessTokenModal.js","names":[],"sources":["../../../src/components/AccessTokenPage/CreateAccessTokenModal.tsx"],"sourcesContent":["import { useCreatePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { Checkbox, FormControlLabel, Stack, Typography } from '@mui/material'\nimport {\n AccessTokenGenerationRequest,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { ChangeEvent, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { CopyToClipboardInput } from '../CopyToClipboardInput/CopyToClipboardInput'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport TextField from '../TextField/TextField'\n\nconst INVALID_INPUT_MSG =\n 'You must provide a token name and at least one permission.'\n\nexport type CreateAccessTokenModalProps = {\n onClose?: () => void\n onCreate?: () => void\n}\n\nexport function CreateAccessTokenModal(props: CreateAccessTokenModalProps) {\n const { onClose = noop, onCreate = noop } = props\n const [tokenName, setTokenName] = useState('')\n const [viewAccess, setViewAccess] = useState(true)\n const [downloadAccess, setDownloadAccess] = useState(false)\n const [modifyAccess, setModifyAccess] = useState(false)\n\n const [validationError, setValidationError] = useState<string | null>(null)\n\n const {\n mutate,\n isPending: createIsPending,\n error: mutationError,\n data: createdTokenResponse,\n } = useCreatePersonalAccessToken()\n\n const handleTokenNameChange = (event: ChangeEvent) => {\n setTokenName((event.target as HTMLInputElement).value)\n }\n\n const validateInput = (tokenName: string, access: boolean[]): boolean => {\n return !!tokenName && access.some(x => x)\n }\n\n const onSubmit = () => {\n if (validateInput(tokenName, [viewAccess, downloadAccess, modifyAccess])) {\n setValidationError(null)\n\n const request: AccessTokenGenerationRequest = {\n scope: [],\n name: tokenName,\n }\n if (viewAccess) request.scope.push('view')\n if (downloadAccess) request.scope.push('download')\n if (modifyAccess) request.scope.push('modify')\n\n mutate(request)\n\n onCreate()\n } else {\n setValidationError(INVALID_INPUT_MSG)\n }\n }\n\n const dialogContent = createdTokenResponse ? (\n <>\n <Typography variant={'body1'}>\n <Typography\n variant={'body1'}\n component={'span'}\n sx={{\n fontWeight: 700,\n }}\n >\n This token will not be able to be retrieved again.\n </Typography>{' '}\n If needed, generate a new personal access token, and delete this one.\n </Typography>\n <div>\n <CopyToClipboardInput\n value={createdTokenResponse.token}\n inputWidth={'350px'}\n />\n </div>\n <Typography variant={'body1'}>\n This token grants access to your account functions and should be treated\n like a password.\n </Typography>\n </>\n ) : (\n <Stack gap={2}>\n <TextField\n autoFocus\n label=\"Token Name\"\n value={tokenName}\n onChange={handleTokenNameChange}\n placeholder=\"e.g. Synapse command line access on my laptop\"\n sx={{ mb: 2 }}\n />\n <div>\n <Typography variant=\"label\">Token Permissions</Typography>\n <Stack\n sx={{\n gap: 2,\n my: 1,\n }}\n >\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.view.displayName}\n checked={viewAccess}\n onChange={() => setViewAccess(!viewAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.view.description}. Required to use Synapse\n programmatic clients.\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.download.displayName}\n checked={downloadAccess}\n onChange={() => setDownloadAccess(!downloadAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.download.description}\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.modify.displayName}\n checked={modifyAccess}\n onChange={() => setModifyAccess(!modifyAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.modify.description}\n </Typography>\n </div>\n </Stack>\n </div>\n {validationError && <ErrorBanner error={validationError} />}\n {mutationError && <ErrorBanner error={mutationError.reason} />}\n </Stack>\n )\n\n return (\n <ConfirmationDialog\n open={true}\n title=\"Create New Personal Access Token\"\n content={createIsPending ? loadingScreen : dialogContent}\n confirmButtonProps={{\n children: createdTokenResponse ? 'Close' : 'Create Token',\n variant: createdTokenResponse ? 'outlined' : 'contained',\n }}\n hasCancelButton={!createdTokenResponse}\n onCancel={onClose}\n onConfirm={\n createdTokenResponse\n ? () => onClose()\n : () => {\n void onSubmit()\n }\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;AAcA,IAAM,IACJ;AAOF,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EAAE,aAAU,GAAM,cAAW,MAAS,GACtC,CAAC,GAAW,KAAgB,EAAS,
|
|
1
|
+
{"version":3,"file":"CreateAccessTokenModal.js","names":[],"sources":["../../../src/components/AccessTokenPage/CreateAccessTokenModal.tsx"],"sourcesContent":["import { useCreatePersonalAccessToken } from '@/synapse-queries/user/usePersonalAccessToken'\nimport { Checkbox, FormControlLabel, Stack, Typography } from '@mui/material'\nimport {\n AccessTokenGenerationRequest,\n scopeDescriptions,\n} from '@sage-bionetworks/synapse-types'\nimport { noop } from 'lodash-es'\nimport { ChangeEvent, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\nimport { CopyToClipboardInput } from '../CopyToClipboardInput/CopyToClipboardInput'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport loadingScreen from '../LoadingScreen/LoadingScreen'\nimport TextField from '../TextField/TextField'\n\nconst INVALID_INPUT_MSG =\n 'You must provide a token name and at least one permission.'\n\nexport type CreateAccessTokenModalProps = {\n onClose?: () => void\n onCreate?: () => void\n}\n\nexport function CreateAccessTokenModal(props: CreateAccessTokenModalProps) {\n const { onClose = noop, onCreate = noop } = props\n const [tokenName, setTokenName] = useState('')\n const [viewAccess, setViewAccess] = useState(true)\n const [downloadAccess, setDownloadAccess] = useState(false)\n const [modifyAccess, setModifyAccess] = useState(false)\n\n const [validationError, setValidationError] = useState<string | null>(null)\n\n const {\n mutate,\n isPending: createIsPending,\n error: mutationError,\n data: createdTokenResponse,\n } = useCreatePersonalAccessToken()\n\n const handleTokenNameChange = (event: ChangeEvent) => {\n setTokenName((event.target as HTMLInputElement).value)\n }\n\n const validateInput = (tokenName: string, access: boolean[]): boolean => {\n return !!tokenName && access.some(x => x)\n }\n\n const onSubmit = () => {\n if (validateInput(tokenName, [viewAccess, downloadAccess, modifyAccess])) {\n setValidationError(null)\n\n const request: AccessTokenGenerationRequest = {\n scope: [],\n name: tokenName,\n }\n if (viewAccess) request.scope.push('view')\n if (downloadAccess) request.scope.push('download')\n if (modifyAccess) request.scope.push('modify')\n\n mutate(request)\n\n onCreate()\n } else {\n setValidationError(INVALID_INPUT_MSG)\n }\n }\n\n const dialogContent = createdTokenResponse ? (\n <>\n <Typography variant={'body1'}>\n <Typography\n variant={'body1'}\n component={'span'}\n sx={{\n fontWeight: 700,\n }}\n >\n This token will not be able to be retrieved again.\n </Typography>{' '}\n If needed, generate a new personal access token, and delete this one.\n </Typography>\n <div>\n <CopyToClipboardInput\n value={createdTokenResponse.token}\n inputWidth={'350px'}\n />\n </div>\n <Typography variant={'body1'}>\n This token grants access to your account functions and should be treated\n like a password.\n </Typography>\n </>\n ) : (\n <Stack gap={2}>\n <TextField\n autoFocus\n label=\"Token Name\"\n value={tokenName}\n onChange={handleTokenNameChange}\n placeholder=\"e.g. Synapse command line access on my laptop\"\n sx={{ mb: 2 }}\n />\n <div>\n <Typography variant=\"label\">Token Permissions</Typography>\n <Stack\n sx={{\n gap: 2,\n my: 1,\n }}\n >\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.view.displayName}\n checked={viewAccess}\n onChange={() => setViewAccess(!viewAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.view.description}. Required to use Synapse\n programmatic clients.\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.download.displayName}\n checked={downloadAccess}\n onChange={() => setDownloadAccess(!downloadAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.download.description}\n </Typography>\n </div>\n <div>\n <FormControlLabel\n control={<Checkbox />}\n label={scopeDescriptions.modify.displayName}\n checked={modifyAccess}\n onChange={() => setModifyAccess(!modifyAccess)}\n />\n <Typography\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n {scopeDescriptions.modify.description}\n </Typography>\n </div>\n </Stack>\n </div>\n {validationError && <ErrorBanner error={validationError} />}\n {mutationError && <ErrorBanner error={mutationError.reason} />}\n </Stack>\n )\n\n return (\n <ConfirmationDialog\n open={true}\n title=\"Create New Personal Access Token\"\n content={createIsPending ? loadingScreen : dialogContent}\n confirmButtonProps={{\n children: createdTokenResponse ? 'Close' : 'Create Token',\n variant: createdTokenResponse ? 'outlined' : 'contained',\n }}\n hasCancelButton={!createdTokenResponse}\n onCancel={onClose}\n onConfirm={\n createdTokenResponse\n ? () => onClose()\n : () => {\n void onSubmit()\n }\n }\n />\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountLevelBadge.js","names":[],"sources":["../../../src/components/AccountLevelBadge/AccountLevelBadge.tsx"],"sourcesContent":["import { ReactComponent as Certified } from '@/assets/icons/account-certified.svg'\nimport { ReactComponent as EnabledMFA } from '@/assets/icons/account-enabled-mfa.svg'\nimport { ReactComponent as Validated } from '@/assets/icons/account-validated.svg'\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n Link,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport type AccountLevelBadgeType = 'certified' | 'validated' | 'enabledMFA'\ntype AccountLevelBadgeConfig = {\n label: string\n description: string\n tooltipText: string\n icon: ReactNode\n linkHref: string\n buttonNode?: ReactNode\n}\n\nexport const accountLevelBadgeConfig: Record<\n AccountLevelBadgeType,\n AccountLevelBadgeConfig\n> = {\n certified: {\n label: 'Certified',\n description: 'Has access to normal functionality.',\n tooltipText:\n 'This user has passed Sage Certification, which means they can upload data and create new projects and tables.',\n icon: <Certified />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n validated: {\n label: 'Validated',\n description: 'Identity has been manually verified.',\n tooltipText:\n 'This user is Validated. Their identity and credentials have been manually verified by Sage Bionetworks.',\n icon: <Validated />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n enabledMFA: {\n label: 'Multi-factor Authentication',\n description: 'User has activated MFA',\n tooltipText:\n 'This user currently has multi-factor authentication (MFA) activated.',\n icon: <EnabledMFA />,\n linkHref:\n 'https://help.synapse.org/docs/Managing-Your-Account.2055405596.html#ManagingYourAccount-AddingTwo-FactorAuthentication(2FA)toyouraccount',\n },\n}\n\nexport type AccountLevelBadgeProps = {\n badgeType: AccountLevelBadgeType\n /* If truthy, show a button with the following props. If undefined, no button will be shown */\n buttonProps?: ButtonProps\n}\n\nexport function AccountLevelBadge({\n badgeType,\n buttonProps,\n}: AccountLevelBadgeProps) {\n const badgeConfig = accountLevelBadgeConfig[badgeType]\n return (\n <Card\n sx={{\n maxWidth: 325,\n minWidth: 250,\n padding: '30px 20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Tooltip title={badgeConfig.tooltipText}>\n <Box\n sx={{\n alignSelf: 'start',\n mr: '10px',\n }}\n >\n {badgeConfig.icon}\n </Box>\n </Tooltip>\n <Box>\n <Typography variant=\"headline3\" gutterBottom component=\"div\">\n {badgeConfig.label}\n </Typography>\n <Typography variant=\"body1\" sx={{ color: 'grey.700', mb: '10px' }}>\n {badgeConfig.description}\n </Typography>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={badgeConfig.linkHref}\n >\n <Typography variant=\"buttonLink\">Learn more</Typography>\n </Link>\n </Box>\n </Box>\n {buttonProps && (\n <Button\n fullWidth\n {...buttonProps}\n sx={{\n mt: 2,\n ...buttonProps.sx,\n }}\n ></Button>\n )}\n </Card>\n )\n}\n"],"mappings":";;;;;;AAwBA,IAAa,IAGT;CACF,WAAW;EACT,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,
|
|
1
|
+
{"version":3,"file":"AccountLevelBadge.js","names":[],"sources":["../../../src/components/AccountLevelBadge/AccountLevelBadge.tsx"],"sourcesContent":["import { ReactComponent as Certified } from '@/assets/icons/account-certified.svg'\nimport { ReactComponent as EnabledMFA } from '@/assets/icons/account-enabled-mfa.svg'\nimport { ReactComponent as Validated } from '@/assets/icons/account-validated.svg'\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n Link,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport type AccountLevelBadgeType = 'certified' | 'validated' | 'enabledMFA'\ntype AccountLevelBadgeConfig = {\n label: string\n description: string\n tooltipText: string\n icon: ReactNode\n linkHref: string\n buttonNode?: ReactNode\n}\n\nexport const accountLevelBadgeConfig: Record<\n AccountLevelBadgeType,\n AccountLevelBadgeConfig\n> = {\n certified: {\n label: 'Certified',\n description: 'Has access to normal functionality.',\n tooltipText:\n 'This user has passed Sage Certification, which means they can upload data and create new projects and tables.',\n icon: <Certified />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n validated: {\n label: 'Validated',\n description: 'Identity has been manually verified.',\n tooltipText:\n 'This user is Validated. Their identity and credentials have been manually verified by Sage Bionetworks.',\n icon: <Validated />,\n linkHref: 'https://help.synapse.org/docs/User-Types.2007072795.html',\n },\n enabledMFA: {\n label: 'Multi-factor Authentication',\n description: 'User has activated MFA',\n tooltipText:\n 'This user currently has multi-factor authentication (MFA) activated.',\n icon: <EnabledMFA />,\n linkHref:\n 'https://help.synapse.org/docs/Managing-Your-Account.2055405596.html#ManagingYourAccount-AddingTwo-FactorAuthentication(2FA)toyouraccount',\n },\n}\n\nexport type AccountLevelBadgeProps = {\n badgeType: AccountLevelBadgeType\n /* If truthy, show a button with the following props. If undefined, no button will be shown */\n buttonProps?: ButtonProps\n}\n\nexport function AccountLevelBadge({\n badgeType,\n buttonProps,\n}: AccountLevelBadgeProps) {\n const badgeConfig = accountLevelBadgeConfig[badgeType]\n return (\n <Card\n sx={{\n maxWidth: 325,\n minWidth: 250,\n padding: '30px 20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <Tooltip title={badgeConfig.tooltipText}>\n <Box\n sx={{\n alignSelf: 'start',\n mr: '10px',\n }}\n >\n {badgeConfig.icon}\n </Box>\n </Tooltip>\n <Box>\n <Typography variant=\"headline3\" gutterBottom component=\"div\">\n {badgeConfig.label}\n </Typography>\n <Typography variant=\"body1\" sx={{ color: 'grey.700', mb: '10px' }}>\n {badgeConfig.description}\n </Typography>\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={badgeConfig.linkHref}\n >\n <Typography variant=\"buttonLink\">Learn more</Typography>\n </Link>\n </Box>\n </Box>\n {buttonProps && (\n <Button\n fullWidth\n {...buttonProps}\n sx={{\n mt: 2,\n ...buttonProps.sx,\n }}\n ></Button>\n )}\n </Card>\n )\n}\n"],"mappings":";;;;;;AAwBA,IAAa,IAGT;CACF,WAAW;EACT,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,CAAY,CAAA;EAClB,UAAU;CACZ;CACA,WAAW;EACT,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,CAAY,CAAA;EAClB,UAAU;CACZ;CACA,YAAY;EACV,OAAO;EACP,aAAa;EACb,aACE;EACF,MAAM,kBAAC,GAAD,CAAa,CAAA;EACnB,UACE;CACJ;AACF;AAQA,SAAgB,EAAkB,EAChC,cACA,kBACyB;CACzB,IAAM,IAAc,EAAwB;CAC5C,OACE,kBAAC,GAAD;EACE,IAAI;GACF,UAAU;GACV,UAAU;GACV,SAAS;EACX;YALF,CAOE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,OAAO;IACP,YAAY;GACd;aALF,CAOE,kBAAC,GAAD;IAAS,OAAO,EAAY;cAC1B,kBAAC,GAAD;KACE,IAAI;MACF,WAAW;MACX,IAAI;KACN;eAEC,EAAY;IACV,CAAA;GACE,CAAA,GACT,kBAAC,GAAD,EAAA,UAAA;IACE,kBAAC,GAAD;KAAY,SAAQ;KAAY,cAAA;KAAa,WAAU;eACpD,EAAY;IACH,CAAA;IACZ,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI;MAAE,OAAO;MAAY,IAAI;KAAO;eAC7D,EAAY;IACH,CAAA;IACZ,kBAAC,GAAD;KACE,QAAO;KACP,KAAI;KACJ,MAAM,EAAY;eAElB,kBAAC,GAAD;MAAY,SAAQ;gBAAa;KAAsB,CAAA;IACnD,CAAA;GACH,EAAA,CAAA,CACF;MACJ,KACC,kBAAC,GAAD;GACE,WAAA;GACA,GAAI;GACJ,IAAI;IACF,IAAI;IACJ,GAAG,EAAY;GACjB;EACO,CAAA,CAEP;;AAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountLevelBadges.js","names":[],"sources":["../../../src/components/AccountLevelBadges/AccountLevelBadges.tsx"],"sourcesContent":["import { useGetUserBundle } from '@/synapse-queries/user/useUserBundle'\nimport { SynapseConstants } from '@/utils'\nimport { Box } from '@mui/material'\nimport {\n AccountLevelBadge,\n AccountLevelBadgeType,\n} from '../AccountLevelBadge/AccountLevelBadge'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport useRevokeCertificationUI from './useRevokeCertificationUI'\n\nexport type AccountLevelBadgesProps = {\n userId: string\n}\n\nconst CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK =\n SynapseConstants.USER_BUNDLE_MASK_IS_CERTIFIED |\n SynapseConstants.USER_BUNDLE_MASK_IS_VERIFIED |\n SynapseConstants.USER_BUNDLE_MASK_USER_PROFILE\n\nexport function AccountLevelBadges({ userId }: AccountLevelBadgesProps) {\n const {\n data: userBundle,\n isLoading,\n error,\n } = useGetUserBundle(\n userId,\n CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK,\n )\n\n const badgeStatuses: Record<AccountLevelBadgeType, boolean> = {\n certified: userBundle?.isCertified || false,\n validated: userBundle?.isVerified || false,\n enabledMFA: userBundle?.userProfile?.twoFactorAuthEnabled || false,\n }\n const hasBadges = Object.values(badgeStatuses).some(value => value)\n\n const {\n showButton: showRevokeCertificationButton,\n buttonProps: revokeCertificationButtonProps,\n confirmationDialogProps: revokeCertificationConfirmationDialogProps,\n } = useRevokeCertificationUI({\n userId,\n buttonProps: {\n variant: 'outlined',\n },\n })\n\n if (isLoading) {\n return <></>\n }\n if (error) {\n return <ErrorBanner error={error} />\n }\n\n return (\n <>\n <ConfirmationDialog {...revokeCertificationConfirmationDialogProps} />\n {hasBadges && (\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n justifyContent: 'flex-start',\n flexWrap: 'wrap',\n }}\n >\n {Object.entries(badgeStatuses).map(([key, value]) => {\n const badgeType = key as AccountLevelBadgeType\n const buttonProps =\n badgeType === 'certified' && showRevokeCertificationButton\n ? revokeCertificationButtonProps\n : undefined\n return (\n value && (\n <AccountLevelBadge\n key={badgeType}\n badgeType={badgeType}\n buttonProps={buttonProps}\n />\n )\n )\n })}\n </Box>\n )}\n </>\n )\n}\n\nexport default AccountLevelBadges\n"],"mappings":";;;;;;;;;;;AAeA,IAAM,IACJ;AAIF,SAAgB,EAAmB,EAAE,aAAmC;CACtE,IAAM,EACJ,MAAM,GACN,cACA,aACE,EACF,GACA,
|
|
1
|
+
{"version":3,"file":"AccountLevelBadges.js","names":[],"sources":["../../../src/components/AccountLevelBadges/AccountLevelBadges.tsx"],"sourcesContent":["import { useGetUserBundle } from '@/synapse-queries/user/useUserBundle'\nimport { SynapseConstants } from '@/utils'\nimport { Box } from '@mui/material'\nimport {\n AccountLevelBadge,\n AccountLevelBadgeType,\n} from '../AccountLevelBadge/AccountLevelBadge'\nimport { ConfirmationDialog } from '../ConfirmationDialog'\nimport { ErrorBanner } from '../error/ErrorBanner'\nimport useRevokeCertificationUI from './useRevokeCertificationUI'\n\nexport type AccountLevelBadgesProps = {\n userId: string\n}\n\nconst CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK =\n SynapseConstants.USER_BUNDLE_MASK_IS_CERTIFIED |\n SynapseConstants.USER_BUNDLE_MASK_IS_VERIFIED |\n SynapseConstants.USER_BUNDLE_MASK_USER_PROFILE\n\nexport function AccountLevelBadges({ userId }: AccountLevelBadgesProps) {\n const {\n data: userBundle,\n isLoading,\n error,\n } = useGetUserBundle(\n userId,\n CERTIFICATION_VERIFICATION_AND_USERPROFILE_BUNDLE_MASK,\n )\n\n const badgeStatuses: Record<AccountLevelBadgeType, boolean> = {\n certified: userBundle?.isCertified || false,\n validated: userBundle?.isVerified || false,\n enabledMFA: userBundle?.userProfile?.twoFactorAuthEnabled || false,\n }\n const hasBadges = Object.values(badgeStatuses).some(value => value)\n\n const {\n showButton: showRevokeCertificationButton,\n buttonProps: revokeCertificationButtonProps,\n confirmationDialogProps: revokeCertificationConfirmationDialogProps,\n } = useRevokeCertificationUI({\n userId,\n buttonProps: {\n variant: 'outlined',\n },\n })\n\n if (isLoading) {\n return <></>\n }\n if (error) {\n return <ErrorBanner error={error} />\n }\n\n return (\n <>\n <ConfirmationDialog {...revokeCertificationConfirmationDialogProps} />\n {hasBadges && (\n <Box\n sx={{\n display: 'flex',\n gap: '10px',\n justifyContent: 'flex-start',\n flexWrap: 'wrap',\n }}\n >\n {Object.entries(badgeStatuses).map(([key, value]) => {\n const badgeType = key as AccountLevelBadgeType\n const buttonProps =\n badgeType === 'certified' && showRevokeCertificationButton\n ? revokeCertificationButtonProps\n : undefined\n return (\n value && (\n <AccountLevelBadge\n key={badgeType}\n badgeType={badgeType}\n buttonProps={buttonProps}\n />\n )\n )\n })}\n </Box>\n )}\n </>\n )\n}\n\nexport default AccountLevelBadges\n"],"mappings":";;;;;;;;;;;AAeA,IAAM,IACJ;AAIF,SAAgB,EAAmB,EAAE,aAAmC;CACtE,IAAM,EACJ,MAAM,GACN,cACA,aACE,EACF,GACA,CACF,GAEM,IAAwD;EAC5D,WAAW,GAAY,eAAe;EACtC,WAAW,GAAY,cAAc;EACrC,YAAY,GAAY,aAAa,wBAAwB;CAC/D,GACM,IAAY,OAAO,OAAO,CAAa,EAAE,MAAK,MAAS,CAAK,GAE5D,EACJ,YAAY,GACZ,aAAa,GACb,yBAAyB,MACvB,EAAyB;EAC3B;EACA,aAAa,EACX,SAAS,WACX;CACF,CAAC;CASD,OAPI,IACK,kBAAA,GAAA,CAAI,CAAA,IAET,IACK,kBAAC,GAAD,EAAoB,SAAQ,CAAA,IAInC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAoB,GAAI,EAA6C,CAAA,GACpE,KACC,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,KAAK;GACL,gBAAgB;GAChB,UAAU;EACZ;YAEC,OAAO,QAAQ,CAAa,EAAE,KAAK,CAAC,GAAK,OAAW;GACnD,IAAM,IAAY;GAKlB,OACE,KACE,kBAAC,GAAD;IAEa;IACE,aARjB,MAAc,eAAe,IACzB,IACA,KAAA;GAOD,GAHM,CAGN;EAGP,CAAC;CACE,CAAA,CAEP,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRevokeCertificationUI.js","names":[],"sources":["../../../src/components/AccountLevelBadges/useRevokeCertificationUI.tsx"],"sourcesContent":["import { useIsCurrentUserACTMember } from '@/synapse-queries'\nimport { useRevokeCertification } from '@/synapse-queries/user/useRevokeCertification'\nimport { ButtonProps, Link, Typography } from '@mui/material'\nimport { useMemo, useState } from 'react'\nimport { ConfirmationDialogProps } from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { displayToast } from '../ToastMessage'\n\nexport type RevokeCertificationUIOptions = {\n /* The ID of the user whose certification may be revoked. */\n userId: string\n buttonProps: Omit<ButtonProps, 'onClick'>\n}\n\nexport type RevokeCertificationUIReturn = {\n /* Whether a button to revoke certification should be shown (i.e. is the logged-in user ACT?)*/\n showButton: boolean\n /* Props to pass to a MUI Button to show a prompt to revoke certification. */\n buttonProps: ButtonProps\n /* Props to pass to a ConfirmationDialog to confirm/cancel revocation. */\n confirmationDialogProps: ConfirmationDialogProps\n}\n\n/**\n * Hook that provides UI data and props related to revoking a user's certification.\n * @param options\n */\nexport default function useRevokeCertificationUI(\n options: RevokeCertificationUIOptions,\n): RevokeCertificationUIReturn {\n const { userId, buttonProps: additionalButtonProps } = options\n const [showConfirmationDialog, setShowConfirmationDialog] = useState(false)\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n const { mutate: revokeCertification, isPending } = useRevokeCertification({\n onSettled: () => {\n setShowConfirmationDialog(false)\n },\n onSuccess: () => {\n displayToast('User certification revoked', 'success')\n },\n onError: error => {\n displayToast(error.message, 'danger')\n },\n })\n\n const buttonProps: ButtonProps = useMemo(\n () => ({\n children: 'Revoke Certification',\n ...additionalButtonProps,\n disabled: isPending || additionalButtonProps.disabled,\n onClick: () => setShowConfirmationDialog(true),\n }),\n [additionalButtonProps, isPending],\n )\n\n const confirmationDialogProps: ConfirmationDialogProps = useMemo(\n () => ({\n title: 'Revoke user certification?',\n onCancel: () => setShowConfirmationDialog(false),\n open: showConfirmationDialog,\n content: (\n <>\n <Typography variant={'body1'} sx={{ fontWeight: 'bold', mb: 2.5 }}>\n This action can't be undone.\n </Typography>\n <Typography variant={'body1'} sx={{ my: 2.5 }}>\n Revoking user certification means this user won’t be able to upload\n files or tables, or make new projects or folders. To become\n certified again, they’ll have to retake the certification quiz.\n </Typography>\n <Typography variant={'body1'} sx={{ mt: 2.5 }}>\n <Link\n href={\n 'https://help.synapse.org/docs/Synapse-User-Account-Types.2007072795.html#SynapseUserAccountTypes-CertifiedUser'\n }\n >\n More about certified users\n </Link>\n </Typography>\n </>\n ),\n onConfirm: () => {\n revokeCertification(userId)\n },\n confirmButtonProps: {\n children: 'Revoke',\n disabled: isPending,\n startIcon: isPending ? <SynapseSpinner /> : null,\n },\n cancelButtonProps: { disabled: isPending },\n }),\n [isPending, revokeCertification, showConfirmationDialog, userId],\n )\n\n return { showButton: isACT || false, buttonProps, confirmationDialogProps }\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAwB,EACtB,GAC6B;CAC7B,IAAM,EAAE,WAAQ,aAAa,MAA0B,GACjD,CAAC,GAAwB,KAA6B,EAAS,
|
|
1
|
+
{"version":3,"file":"useRevokeCertificationUI.js","names":[],"sources":["../../../src/components/AccountLevelBadges/useRevokeCertificationUI.tsx"],"sourcesContent":["import { useIsCurrentUserACTMember } from '@/synapse-queries'\nimport { useRevokeCertification } from '@/synapse-queries/user/useRevokeCertification'\nimport { ButtonProps, Link, Typography } from '@mui/material'\nimport { useMemo, useState } from 'react'\nimport { ConfirmationDialogProps } from '../ConfirmationDialog'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport { displayToast } from '../ToastMessage'\n\nexport type RevokeCertificationUIOptions = {\n /* The ID of the user whose certification may be revoked. */\n userId: string\n buttonProps: Omit<ButtonProps, 'onClick'>\n}\n\nexport type RevokeCertificationUIReturn = {\n /* Whether a button to revoke certification should be shown (i.e. is the logged-in user ACT?)*/\n showButton: boolean\n /* Props to pass to a MUI Button to show a prompt to revoke certification. */\n buttonProps: ButtonProps\n /* Props to pass to a ConfirmationDialog to confirm/cancel revocation. */\n confirmationDialogProps: ConfirmationDialogProps\n}\n\n/**\n * Hook that provides UI data and props related to revoking a user's certification.\n * @param options\n */\nexport default function useRevokeCertificationUI(\n options: RevokeCertificationUIOptions,\n): RevokeCertificationUIReturn {\n const { userId, buttonProps: additionalButtonProps } = options\n const [showConfirmationDialog, setShowConfirmationDialog] = useState(false)\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n const { mutate: revokeCertification, isPending } = useRevokeCertification({\n onSettled: () => {\n setShowConfirmationDialog(false)\n },\n onSuccess: () => {\n displayToast('User certification revoked', 'success')\n },\n onError: error => {\n displayToast(error.message, 'danger')\n },\n })\n\n const buttonProps: ButtonProps = useMemo(\n () => ({\n children: 'Revoke Certification',\n ...additionalButtonProps,\n disabled: isPending || additionalButtonProps.disabled,\n onClick: () => setShowConfirmationDialog(true),\n }),\n [additionalButtonProps, isPending],\n )\n\n const confirmationDialogProps: ConfirmationDialogProps = useMemo(\n () => ({\n title: 'Revoke user certification?',\n onCancel: () => setShowConfirmationDialog(false),\n open: showConfirmationDialog,\n content: (\n <>\n <Typography variant={'body1'} sx={{ fontWeight: 'bold', mb: 2.5 }}>\n This action can't be undone.\n </Typography>\n <Typography variant={'body1'} sx={{ my: 2.5 }}>\n Revoking user certification means this user won’t be able to upload\n files or tables, or make new projects or folders. To become\n certified again, they’ll have to retake the certification quiz.\n </Typography>\n <Typography variant={'body1'} sx={{ mt: 2.5 }}>\n <Link\n href={\n 'https://help.synapse.org/docs/Synapse-User-Account-Types.2007072795.html#SynapseUserAccountTypes-CertifiedUser'\n }\n >\n More about certified users\n </Link>\n </Typography>\n </>\n ),\n onConfirm: () => {\n revokeCertification(userId)\n },\n confirmButtonProps: {\n children: 'Revoke',\n disabled: isPending,\n startIcon: isPending ? <SynapseSpinner /> : null,\n },\n cancelButtonProps: { disabled: isPending },\n }),\n [isPending, revokeCertification, showConfirmationDialog, userId],\n )\n\n return { showButton: isACT || false, buttonProps, confirmationDialogProps }\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAwB,EACtB,GAC6B;CAC7B,IAAM,EAAE,WAAQ,aAAa,MAA0B,GACjD,CAAC,GAAwB,KAA6B,EAAS,EAAK,GAEpE,EAAE,MAAM,MAAU,EAA0B,GAE5C,EAAE,QAAQ,GAAqB,iBAAc,EAAuB;EACxE,iBAAiB;GACf,EAA0B,EAAK;EACjC;EACA,iBAAiB;GACf,EAAa,8BAA8B,SAAS;EACtD;EACA,UAAS,MAAS;GAChB,EAAa,EAAM,SAAS,QAAQ;EACtC;CACF,CAAC,GAEK,IAA2B,SACxB;EACL,UAAU;EACV,GAAG;EACH,UAAU,KAAa,EAAsB;EAC7C,eAAe,EAA0B,EAAI;CAC/C,IACA,CAAC,GAAuB,CAAS,CACnC,GAEM,IAAmD,SAChD;EACL,OAAO;EACP,gBAAgB,EAA0B,EAAK;EAC/C,MAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI;KAAE,YAAY;KAAQ,IAAI;IAAI;cAAG;GAEvD,CAAA;GACZ,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI,EAAE,IAAI,IAAI;cAAG;GAInC,CAAA;GACZ,kBAAC,GAAD;IAAY,SAAS;IAAS,IAAI,EAAE,IAAI,IAAI;cAC1C,kBAAC,GAAD;KACE,MACE;eAEH;IAEK,CAAA;GACI,CAAA;EACZ,EAAA,CAAA;EAEJ,iBAAiB;GACf,EAAoB,CAAM;EAC5B;EACA,oBAAoB;GAClB,UAAU;GACV,UAAU;GACV,WAAW,IAAY,kBAAC,GAAD,CAAiB,CAAA,IAAI;EAC9C;EACA,mBAAmB,EAAE,UAAU,EAAU;CAC3C,IACA;EAAC;EAAW;EAAqB;EAAwB;CAAM,CACjE;CAEA,OAAO;EAAE,YAAY,KAAS;EAAO;EAAa;CAAwB;AAC5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcknowledgementsDialog.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsDialog.tsx"],"sourcesContent":["import { Box, Button, Link, Typography } from '@mui/material'\nimport { DialogBase } from '../DialogBase'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { useMemo } from 'react'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\nimport { displayToast } from '../ToastMessage'\n\nexport type AcknowledgementsDialogProps = {\n open: boolean\n onClose: () => void\n createDoiHelpUrl: string\n portalAcknowledgement?: string\n dataAvailabilityStatement?: string\n studyAcknowledgements?: AcknowledgementItem[]\n}\n\nexport function AcknowledgementsDialog(props: AcknowledgementsDialogProps) {\n const {\n createDoiHelpUrl,\n open,\n onClose,\n portalAcknowledgement,\n dataAvailabilityStatement,\n studyAcknowledgements,\n } = props\n\n const textContent = useMemo(() => {\n let content = ''\n if (portalAcknowledgement) {\n content += `PORTAL ACKNOWLEDGEMENT STATEMENT\\n\\n${portalAcknowledgement}\\n\\n`\n }\n if (studyAcknowledgements && studyAcknowledgements.length > 0) {\n content += 'STUDY-SPECIFIC ACKNOWLEDGEMENT STATEMENTS:\\n\\n'\n studyAcknowledgements.forEach(item => {\n content += `* ${item.title}\\n\\n${item.statement}\\n\\n`\n })\n }\n if (dataAvailabilityStatement) {\n content += `DATA AVAILABILITY STATEMENT\\n\\n${dataAvailabilityStatement}\\n\\n`\n }\n return content.trim()\n }, [portalAcknowledgement, dataAvailabilityStatement, studyAcknowledgements])\n return (\n <DialogBase\n title=\"Acknowledgement Text\"\n open={open}\n onCancel={onClose}\n maxWidth=\"md\"\n content={\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>\n <Box\n sx={{\n p: '12px',\n backgroundColor: '#FBF4E0',\n height: 'fit-content',\n }}\n >\n <Typography variant=\"body1\">\n <strong>Note:</strong> You must customize the text in the Data\n Availability Statement to match the contents used in your\n publication.{' '}\n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How do I generate a DOI for my dataset?\n </Link>\n </Typography>\n </Box>\n <Box\n sx={{\n p: '10px',\n backgroundColor: 'grey.200',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n height: '250px',\n overflow: 'auto',\n }}\n >\n <Typography variant=\"body1\">{textContent}</Typography>\n </Box>\n </Box>\n }\n actions={\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n copyStringToClipboard(textContent).then(() => {\n displayToast('Successfully copied to clipboard', 'success')\n })\n }}\n >\n Copy to Clipboard\n </Button>\n }\n ></DialogBase>\n )\n}\n\nexport default AcknowledgementsDialog\n"],"mappings":";;;;;;;;AAgBA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,qBACA,SACA,YACA,0BACA,8BACA,6BACE,GAEE,IAAc,QAAc;EAChC,IAAI,IAAU;
|
|
1
|
+
{"version":3,"file":"AcknowledgementsDialog.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsDialog.tsx"],"sourcesContent":["import { Box, Button, Link, Typography } from '@mui/material'\nimport { DialogBase } from '../DialogBase'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { useMemo } from 'react'\nimport { copyStringToClipboard } from '@/utils/functions/StringUtils'\nimport { displayToast } from '../ToastMessage'\n\nexport type AcknowledgementsDialogProps = {\n open: boolean\n onClose: () => void\n createDoiHelpUrl: string\n portalAcknowledgement?: string\n dataAvailabilityStatement?: string\n studyAcknowledgements?: AcknowledgementItem[]\n}\n\nexport function AcknowledgementsDialog(props: AcknowledgementsDialogProps) {\n const {\n createDoiHelpUrl,\n open,\n onClose,\n portalAcknowledgement,\n dataAvailabilityStatement,\n studyAcknowledgements,\n } = props\n\n const textContent = useMemo(() => {\n let content = ''\n if (portalAcknowledgement) {\n content += `PORTAL ACKNOWLEDGEMENT STATEMENT\\n\\n${portalAcknowledgement}\\n\\n`\n }\n if (studyAcknowledgements && studyAcknowledgements.length > 0) {\n content += 'STUDY-SPECIFIC ACKNOWLEDGEMENT STATEMENTS:\\n\\n'\n studyAcknowledgements.forEach(item => {\n content += `* ${item.title}\\n\\n${item.statement}\\n\\n`\n })\n }\n if (dataAvailabilityStatement) {\n content += `DATA AVAILABILITY STATEMENT\\n\\n${dataAvailabilityStatement}\\n\\n`\n }\n return content.trim()\n }, [portalAcknowledgement, dataAvailabilityStatement, studyAcknowledgements])\n return (\n <DialogBase\n title=\"Acknowledgement Text\"\n open={open}\n onCancel={onClose}\n maxWidth=\"md\"\n content={\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>\n <Box\n sx={{\n p: '12px',\n backgroundColor: '#FBF4E0',\n height: 'fit-content',\n }}\n >\n <Typography variant=\"body1\">\n <strong>Note:</strong> You must customize the text in the Data\n Availability Statement to match the contents used in your\n publication.{' '}\n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How do I generate a DOI for my dataset?\n </Link>\n </Typography>\n </Box>\n <Box\n sx={{\n p: '10px',\n backgroundColor: 'grey.200',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n height: '250px',\n overflow: 'auto',\n }}\n >\n <Typography variant=\"body1\">{textContent}</Typography>\n </Box>\n </Box>\n }\n actions={\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => {\n copyStringToClipboard(textContent).then(() => {\n displayToast('Successfully copied to clipboard', 'success')\n })\n }}\n >\n Copy to Clipboard\n </Button>\n }\n ></DialogBase>\n )\n}\n\nexport default AcknowledgementsDialog\n"],"mappings":";;;;;;;;AAgBA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,qBACA,SACA,YACA,0BACA,8BACA,6BACE,GAEE,IAAc,QAAc;EAChC,IAAI,IAAU;EAad,OAZI,MACF,KAAW,uCAAuC,EAAsB,QAEtE,KAAyB,EAAsB,SAAS,MAC1D,KAAW,kDACX,EAAsB,SAAQ,MAAQ;GACpC,KAAW,KAAK,EAAK,MAAM,MAAM,EAAK,UAAU;EAClD,CAAC,IAEC,MACF,KAAW,kCAAkC,EAA0B,QAElE,EAAQ,KAAK;CACtB,GAAG;EAAC;EAAuB;EAA2B;CAAqB,CAAC;CAC5E,OACE,kBAAC,GAAD;EACE,OAAM;EACA;EACN,UAAU;EACV,UAAS;EACT,SACE,kBAAC,GAAD;GAAK,IAAI;IAAE,SAAS;IAAQ,eAAe;IAAU,KAAK;GAAO;aAAjE,CACE,kBAAC,GAAD;IACE,IAAI;KACF,GAAG;KACH,iBAAiB;KACjB,QAAQ;IACV;cAEA,kBAAC,GAAD;KAAY,SAAQ;eAApB;MACE,kBAAC,UAAD,EAAA,UAAQ,QAAa,CAAA;MAAC;MAET;MACb,kBAAC,GAAD;OACE,MAAM;OACN,QAAO;OACP,KAAI;iBACL;MAEK,CAAA;KACI;;GACT,CAAA,GACL,kBAAC,GAAD;IACE,IAAI;KACF,GAAG;KACH,iBAAiB;KACjB,YAAY;KACZ,WAAW;KACX,QAAQ;KACR,UAAU;IACZ;cAEA,kBAAC,GAAD;KAAY,SAAQ;eAAS;IAAwB,CAAA;GAClD,CAAA,CACF;;EAEP,SACE,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,eAAe;IACb,EAAsB,CAAW,EAAE,WAAW;KAC5C,EAAa,oCAAoC,SAAS;IAC5D,CAAC;GACH;aACD;EAEO,CAAA;CAEC,CAAA;AAEjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcknowledgementsPage.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsPage.tsx"],"sourcesContent":["import { Box, Button, Container, Link, Typography } from '@mui/material'\nimport { useCallback, useState } from 'react'\nimport { ReactComponent as AcknowledgementStatementsIllustration } from '../../assets/illustrations/acknowledgement_statements_illustration.svg'\nimport TextToComponentCollapse from '../TextToComponentCollapse'\nimport AcknowledgementsDialog from './AcknowledgementsDialog'\nimport { MarkdownSynapseProps } from '../Markdown/MarkdownSynapse'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { StudyAcknowledgements } from './StudyAcknowledgements'\nimport { LaunchTwoTone } from '@mui/icons-material'\nexport type AcknowledgementPageProps = {\n portalName: string\n createDoiHelpUrl: string\n portalAcknowledgementProps?: MarkdownSynapseProps\n dataAvailabilityProps?: MarkdownSynapseProps\n studyAcknowledgementSql: string\n}\n\nexport type AcknowledgementItem = {\n title: string\n statement: string\n}\n\nexport function AcknowledgementPage(props: AcknowledgementPageProps) {\n const {\n portalName,\n createDoiHelpUrl,\n portalAcknowledgementProps,\n dataAvailabilityProps,\n studyAcknowledgementSql,\n } = props\n const [isAcknowledgementsDialogOpen, setAcknowledgementsDialogOpen] =\n useState<boolean>(false)\n\n const [portalAcknowledgement, setPortalAcknowledgement] = useState<string>()\n const [dataAvailabilityStatement, setDataAvailabilityStatement] =\n useState<string>()\n const [acknowledgementItems, setAcknowledgementItems] = useState<\n AcknowledgementItem[]\n >([])\n const handleCloseDialog = useCallback(\n () => setAcknowledgementsDialogOpen(false),\n [],\n )\n return (\n <>\n <Container maxWidth={'lg'} sx={{ mt: '2em', mb: '2em' }}>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to acknowledge data from this portal\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The data available in the {portalName} would not be possible without\n the participation of research volunteers and the contribution of data\n by collaborating researchers. All use of data from the {portalName}{' '}\n must be acknowledged and referenced appropriately.\n </Typography>\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n All publications using {portalName} data must include the provided\n statements:\n </Typography>\n <Box sx={{ mb: '2em', svg: { maxWidth: '100%' } }}>\n <AcknowledgementStatementsIllustration />\n </Box>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to use this page:\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '.5em' }}>\n This page will guide you through creating the acknowledgement\n statements required when publishing with {portalName} data.\n </Typography>\n <Typography\n variant=\"body1\"\n component={'div'}\n sx={{\n mb: '2em',\n '& li::marker': {\n fontWeight: 'bold', // bold the number\n },\n }}\n >\n <ol>\n <li>\n <strong>Select study acknowledgement statements</strong>\n <br />\n From the list below, select all the studies whose data you used.\n Each study has a pre-written acknowledgement statement that must\n be included in your publication.\n </li>\n <li>\n <strong>Generate compiled statement</strong>\n <br />\n Click the Generate Compiled Statement button at the bottom of the\n page. This will compile:\n <ul>\n <li>The Portal Acknowledgement Statement</li>\n <li>The acknowledgement(s) for the studies you selected</li>\n <li>A template data availability statement</li>\n </ul>\n <i>\n Important: You will need to edit the compiled statement to add a\n brief description of the data used in your manuscript and a DOI\n that points to your dataset.\n </i>\n </li>\n <li>\n <strong>Create a DOI for your dataset</strong>\n <br />\n As part of the data availability statement, you will need to\n create a dataset that captures all files used in your publication\n and mint the dataset with a persistent Digital Object Identifier\n (DOI). For more instructions read \n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How to get a DOI for your Publication\n </Link>\n </li>\n </ol>\n </Typography>\n <Typography component={'div'} variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n <ol start={1} style={{ paddingInlineStart: '20px' }}>\n <li>Select study acknowledgement statements</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\">\n From the list below, select all studies whose data you used. Each\n study has a pre-written acknowledgement statement that must be\n included in your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '2em' }}>\n You can also expand each section for detailed information or click\n \"Copy full statement to clipboard\" to save the text.\n </Typography>\n <StudyAcknowledgements\n sql={studyAcknowledgementSql}\n onSelectChange={(item, checked) => {\n if (checked) {\n // add\n acknowledgementItems.push(item)\n } else {\n // remove\n const index = acknowledgementItems.findIndex(\n i => i.title === item.title && i.statement === item.statement,\n )\n if (index > -1) {\n acknowledgementItems.splice(index, 1)\n }\n }\n setAcknowledgementItems([...acknowledgementItems])\n }}\n />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={2} style={{ paddingInlineStart: '25px' }}>\n <li>Generate compiled statement</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n Click to generate a compiled statement for your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The generated text will include your selected study acknowledgement\n statements and all other required statements listed below.\n </Typography>\n <Button\n variant=\"contained\"\n onClick={() => setAcknowledgementsDialogOpen(true)}\n sx={{ mb: '3em' }}\n >\n Generate compiled statement\n </Button>\n <TextToComponentCollapse\n text={'Click to see other text included in the compiled statement'}\n textVariant=\"h5\"\n textSx={{ fontSize: '16px', fontWeight: 'bold' }}\n textContainerSx={{ backgroundColor: 'unset', p: 0 }}\n collapseBoxSx={{ backgroundColor: 'unset', p: '20px 0px' }}\n iconSx={{ width: '20px', height: '20px' }}\n >\n {portalAcknowledgementProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', mb: '1em' }}>\n Portal Acknowledgement Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...portalAcknowledgementProps}\n setPlainTextResult={setPortalAcknowledgement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n {dataAvailabilityProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', m: '1em 0' }}>\n Data Availability Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...dataAvailabilityProps}\n setPlainTextResult={setDataAvailabilityStatement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n </TextToComponentCollapse>\n <hr />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={3} style={{ paddingInlineStart: '25px' }}>\n <li>Create a DOI for your dataset</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n A digital object identifier (DOI) provides a persistent identifier\n that allows readers to find the data cited in your publication.\n Creating a DOI in the Synapse platform is free and required as part of\n the data availability statement.\n </Typography>\n\n <Button\n variant=\"outlined\"\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <LaunchTwoTone sx={{ mr: '0.5em' }} />\n Learn how to get a DOI for your publication\n </Button>\n </Container>\n\n <AcknowledgementsDialog\n open={isAcknowledgementsDialogOpen}\n onClose={handleCloseDialog}\n createDoiHelpUrl={createDoiHelpUrl}\n portalAcknowledgement={portalAcknowledgement}\n dataAvailabilityStatement={dataAvailabilityStatement}\n studyAcknowledgements={acknowledgementItems}\n />\n </>\n )\n}\n\nexport default AcknowledgementPage\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AcknowledgementsPage.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/AcknowledgementsPage.tsx"],"sourcesContent":["import { Box, Button, Container, Link, Typography } from '@mui/material'\nimport { useCallback, useState } from 'react'\nimport { ReactComponent as AcknowledgementStatementsIllustration } from '../../assets/illustrations/acknowledgement_statements_illustration.svg'\nimport TextToComponentCollapse from '../TextToComponentCollapse'\nimport AcknowledgementsDialog from './AcknowledgementsDialog'\nimport { MarkdownSynapseProps } from '../Markdown/MarkdownSynapse'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { StudyAcknowledgements } from './StudyAcknowledgements'\nimport { LaunchTwoTone } from '@mui/icons-material'\nexport type AcknowledgementPageProps = {\n portalName: string\n createDoiHelpUrl: string\n portalAcknowledgementProps?: MarkdownSynapseProps\n dataAvailabilityProps?: MarkdownSynapseProps\n studyAcknowledgementSql: string\n}\n\nexport type AcknowledgementItem = {\n title: string\n statement: string\n}\n\nexport function AcknowledgementPage(props: AcknowledgementPageProps) {\n const {\n portalName,\n createDoiHelpUrl,\n portalAcknowledgementProps,\n dataAvailabilityProps,\n studyAcknowledgementSql,\n } = props\n const [isAcknowledgementsDialogOpen, setAcknowledgementsDialogOpen] =\n useState<boolean>(false)\n\n const [portalAcknowledgement, setPortalAcknowledgement] = useState<string>()\n const [dataAvailabilityStatement, setDataAvailabilityStatement] =\n useState<string>()\n const [acknowledgementItems, setAcknowledgementItems] = useState<\n AcknowledgementItem[]\n >([])\n const handleCloseDialog = useCallback(\n () => setAcknowledgementsDialogOpen(false),\n [],\n )\n return (\n <>\n <Container maxWidth={'lg'} sx={{ mt: '2em', mb: '2em' }}>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to acknowledge data from this portal\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The data available in the {portalName} would not be possible without\n the participation of research volunteers and the contribution of data\n by collaborating researchers. All use of data from the {portalName}{' '}\n must be acknowledged and referenced appropriately.\n </Typography>\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n All publications using {portalName} data must include the provided\n statements:\n </Typography>\n <Box sx={{ mb: '2em', svg: { maxWidth: '100%' } }}>\n <AcknowledgementStatementsIllustration />\n </Box>\n <Typography variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n How to use this page:\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '.5em' }}>\n This page will guide you through creating the acknowledgement\n statements required when publishing with {portalName} data.\n </Typography>\n <Typography\n variant=\"body1\"\n component={'div'}\n sx={{\n mb: '2em',\n '& li::marker': {\n fontWeight: 'bold', // bold the number\n },\n }}\n >\n <ol>\n <li>\n <strong>Select study acknowledgement statements</strong>\n <br />\n From the list below, select all the studies whose data you used.\n Each study has a pre-written acknowledgement statement that must\n be included in your publication.\n </li>\n <li>\n <strong>Generate compiled statement</strong>\n <br />\n Click the Generate Compiled Statement button at the bottom of the\n page. This will compile:\n <ul>\n <li>The Portal Acknowledgement Statement</li>\n <li>The acknowledgement(s) for the studies you selected</li>\n <li>A template data availability statement</li>\n </ul>\n <i>\n Important: You will need to edit the compiled statement to add a\n brief description of the data used in your manuscript and a DOI\n that points to your dataset.\n </i>\n </li>\n <li>\n <strong>Create a DOI for your dataset</strong>\n <br />\n As part of the data availability statement, you will need to\n create a dataset that captures all files used in your publication\n and mint the dataset with a persistent Digital Object Identifier\n (DOI). For more instructions read \n <Link\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n How to get a DOI for your Publication\n </Link>\n </li>\n </ol>\n </Typography>\n <Typography component={'div'} variant=\"h5\" sx={{ fontWeight: 'bold' }}>\n <ol start={1} style={{ paddingInlineStart: '20px' }}>\n <li>Select study acknowledgement statements</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\">\n From the list below, select all studies whose data you used. Each\n study has a pre-written acknowledgement statement that must be\n included in your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '2em' }}>\n You can also expand each section for detailed information or click\n \"Copy full statement to clipboard\" to save the text.\n </Typography>\n <StudyAcknowledgements\n sql={studyAcknowledgementSql}\n onSelectChange={(item, checked) => {\n if (checked) {\n // add\n acknowledgementItems.push(item)\n } else {\n // remove\n const index = acknowledgementItems.findIndex(\n i => i.title === item.title && i.statement === item.statement,\n )\n if (index > -1) {\n acknowledgementItems.splice(index, 1)\n }\n }\n setAcknowledgementItems([...acknowledgementItems])\n }}\n />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={2} style={{ paddingInlineStart: '25px' }}>\n <li>Generate compiled statement</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ fontWeight: 'bold', mb: '1em' }}>\n Click to generate a compiled statement for your publication.\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n The generated text will include your selected study acknowledgement\n statements and all other required statements listed below.\n </Typography>\n <Button\n variant=\"contained\"\n onClick={() => setAcknowledgementsDialogOpen(true)}\n sx={{ mb: '3em' }}\n >\n Generate compiled statement\n </Button>\n <TextToComponentCollapse\n text={'Click to see other text included in the compiled statement'}\n textVariant=\"h5\"\n textSx={{ fontSize: '16px', fontWeight: 'bold' }}\n textContainerSx={{ backgroundColor: 'unset', p: 0 }}\n collapseBoxSx={{ backgroundColor: 'unset', p: '20px 0px' }}\n iconSx={{ width: '20px', height: '20px' }}\n >\n {portalAcknowledgementProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', mb: '1em' }}>\n Portal Acknowledgement Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...portalAcknowledgementProps}\n setPlainTextResult={setPortalAcknowledgement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n {dataAvailabilityProps && (\n <>\n <Typography variant=\"h5\" sx={{ fontSize: '18px', m: '1em 0' }}>\n Data Availability Statement (Required)\n </Typography>\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n This statement is required and automatically included in the\n compiled statement\n </Typography>\n <MarkdownCollapse\n {...dataAvailabilityProps}\n setPlainTextResult={setDataAvailabilityStatement}\n textDescription=\"full statement\"\n showCopyPlainText={true}\n />\n </>\n )}\n </TextToComponentCollapse>\n <hr />\n <Typography variant=\"h5\" component={'div'} sx={{ fontWeight: 'bold' }}>\n <ol start={3} style={{ paddingInlineStart: '25px' }}>\n <li>Create a DOI for your dataset</li>\n </ol>\n </Typography>\n <hr />\n <Typography variant=\"body1\" sx={{ mb: '1em' }}>\n A digital object identifier (DOI) provides a persistent identifier\n that allows readers to find the data cited in your publication.\n Creating a DOI in the Synapse platform is free and required as part of\n the data availability statement.\n </Typography>\n\n <Button\n variant=\"outlined\"\n href={createDoiHelpUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <LaunchTwoTone sx={{ mr: '0.5em' }} />\n Learn how to get a DOI for your publication\n </Button>\n </Container>\n\n <AcknowledgementsDialog\n open={isAcknowledgementsDialogOpen}\n onClose={handleCloseDialog}\n createDoiHelpUrl={createDoiHelpUrl}\n portalAcknowledgement={portalAcknowledgement}\n dataAvailabilityStatement={dataAvailabilityStatement}\n studyAcknowledgements={acknowledgementItems}\n />\n </>\n )\n}\n\nexport default AcknowledgementPage\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudyAcknowledgement.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { transformStringIntoMarkdownProps } from '../Markdown/MarkdownUtils'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { Box, Checkbox, FormControlLabel, Typography } from '@mui/material'\n\nexport type StudyAcknowledgementProps = {\n studyName: string\n acknowledgementStatementWikiRef: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgement({\n studyName,\n acknowledgementStatementWikiRef,\n onSelectChange,\n}: StudyAcknowledgementProps) {\n const [acknowledgementItem, setAcknowledgementItem] = useState<\n AcknowledgementItem | undefined\n >()\n const [checked, setChecked] = useState(false)\n const setPlainTextResult = (plainText: string) => {\n setAcknowledgementItem({\n title: studyName,\n statement: plainText,\n })\n }\n const handleCheckboxChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked\n setChecked(isChecked)\n if (acknowledgementItem && onSelectChange) {\n onSelectChange(acknowledgementItem, isChecked)\n }\n }\n const markdownCollapseProps = useMemo(() => {\n return transformStringIntoMarkdownProps(acknowledgementStatementWikiRef)\n }, [acknowledgementStatementWikiRef])\n return (\n <Box sx={{ mb: '20px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={checked}\n onChange={handleCheckboxChange}\n disabled={!acknowledgementItem}\n />\n }\n label={<Typography variant=\"body1\">{studyName}</Typography>}\n />\n <MarkdownCollapse\n {...markdownCollapseProps}\n setPlainTextResult={setPlainTextResult}\n showCopyPlainText={true}\n textDescription=\"full statement\"\n />\n </Box>\n )\n}\n"],"mappings":";;;;;;AAYA,SAAgB,EAAqB,EACnC,cACA,oCACA,qBAC4B;CAC5B,IAAM,CAAC,GAAqB,KAA0B,
|
|
1
|
+
{"version":3,"file":"StudyAcknowledgement.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport MarkdownCollapse from '../Markdown/MarkdownCollapse'\nimport { transformStringIntoMarkdownProps } from '../Markdown/MarkdownUtils'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\nimport { Box, Checkbox, FormControlLabel, Typography } from '@mui/material'\n\nexport type StudyAcknowledgementProps = {\n studyName: string\n acknowledgementStatementWikiRef: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgement({\n studyName,\n acknowledgementStatementWikiRef,\n onSelectChange,\n}: StudyAcknowledgementProps) {\n const [acknowledgementItem, setAcknowledgementItem] = useState<\n AcknowledgementItem | undefined\n >()\n const [checked, setChecked] = useState(false)\n const setPlainTextResult = (plainText: string) => {\n setAcknowledgementItem({\n title: studyName,\n statement: plainText,\n })\n }\n const handleCheckboxChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked\n setChecked(isChecked)\n if (acknowledgementItem && onSelectChange) {\n onSelectChange(acknowledgementItem, isChecked)\n }\n }\n const markdownCollapseProps = useMemo(() => {\n return transformStringIntoMarkdownProps(acknowledgementStatementWikiRef)\n }, [acknowledgementStatementWikiRef])\n return (\n <Box sx={{ mb: '20px' }}>\n <FormControlLabel\n control={\n <Checkbox\n checked={checked}\n onChange={handleCheckboxChange}\n disabled={!acknowledgementItem}\n />\n }\n label={<Typography variant=\"body1\">{studyName}</Typography>}\n />\n <MarkdownCollapse\n {...markdownCollapseProps}\n setPlainTextResult={setPlainTextResult}\n showCopyPlainText={true}\n textDescription=\"full statement\"\n />\n </Box>\n )\n}\n"],"mappings":";;;;;;AAYA,SAAgB,EAAqB,EACnC,cACA,oCACA,qBAC4B;CAC5B,IAAM,CAAC,GAAqB,KAA0B,EAEpD,GACI,CAAC,GAAS,KAAc,EAAS,EAAK,GACtC,KAAsB,MAAsB;EAChD,EAAuB;GACrB,OAAO;GACP,WAAW;EACb,CAAC;CACH,GACM,KAAwB,MAA+C;EAC3E,IAAM,IAAY,EAAM,OAAO;EAE/B,AADA,EAAW,CAAS,GAChB,KAAuB,KACzB,EAAe,GAAqB,CAAS;CAEjD,GACM,IAAwB,QACrB,EAAiC,CAA+B,GACtE,CAAC,CAA+B,CAAC;CACpC,OACE,kBAAC,GAAD;EAAK,IAAI,EAAE,IAAI,OAAO;YAAtB,CACE,kBAAC,GAAD;GACE,SACE,kBAAC,GAAD;IACW;IACT,UAAU;IACV,UAAU,CAAC;GACZ,CAAA;GAEH,OAAO,kBAAC,GAAD;IAAY,SAAQ;cAAS;GAAsB,CAAA;EAC3D,CAAA,GACD,kBAAC,GAAD;GACE,GAAI;GACgB;GACpB,mBAAmB;GACnB,iBAAgB;EACjB,CAAA,CACE;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudyAcknowledgements.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgements.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport { StudyAcknowledgement } from './StudyAcknowledgement'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\n\nexport type StudyAcknowledgementsProps = {\n // First column should be the study name, second column should be the acknowledgement statement\n sql: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgements({\n sql,\n onSelectChange,\n}: StudyAcknowledgementsProps) {\n const entityId = parseEntityIdFromSqlStatement(sql)\n const { data } = useGetQueryResultBundleWithAsyncStatus({\n entityId: entityId,\n query: {\n sql,\n },\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n })\n\n // get raw data. parse and then inject? or just inject without parsing?\n const rows = data?.responseBody?.queryResult?.queryResults?.rows\n return (\n <>\n {rows?.map((row, index) => {\n const studyName = row.values[0]\n const acknowledgementStatementWikiRef = row.values[1]\n if (!studyName || !acknowledgementStatementWikiRef) {\n return null\n }\n return (\n <StudyAcknowledgement\n key={index}\n studyName={studyName}\n acknowledgementStatementWikiRef={acknowledgementStatementWikiRef}\n onSelectChange={onSelectChange}\n />\n )\n })}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,EAAsB,EACpC,QACA,qBAC6B;CAE7B,IAAM,EAAE,YAAS,EAAuC;EAC5C,UAFK,EAA8B,
|
|
1
|
+
{"version":3,"file":"StudyAcknowledgements.js","names":[],"sources":["../../../src/components/AcknowledgementsPage/StudyAcknowledgements.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions'\nimport { BUNDLE_MASK_QUERY_RESULTS } from '@/utils/SynapseConstants'\nimport { StudyAcknowledgement } from './StudyAcknowledgement'\nimport { AcknowledgementItem } from './AcknowledgementsPage'\n\nexport type StudyAcknowledgementsProps = {\n // First column should be the study name, second column should be the acknowledgement statement\n sql: string\n onSelectChange?: (item: AcknowledgementItem, checked: boolean) => void\n}\n\nexport function StudyAcknowledgements({\n sql,\n onSelectChange,\n}: StudyAcknowledgementsProps) {\n const entityId = parseEntityIdFromSqlStatement(sql)\n const { data } = useGetQueryResultBundleWithAsyncStatus({\n entityId: entityId,\n query: {\n sql,\n },\n partMask: BUNDLE_MASK_QUERY_RESULTS,\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n })\n\n // get raw data. parse and then inject? or just inject without parsing?\n const rows = data?.responseBody?.queryResult?.queryResults?.rows\n return (\n <>\n {rows?.map((row, index) => {\n const studyName = row.values[0]\n const acknowledgementStatementWikiRef = row.values[1]\n if (!studyName || !acknowledgementStatementWikiRef) {\n return null\n }\n return (\n <StudyAcknowledgement\n key={index}\n studyName={studyName}\n acknowledgementStatementWikiRef={acknowledgementStatementWikiRef}\n onSelectChange={onSelectChange}\n />\n )\n })}\n </>\n )\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,EAAsB,EACpC,QACA,qBAC6B;CAE7B,IAAM,EAAE,YAAS,EAAuC;EAC5C,UAFK,EAA8B,CAEnC;EACV,OAAO,EACL,OACF;EACA,UAAA;EACA,cAAc;CAChB,CAAC,GAGK,IAAO,GAAM,cAAc,aAAa,cAAc;CAC5D,OACE,kBAAA,GAAA,EAAA,UACG,GAAM,KAAK,GAAK,MAAU;EACzB,IAAM,IAAY,EAAI,OAAO,IACvB,IAAkC,EAAI,OAAO;EAInD,OAHI,CAAC,KAAa,CAAC,IACV,OAGP,kBAAC,GAAD;GAEa;GACsB;GACjB;EACjB,GAJM,CAIN;CAEL,CAAC,EACD,CAAA;AAEN"}
|