synapse-react-client 4.0.18 → 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 +3 -1
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +3 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/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.css +1 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts +13 -0
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.js +116 -0
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.js +22 -0
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -0
- package/dist/components/DataExplorer/DataExplorer.module.scss +156 -0
- package/dist/components/DataGrid/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.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +106 -102
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +97 -89
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/GridAutocompleteChip.js.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +19 -8
- package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js +64 -43
- package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
- package/dist/components/DataGrid/components/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.d.ts.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +9 -9
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
- package/dist/components/DataGrid/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.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +8 -1
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
- package/dist/components/DataGrid/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.d.ts.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +67 -65
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/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.d.ts +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +1 -0
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/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.d.ts +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js +1 -0
- package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.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.d.ts +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
- package/dist/components/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 +12 -12
- 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 +4 -4
- 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 +32 -32
- 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.d.ts +18 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +113 -0
- package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreview.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts +5 -5
- package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +27 -76
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts +19 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +41 -0
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts +12 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js +25 -0
- package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts +18 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js +55 -0
- package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts +19 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js +35 -0
- package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts +22 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js +32 -0
- package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts +14 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts.map +1 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js +23 -0
- package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -0
- package/dist/components/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.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -34
- 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 +11 -3
- 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.d.ts +2 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/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":"DatasetItemsEditor.js","names":[],"sources":["../../../../src/components/SynapseTable/datasets/DatasetItemsEditor.tsx"],"sourcesContent":["import React from 'react'\nimport WideButton from '@/components/styled/WideButton'\nimport { datasetItemToReference } from '@/components/SynapseTable/datasets/DatasetEditorUtils'\nimport {\n useGetEntity,\n useGetEntityPath,\n useUpdateEntity,\n} from '@/synapse-queries'\nimport { RequiredProperties } from '@/utils'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n isDataset,\n isDatasetCollection,\n} from '@/utils/functions/EntityTypeUtils'\nimport { useSet } from '@/utils/hooks'\nimport AddCircleTwoToneIcon from '@mui/icons-material/AddCircleTwoTone'\nimport {\n Alert,\n Button,\n Checkbox,\n Skeleton,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n EntityRef,\n EntityRefCollectionView,\n Reference,\n} from '@sage-bionetworks/synapse-types'\nimport {\n createColumnHelper,\n getCoreRowModel,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\nimport { isEqual, upperFirst } from 'lodash-es'\nimport pluralize from 'pluralize'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { CreatedOnCell } from '../../EntityFinder/details/view/table/CreatedOnCell'\nimport { EntityBadgeIconsCell } from '../../EntityFinder/details/view/table/EntityBadgeIconsCell'\nimport { EntityNameCell } from '../../EntityFinder/details/view/table/EntityNameCell'\nimport { ModifiedByCell } from '../../EntityFinder/details/view/table/ModifiedByCell'\nimport { ModifiedOnCell } from '../../EntityFinder/details/view/table/ModifiedOnCell'\nimport { ParentProjectCell } from '../../EntityFinder/details/view/table/ParentProjectCell'\nimport { EntityFinderModal } from '../../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../../EntityFinder/tree/EntityTree'\nimport { VersionSelectionType } from '../../EntityFinder/VersionSelectionType'\nimport { BlockingLoader } from '../../LoadingScreen/LoadingScreen'\nimport { SkeletonTable } from '../../Skeleton'\nimport WarningDialog from '../../SynapseForm/WarningDialog'\nimport ColumnHeader from '../../TanStackTable/ColumnHeader'\nimport StyledVirtualTanStackTable from '../../TanStackTable/StyledVirtualTanStackTable'\nimport { displayToast } from '../../ToastMessage'\nimport { DatasetEditorCheckboxCell } from './DatasetEditorCheckboxCell'\nimport { DatasetEditorVersionCell } from './DatasetEditorVersionCell'\nimport { EntityFetchErrorCell } from './EntityFetchErrorCell'\n\nexport type DatasetItemsEditorTableData = EntityRef & {\n isSelected: boolean\n setSelected: (value: boolean) => void\n}\n\nenum DatasetItemsEditorColumn {\n ERROR_STATE = 'errorState',\n SELECTED = 'isSelected',\n NAME = 'name',\n ENTITY_ID = 'entityId',\n BADGES = 'badges',\n VERSION = 'version',\n CREATED_ON = 'createdOn',\n MODIFIED_ON = 'modifieddOn',\n MODIFIED_BY = 'modifiedBy',\n PROJECT = 'project',\n}\n\nconst columnHelper = createColumnHelper<DatasetItemsEditorTableData>()\nfunction getColumns(\n opts: SelectAllCheckboxRendererProps & {\n changeVersionOnItem: (entityId: string, newVersion: number) => void\n },\n) {\n const {\n datasetToUpdate,\n selectedIds,\n clearSelectedIds,\n addSelectedId,\n allItemsAreSelected,\n changeVersionOnItem,\n } = opts\n return [\n columnHelper.display({\n id: DatasetItemsEditorColumn.ERROR_STATE,\n minSize: 35,\n maxSize: 35,\n size: 35,\n enableResizing: false,\n header: () => null,\n cell: EntityFetchErrorCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.SELECTED,\n minSize: 40,\n maxSize: 40,\n size: 40,\n enableResizing: false,\n header: () => (\n <SelectAllCheckboxRenderer\n datasetToUpdate={datasetToUpdate}\n selectedIds={selectedIds}\n clearSelectedIds={clearSelectedIds}\n addSelectedId={addSelectedId}\n allItemsAreSelected={allItemsAreSelected}\n />\n ),\n cell: DatasetEditorCheckboxCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.NAME,\n minSize: 50,\n size: 300,\n header: props => <ColumnHeader {...props} title={'Name'} />,\n cell: EntityNameCell,\n }),\n columnHelper.accessor(DatasetItemsEditorColumn.ENTITY_ID, {\n minSize: 50,\n size: 130,\n header: props => <ColumnHeader {...props} title={'ID'} />,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.BADGES,\n minSize: 80,\n size: 80,\n enableResizing: true,\n cell: EntityBadgeIconsCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.VERSION,\n minSize: 150,\n size: 150,\n header: props => <ColumnHeader {...props} title={'Version'} />,\n cell: props => (\n <DatasetEditorVersionCell\n {...props}\n toggleSelection={datasetItem => {\n changeVersionOnItem(datasetItem.entityId, datasetItem.versionNumber)\n }}\n />\n ),\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.CREATED_ON,\n header: props => <ColumnHeader {...props} title={'Created On'} />,\n size: 220,\n minSize: 170,\n cell: CreatedOnCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.MODIFIED_ON,\n header: props => <ColumnHeader {...props} title={'Modified On'} />,\n size: 220,\n minSize: 170,\n cell: ModifiedOnCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.MODIFIED_BY,\n header: props => <ColumnHeader {...props} title={'Modified By'} />,\n size: 250,\n enableResizing: true,\n cell: ModifiedByCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.PROJECT,\n header: props => <ColumnHeader {...props} title={'Size'} />,\n size: 300,\n cell: ParentProjectCell,\n }),\n ]\n}\n\nfunction getSelectableTypes(entity: EntityRefCollectionView) {\n if (isDataset(entity)) {\n return [EntityType.file]\n } else if (isDatasetCollection(entity)) {\n return [EntityType.dataset]\n } else {\n console.error(\n 'Cannot determine selectable types for entity type: ' +\n entity.concreteType,\n )\n return []\n }\n}\n\nexport function getCopy(entity?: EntityRefCollectionView) {\n const displayName = entity\n ? entityTypeToFriendlyName(convertToEntityType(entity.concreteType))\n : 'Collection'\n let itemName = 'Item'\n let currentVersionName = 'Current Version'\n if (entity && isDataset(entity)) {\n itemName = entityTypeToFriendlyName(EntityType.file)\n currentVersionName = 'Draft'\n } else if (entity && isDatasetCollection(entity)) {\n itemName = entityTypeToFriendlyName(EntityType.dataset)\n }\n\n const entityFinderPopover =\n entity && isDataset(entity)\n ? `Use the left pane to browse projects and folders. Select ${pluralize(\n itemName,\n )} from the right pane to add to this ${displayName}. ${upperFirst(\n pluralize(itemName),\n )} in a ${displayName} can be added from multiple folders. You can also use Search to find and select ${pluralize(\n itemName,\n )}.`\n : `Use the left pane to browse projects. Select ${pluralize(\n itemName,\n )} from the right pane to add to this ${displayName}. ${upperFirst(\n pluralize(itemName),\n )} in a ${displayName} can be added from multiple projects. You can also use Search to find and select ${pluralize(\n itemName,\n )}.`\n\n return {\n ADD_ITEMS: `Add ${pluralize(itemName)}`,\n ADD_ITEMS_TO: `Add ${pluralize(itemName)} to ${displayName}`,\n REMOVE_ITEMS: `Remove ${pluralize(itemName)}`,\n NO_ITEMS_IN_THIS_DATASET: `No ${pluralize(\n itemName,\n )} in this ${displayName}`,\n SAVE_TO_CONTINUE: `Save the ${displayName} to continue`,\n CREATE_VERSION_TO_FREEZE: `Create a Version of this ${displayName} to freeze it in its current state`,\n ENTITY_SAVED: `${displayName} Saved`,\n SAVE_CHANGES: `Save changes to ${currentVersionName}`,\n ENTITY_FINDER_POPOVER: entityFinderPopover,\n ENTITY_FINDER_PROMPT: `Find ${pluralize(\n itemName,\n )} to add to the ${displayName}.`,\n PRECONDITION_FAILED_MESSAGE: `Re-retrieve the ${displayName} to get the latest changes. Your current changes will be lost.`,\n PRECONDITION_FAILED_TITLE: `${displayName} updated since last fetched`,\n PRECONDITION_FAILED_ACTION: `Retrieve ${displayName}`,\n NO_CHANGES_MADE: `You have not made any changes to the ${displayName}.`,\n }\n}\n\nfunction getDataSetDifference(\n oldDataSet: EntityRef[],\n changedItems: EntityRef[],\n) {\n const unchangedItems = oldDataSet.filter(\n oldItem =>\n !changedItems.find(newItem => newItem.entityId === oldItem.entityId),\n )\n const deletedItems = [...unchangedItems]\n const { updatedItems, newItems } = changedItems.reduce(\n (results, result) => {\n const oldItem = oldDataSet.find(old => old.entityId === result.entityId)\n if (oldItem) {\n if (result.versionNumber !== oldItem.versionNumber) {\n results['updatedItems'].push(result)\n } else {\n unchangedItems.push(result)\n }\n } else {\n results['newItems'].push(result)\n }\n return results\n },\n { updatedItems: [], newItems: [] } as {\n updatedItems: EntityRef[]\n newItems: EntityRef[]\n },\n )\n\n return { unchangedItems, updatedItems, newItems, deletedItems }\n}\n\nfunction getDatasetChangedToastMessageTitle(\n previousDatasetToUpdate?: RequiredProperties<\n EntityRefCollectionView,\n 'items'\n >,\n datasetToUpdate?: RequiredProperties<EntityRefCollectionView, 'items'>,\n) {\n const { updatedItems, newItems, deletedItems } = getDataSetDifference(\n previousDatasetToUpdate?.items ?? [],\n datasetToUpdate?.items!,\n )\n let toastTitle = ''\n\n // \"X items(s) deleted\"\n if (deletedItems.length > 0) {\n toastTitle += `${deletedItems.length} Item${\n deletedItems.length === 1 ? '' : 's'\n } removed`\n } else {\n // \"Y item(s) added\"\n toastTitle += `${newItems.length} Item${\n newItems.length === 1 ? '' : 's'\n } added`\n\n // \"and Z item(s) updated\", only shown if there are updated items\n if (updatedItems.length > 0) {\n toastTitle += ` and ${updatedItems.length} Item${\n updatedItems.length === 1 ? '' : 's'\n } updated`\n }\n }\n return toastTitle\n}\n\nexport type DatasetItemsEditorProps = {\n /* The synId of the EntityRefCollectionView to modify */\n entityId: string\n /** Callback invoked when the editor changes state to contain un/saved changes. */\n onUnsavedChangesChange?: (hasUnsavedChanges: boolean) => void\n onSave?: () => void\n onClose?: () => void\n}\n\nconst ROW_HEIGHT = 48\n\ntype SelectAllCheckboxRendererProps = {\n datasetToUpdate: RequiredProperties<EntityRefCollectionView, 'items'>\n selectedIds: Omit<Set<string>, 'add' | 'delete' | 'clear'>\n addSelectedId: (...items: string[]) => void\n clearSelectedIds: () => void\n allItemsAreSelected: boolean\n}\n\nconst SelectAllCheckboxRenderer = (\n props: SelectAllCheckboxRendererProps,\n): React.ReactNode => {\n const {\n datasetToUpdate,\n clearSelectedIds,\n allItemsAreSelected,\n addSelectedId,\n } = props\n const isChecked = allItemsAreSelected\n\n return (\n <Checkbox\n inputProps={{ 'aria-label': 'Select All' }}\n checked={isChecked}\n disabled={datasetToUpdate.items.length === 0}\n onChange={() => {\n if (isChecked) {\n clearSelectedIds()\n } else {\n addSelectedId(...datasetToUpdate.items.map(item => item.entityId))\n }\n }}\n />\n )\n}\n\nfunction NoItemsPlaceholder(props: {\n titleCopy: string\n buttonCopy: string\n onButtonClick: () => void\n}) {\n const { titleCopy, buttonCopy, onButtonClick } = props\n return (\n <div className=\"NoItemsPlaceholder\">\n <Typography variant={'headline3'}>{titleCopy}</Typography>\n <WideButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onButtonClick}\n startIcon={<AddCircleTwoToneIcon />}\n sx={{ mt: 2 }}\n >\n {buttonCopy}\n </WideButton>\n </div>\n )\n}\n\nexport function DatasetItemsEditor(props: DatasetItemsEditorProps) {\n const { entityId, onSave, onClose, onUnsavedChangesChange } = props\n const [showEntityFinder, setShowEntityFinder] = useState<boolean>(false)\n const [showWarningDialog, setShowWarningDialog] = useState<boolean>(false)\n\n // The current 'client state' of dataset that the user is currently editing. Updates to this state are not saved until the user clicks 'Save'.\n const [datasetToUpdate, setDatasetToUpdate] =\n useState<RequiredProperties<EntityRefCollectionView, 'items'>>()\n\n // The previous value of the datasetToUpdate variable. This is used to calculate a summary of bulk actions since the last update to the unsaved dataset state.\n const [previousDatasetToUpdate, setPreviousDatasetToUpdate] =\n useState<RequiredProperties<EntityRefCollectionView, 'items'>>()\n\n // Stores the `close` function that will be used to hide the last toast that prompted the user to save\n const [onCloseLastSavePromptToast, setOnCloseLastSavePromptToast] = useState<\n { close: () => void } | undefined\n >()\n\n const { data: datasetOnServer, refetch: refetchDataset } = useGetEntity<\n RequiredProperties<EntityRefCollectionView, 'items'>\n >(entityId, undefined, {\n staleTime: Infinity,\n })\n\n const hasChangedSinceLastSave = Boolean(\n datasetOnServer &&\n datasetToUpdate &&\n !isEqual(datasetOnServer, datasetToUpdate),\n )\n\n const {\n ADD_ITEMS,\n ADD_ITEMS_TO,\n REMOVE_ITEMS,\n NO_ITEMS_IN_THIS_DATASET,\n SAVE_TO_CONTINUE,\n CREATE_VERSION_TO_FREEZE,\n ENTITY_SAVED,\n SAVE_CHANGES,\n PRECONDITION_FAILED_TITLE,\n PRECONDITION_FAILED_MESSAGE,\n PRECONDITION_FAILED_ACTION,\n ENTITY_FINDER_POPOVER,\n ENTITY_FINDER_PROMPT,\n NO_CHANGES_MADE,\n } = useMemo(() => getCopy(datasetOnServer), [datasetOnServer])\n\n useEffect(() => {\n if (datasetOnServer) {\n // SWC-5876: Dataset Items may be undefined. This has the same inherent meaning as the empty list, so we'll just change it to save us some null checks.\n if (datasetOnServer.items == null) {\n datasetOnServer.items = []\n }\n setDatasetToUpdate(datasetOnServer)\n }\n }, [datasetOnServer])\n\n const {\n set: selectedIds,\n add: addSelectedId,\n remove: removeSelectedId,\n clear: clearSelectedIds,\n } = useSet<string>()\n const allItemsAreSelected = Boolean(\n datasetToUpdate && datasetToUpdate.items.length === selectedIds.size,\n )\n\n useEffect(() => {\n if (datasetToUpdate && datasetOnServer && onUnsavedChangesChange) {\n onUnsavedChangesChange(hasChangedSinceLastSave)\n }\n }, [\n datasetOnServer,\n datasetToUpdate,\n hasChangedSinceLastSave,\n onUnsavedChangesChange,\n ])\n\n // We get the project ID to show the \"Current Project\" context in the Entity Finder.\n const { data: path } = useGetEntityPath(entityId)\n const projectId = path?.path[1]?.id\n\n const { mutate, isPending: updateIsPending } =\n useUpdateEntity<EntityRefCollectionView>({\n onMutate: () => {\n // Close existing toast that prompted the user to save\n if (onCloseLastSavePromptToast) {\n onCloseLastSavePromptToast.close()\n setOnCloseLastSavePromptToast(undefined)\n }\n },\n onSuccess: () => {\n // The query should automatically be invalidated, but just in case\n void refetchDataset()\n\n if (onSave) {\n onSave()\n } else {\n // If onSave isn't specified, push a generic toast message.\n displayToast(CREATE_VERSION_TO_FREEZE, 'success', {\n title: ENTITY_SAVED,\n })\n }\n },\n onError: error => {\n if (error.status === 412) {\n displayToast(PRECONDITION_FAILED_MESSAGE, 'warning', {\n title: PRECONDITION_FAILED_TITLE,\n primaryButtonConfig: {\n text: PRECONDITION_FAILED_ACTION,\n onClick: () => {\n void refetchDataset()\n },\n },\n })\n } else {\n displayToast(error.reason, 'danger', {\n title: 'An Error Occurred',\n })\n }\n },\n })\n\n useEffect(() => {\n // When changes are made (but not saved) to the datasetToUpdate, show a notification that summarizes the change and prompts the user to save\n if (\n previousDatasetToUpdate &&\n datasetToUpdate &&\n !isEqual(previousDatasetToUpdate.items, datasetToUpdate.items) &&\n !updateIsPending\n ) {\n const toastMessageTitle = getDatasetChangedToastMessageTitle(\n previousDatasetToUpdate,\n datasetToUpdate,\n )\n // Replace existing toast that prompts the user to save before showing the new one\n if (onCloseLastSavePromptToast) {\n onCloseLastSavePromptToast.close()\n }\n const onCloseToast = displayToast(SAVE_TO_CONTINUE, 'info', {\n title: toastMessageTitle,\n primaryButtonConfig: {\n text: SAVE_CHANGES,\n onClick: () => mutate(datasetToUpdate),\n },\n })\n setOnCloseLastSavePromptToast({ close: onCloseToast })\n }\n setPreviousDatasetToUpdate(datasetToUpdate)\n // Only run when datasetToUpdate changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [datasetToUpdate])\n\n const tableData = useMemo(\n () =>\n datasetToUpdate?.items.map(\n (item: EntityRef): DatasetItemsEditorTableData => {\n return {\n ...item,\n isSelected: selectedIds.has(item.entityId),\n setSelected: (value: boolean) => {\n return value\n ? addSelectedId(item.entityId)\n : removeSelectedId(item.entityId)\n },\n }\n },\n ) ?? [],\n [addSelectedId, datasetToUpdate?.items, removeSelectedId, selectedIds],\n )\n\n function addItemsToDataset(itemsToAdd: Reference[]) {\n setDatasetToUpdate(datasetToUpdate => {\n if (datasetToUpdate) {\n const refToDatasetItem = itemsToAdd.map(item => ({\n entityId: item.targetId,\n versionNumber: item.targetVersionNumber!,\n }))\n const { unchangedItems, updatedItems, newItems } = getDataSetDifference(\n datasetToUpdate.items,\n refToDatasetItem,\n )\n\n if (updatedItems.length == 0 && newItems.length == 0) {\n // No items were added or updated, so don't update the state variable.\n return datasetToUpdate\n }\n\n const items = [...unchangedItems, ...updatedItems, ...newItems]\n\n return {\n ...datasetToUpdate,\n items: items,\n }\n } else {\n console.warn(\n 'Cannot add items to the Collection because it is undefined. The Collection may not have been fetched yet.',\n )\n return datasetToUpdate\n }\n })\n clearSelectedIds()\n }\n\n function removeSelectedItemsFromDataset() {\n setDatasetToUpdate(dataset => ({\n ...dataset!,\n items: dataset!.items.filter(\n datasetItem => !selectedIds.has(datasetItem.entityId),\n ),\n }))\n clearSelectedIds()\n }\n\n function changeVersionOnItem(entityId: string, newVersion: number) {\n setDatasetToUpdate(dataset => ({\n ...dataset!,\n items: dataset!.items.map(datasetItem =>\n datasetItem.entityId === entityId\n ? { entityId: entityId, versionNumber: newVersion }\n : datasetItem,\n ),\n }))\n }\n\n const selectableTypes: EntityType[] | undefined = useMemo(() => {\n if (datasetOnServer) {\n return getSelectableTypes(datasetOnServer)\n } else {\n return undefined\n }\n }, [datasetOnServer])\n\n const columns = useMemo(() => {\n if (!datasetToUpdate) {\n return []\n }\n return getColumns({\n datasetToUpdate,\n selectedIds,\n clearSelectedIds,\n addSelectedId,\n allItemsAreSelected,\n changeVersionOnItem,\n })\n }, [\n addSelectedId,\n allItemsAreSelected,\n clearSelectedIds,\n datasetToUpdate,\n selectedIds,\n ])\n\n const table: Table<DatasetItemsEditorTableData> =\n useReactTable<DatasetItemsEditorTableData>({\n data: tableData,\n columns,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n // There are no backend sort controls. The server only provides ID/version, and a dataset could be up to 10k items,\n // so client side sorting is non-trivial. We may consider fetching all entity headers upon user request.\n enableSorting: false,\n })\n\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: tableData?.length ?? 0,\n estimateSize: () => ROW_HEIGHT, // estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n // measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' &&\n navigator.userAgent.indexOf('Firefox') === -1\n ? element => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const datasetItemsAsEntityFinderRef = useMemo(\n () => datasetToUpdate?.items.map(datasetItemToReference),\n [datasetToUpdate],\n )\n\n return (\n <div className=\"DatasetEditor\">\n <EntityFinderModal\n initialSelected={datasetItemsAsEntityFinderRef}\n configuration={{\n projectId: projectId,\n selectMultiple: true,\n initialScope: FinderScope.CURRENT_PROJECT,\n initialContainer: projectId ?? null,\n selectableTypes: selectableTypes,\n versionSelection: VersionSelectionType.REQUIRED,\n }}\n titleHelpPopoverProps={{\n markdownText: ENTITY_FINDER_POPOVER,\n helpUrl: 'https://help.synapse.org/docs/Datasets.2611281979.html',\n placement: 'right',\n }}\n promptCopy={ENTITY_FINDER_PROMPT}\n show={showEntityFinder}\n title={ADD_ITEMS_TO}\n confirmButtonCopy={'Apply changes'}\n onConfirm={items => {\n addItemsToDataset(items)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n />\n <WarningDialog\n title=\"Unsaved Changes\"\n content=\"Any unsaved changes will be lost. Are you sure you want to close the editor?\"\n confirmButtonText=\"Close Editor\"\n onConfirm={() => {\n if (onClose) {\n setShowWarningDialog(false)\n if (onUnsavedChangesChange) {\n onUnsavedChangesChange(false)\n }\n onClose()\n }\n }}\n open={showWarningDialog}\n onConfirmCallbackArgs={[]}\n onCancel={() => setShowWarningDialog(false)}\n />\n\n <div className=\"DatasetEditorTopBottomPanel\">\n <BlockingLoader show={updateIsPending} />\n <div className=\"ItemCount\">\n {datasetToUpdate ? (\n <Typography variant=\"headline3\">\n {datasetToUpdate.items.length === 0\n ? 'No'\n : datasetToUpdate.items.length.toLocaleString()}{' '}\n File\n {datasetToUpdate.items.length !== 1 && 's'}\n </Typography>\n ) : (\n <Skeleton variant=\"rectangular\" width={200} />\n )}\n </div>\n\n <Button\n variant=\"contained\"\n color=\"primary\"\n disabled={datasetToUpdate == null}\n onClick={() => setShowEntityFinder(true)}\n >\n {ADD_ITEMS}\n </Button>\n <Button\n disabled={selectedIds.size === 0}\n variant=\"outlined\"\n color=\"primary\"\n onClick={removeSelectedItemsFromDataset}\n >\n {REMOVE_ITEMS}\n </Button>\n </div>\n <div className=\"DatasetEditorTableContainer\">\n {datasetToUpdate && datasetToUpdate.items.length === 0 && (\n <NoItemsPlaceholder\n titleCopy={NO_ITEMS_IN_THIS_DATASET}\n buttonCopy={ADD_ITEMS}\n onButtonClick={() => setShowEntityFinder(true)}\n />\n )}\n {datasetToUpdate && datasetToUpdate.items.length > 0 && (\n <StyledVirtualTanStackTable<DatasetItemsEditorTableData>\n styledTableContainerProps={{\n className: 'DatasetEditorTable',\n ref: tableContainerRef,\n height: '350px',\n }}\n table={table}\n rowVirtualizer={rowVirtualizer}\n slotProps={{\n Tr: {\n className: `DatasetEditorRow`,\n style: {\n height: `${ROW_HEIGHT}px`,\n maxHeight: `${ROW_HEIGHT}px`,\n },\n },\n }}\n />\n )}\n {!datasetToUpdate && (\n <SkeletonTable\n className=\"DatasetItemsEditorSkeleton\"\n numRows={8}\n numCols={6}\n rowHeight={`${ROW_HEIGHT}px`}\n />\n )}\n </div>\n <div className=\"DatasetEditorTopBottomPanel\">\n {hasChangedSinceLastSave && (\n <Alert severity=\"warning\">You have unsaved changes</Alert>\n )}\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n if (hasChangedSinceLastSave) {\n setShowWarningDialog(true)\n } else if (onClose) {\n onClose()\n }\n }}\n >\n Cancel\n </Button>\n\n <Tooltip title={!hasChangedSinceLastSave && NO_CHANGES_MADE}>\n <div>\n <Button\n disabled={!datasetToUpdate || !hasChangedSinceLastSave}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => mutate(datasetToUpdate!)}\n >\n Save\n </Button>\n </div>\n </Tooltip>\n </div>\n </div>\n )\n}\n\nexport default DatasetItemsEditor\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatasetItemsEditor.js","names":[],"sources":["../../../../src/components/SynapseTable/datasets/DatasetItemsEditor.tsx"],"sourcesContent":["import React from 'react'\nimport WideButton from '@/components/styled/WideButton'\nimport { datasetItemToReference } from '@/components/SynapseTable/datasets/DatasetEditorUtils'\nimport {\n useGetEntity,\n useGetEntityPath,\n useUpdateEntity,\n} from '@/synapse-queries'\nimport { RequiredProperties } from '@/utils'\nimport {\n convertToEntityType,\n entityTypeToFriendlyName,\n isDataset,\n isDatasetCollection,\n} from '@/utils/functions/EntityTypeUtils'\nimport { useSet } from '@/utils/hooks'\nimport AddCircleTwoToneIcon from '@mui/icons-material/AddCircleTwoTone'\nimport {\n Alert,\n Button,\n Checkbox,\n Skeleton,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport {\n EntityRef,\n EntityRefCollectionView,\n Reference,\n} from '@sage-bionetworks/synapse-types'\nimport {\n createColumnHelper,\n getCoreRowModel,\n Table,\n useReactTable,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\nimport { isEqual, upperFirst } from 'lodash-es'\nimport pluralize from 'pluralize'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { CreatedOnCell } from '../../EntityFinder/details/view/table/CreatedOnCell'\nimport { EntityBadgeIconsCell } from '../../EntityFinder/details/view/table/EntityBadgeIconsCell'\nimport { EntityNameCell } from '../../EntityFinder/details/view/table/EntityNameCell'\nimport { ModifiedByCell } from '../../EntityFinder/details/view/table/ModifiedByCell'\nimport { ModifiedOnCell } from '../../EntityFinder/details/view/table/ModifiedOnCell'\nimport { ParentProjectCell } from '../../EntityFinder/details/view/table/ParentProjectCell'\nimport { EntityFinderModal } from '../../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../../EntityFinder/tree/EntityTree'\nimport { VersionSelectionType } from '../../EntityFinder/VersionSelectionType'\nimport { BlockingLoader } from '../../LoadingScreen/LoadingScreen'\nimport { SkeletonTable } from '../../Skeleton'\nimport WarningDialog from '../../SynapseForm/WarningDialog'\nimport ColumnHeader from '../../TanStackTable/ColumnHeader'\nimport StyledVirtualTanStackTable from '../../TanStackTable/StyledVirtualTanStackTable'\nimport { displayToast } from '../../ToastMessage'\nimport { DatasetEditorCheckboxCell } from './DatasetEditorCheckboxCell'\nimport { DatasetEditorVersionCell } from './DatasetEditorVersionCell'\nimport { EntityFetchErrorCell } from './EntityFetchErrorCell'\n\nexport type DatasetItemsEditorTableData = EntityRef & {\n isSelected: boolean\n setSelected: (value: boolean) => void\n}\n\nenum DatasetItemsEditorColumn {\n ERROR_STATE = 'errorState',\n SELECTED = 'isSelected',\n NAME = 'name',\n ENTITY_ID = 'entityId',\n BADGES = 'badges',\n VERSION = 'version',\n CREATED_ON = 'createdOn',\n MODIFIED_ON = 'modifieddOn',\n MODIFIED_BY = 'modifiedBy',\n PROJECT = 'project',\n}\n\nconst columnHelper = createColumnHelper<DatasetItemsEditorTableData>()\nfunction getColumns(\n opts: SelectAllCheckboxRendererProps & {\n changeVersionOnItem: (entityId: string, newVersion: number) => void\n },\n) {\n const {\n datasetToUpdate,\n selectedIds,\n clearSelectedIds,\n addSelectedId,\n allItemsAreSelected,\n changeVersionOnItem,\n } = opts\n return [\n columnHelper.display({\n id: DatasetItemsEditorColumn.ERROR_STATE,\n minSize: 35,\n maxSize: 35,\n size: 35,\n enableResizing: false,\n header: () => null,\n cell: EntityFetchErrorCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.SELECTED,\n minSize: 40,\n maxSize: 40,\n size: 40,\n enableResizing: false,\n header: () => (\n <SelectAllCheckboxRenderer\n datasetToUpdate={datasetToUpdate}\n selectedIds={selectedIds}\n clearSelectedIds={clearSelectedIds}\n addSelectedId={addSelectedId}\n allItemsAreSelected={allItemsAreSelected}\n />\n ),\n cell: DatasetEditorCheckboxCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.NAME,\n minSize: 50,\n size: 300,\n header: props => <ColumnHeader {...props} title={'Name'} />,\n cell: EntityNameCell,\n }),\n columnHelper.accessor(DatasetItemsEditorColumn.ENTITY_ID, {\n minSize: 50,\n size: 130,\n header: props => <ColumnHeader {...props} title={'ID'} />,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.BADGES,\n minSize: 80,\n size: 80,\n enableResizing: true,\n cell: EntityBadgeIconsCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.VERSION,\n minSize: 150,\n size: 150,\n header: props => <ColumnHeader {...props} title={'Version'} />,\n cell: props => (\n <DatasetEditorVersionCell\n {...props}\n toggleSelection={datasetItem => {\n changeVersionOnItem(datasetItem.entityId, datasetItem.versionNumber)\n }}\n />\n ),\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.CREATED_ON,\n header: props => <ColumnHeader {...props} title={'Created On'} />,\n size: 220,\n minSize: 170,\n cell: CreatedOnCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.MODIFIED_ON,\n header: props => <ColumnHeader {...props} title={'Modified On'} />,\n size: 220,\n minSize: 170,\n cell: ModifiedOnCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.MODIFIED_BY,\n header: props => <ColumnHeader {...props} title={'Modified By'} />,\n size: 250,\n enableResizing: true,\n cell: ModifiedByCell,\n }),\n columnHelper.display({\n id: DatasetItemsEditorColumn.PROJECT,\n header: props => <ColumnHeader {...props} title={'Size'} />,\n size: 300,\n cell: ParentProjectCell,\n }),\n ]\n}\n\nfunction getSelectableTypes(entity: EntityRefCollectionView) {\n if (isDataset(entity)) {\n return [EntityType.file]\n } else if (isDatasetCollection(entity)) {\n return [EntityType.dataset]\n } else {\n console.error(\n 'Cannot determine selectable types for entity type: ' +\n entity.concreteType,\n )\n return []\n }\n}\n\nexport function getCopy(entity?: EntityRefCollectionView) {\n const displayName = entity\n ? entityTypeToFriendlyName(convertToEntityType(entity.concreteType))\n : 'Collection'\n let itemName = 'Item'\n let currentVersionName = 'Current Version'\n if (entity && isDataset(entity)) {\n itemName = entityTypeToFriendlyName(EntityType.file)\n currentVersionName = 'Draft'\n } else if (entity && isDatasetCollection(entity)) {\n itemName = entityTypeToFriendlyName(EntityType.dataset)\n }\n\n const entityFinderPopover =\n entity && isDataset(entity)\n ? `Use the left pane to browse projects and folders. Select ${pluralize(\n itemName,\n )} from the right pane to add to this ${displayName}. ${upperFirst(\n pluralize(itemName),\n )} in a ${displayName} can be added from multiple folders. You can also use Search to find and select ${pluralize(\n itemName,\n )}.`\n : `Use the left pane to browse projects. Select ${pluralize(\n itemName,\n )} from the right pane to add to this ${displayName}. ${upperFirst(\n pluralize(itemName),\n )} in a ${displayName} can be added from multiple projects. You can also use Search to find and select ${pluralize(\n itemName,\n )}.`\n\n return {\n ADD_ITEMS: `Add ${pluralize(itemName)}`,\n ADD_ITEMS_TO: `Add ${pluralize(itemName)} to ${displayName}`,\n REMOVE_ITEMS: `Remove ${pluralize(itemName)}`,\n NO_ITEMS_IN_THIS_DATASET: `No ${pluralize(\n itemName,\n )} in this ${displayName}`,\n SAVE_TO_CONTINUE: `Save the ${displayName} to continue`,\n CREATE_VERSION_TO_FREEZE: `Create a Version of this ${displayName} to freeze it in its current state`,\n ENTITY_SAVED: `${displayName} Saved`,\n SAVE_CHANGES: `Save changes to ${currentVersionName}`,\n ENTITY_FINDER_POPOVER: entityFinderPopover,\n ENTITY_FINDER_PROMPT: `Find ${pluralize(\n itemName,\n )} to add to the ${displayName}.`,\n PRECONDITION_FAILED_MESSAGE: `Re-retrieve the ${displayName} to get the latest changes. Your current changes will be lost.`,\n PRECONDITION_FAILED_TITLE: `${displayName} updated since last fetched`,\n PRECONDITION_FAILED_ACTION: `Retrieve ${displayName}`,\n NO_CHANGES_MADE: `You have not made any changes to the ${displayName}.`,\n }\n}\n\nfunction getDataSetDifference(\n oldDataSet: EntityRef[],\n changedItems: EntityRef[],\n) {\n const unchangedItems = oldDataSet.filter(\n oldItem =>\n !changedItems.find(newItem => newItem.entityId === oldItem.entityId),\n )\n const deletedItems = [...unchangedItems]\n const { updatedItems, newItems } = changedItems.reduce(\n (results, result) => {\n const oldItem = oldDataSet.find(old => old.entityId === result.entityId)\n if (oldItem) {\n if (result.versionNumber !== oldItem.versionNumber) {\n results['updatedItems'].push(result)\n } else {\n unchangedItems.push(result)\n }\n } else {\n results['newItems'].push(result)\n }\n return results\n },\n { updatedItems: [], newItems: [] } as {\n updatedItems: EntityRef[]\n newItems: EntityRef[]\n },\n )\n\n return { unchangedItems, updatedItems, newItems, deletedItems }\n}\n\nfunction getDatasetChangedToastMessageTitle(\n previousDatasetToUpdate?: RequiredProperties<\n EntityRefCollectionView,\n 'items'\n >,\n datasetToUpdate?: RequiredProperties<EntityRefCollectionView, 'items'>,\n) {\n const { updatedItems, newItems, deletedItems } = getDataSetDifference(\n previousDatasetToUpdate?.items ?? [],\n datasetToUpdate?.items!,\n )\n let toastTitle = ''\n\n // \"X items(s) deleted\"\n if (deletedItems.length > 0) {\n toastTitle += `${deletedItems.length} Item${\n deletedItems.length === 1 ? '' : 's'\n } removed`\n } else {\n // \"Y item(s) added\"\n toastTitle += `${newItems.length} Item${\n newItems.length === 1 ? '' : 's'\n } added`\n\n // \"and Z item(s) updated\", only shown if there are updated items\n if (updatedItems.length > 0) {\n toastTitle += ` and ${updatedItems.length} Item${\n updatedItems.length === 1 ? '' : 's'\n } updated`\n }\n }\n return toastTitle\n}\n\nexport type DatasetItemsEditorProps = {\n /* The synId of the EntityRefCollectionView to modify */\n entityId: string\n /** Callback invoked when the editor changes state to contain un/saved changes. */\n onUnsavedChangesChange?: (hasUnsavedChanges: boolean) => void\n onSave?: () => void\n onClose?: () => void\n}\n\nconst ROW_HEIGHT = 48\n\ntype SelectAllCheckboxRendererProps = {\n datasetToUpdate: RequiredProperties<EntityRefCollectionView, 'items'>\n selectedIds: Omit<Set<string>, 'add' | 'delete' | 'clear'>\n addSelectedId: (...items: string[]) => void\n clearSelectedIds: () => void\n allItemsAreSelected: boolean\n}\n\nconst SelectAllCheckboxRenderer = (\n props: SelectAllCheckboxRendererProps,\n): React.ReactNode => {\n const {\n datasetToUpdate,\n clearSelectedIds,\n allItemsAreSelected,\n addSelectedId,\n } = props\n const isChecked = allItemsAreSelected\n\n return (\n <Checkbox\n inputProps={{ 'aria-label': 'Select All' }}\n checked={isChecked}\n disabled={datasetToUpdate.items.length === 0}\n onChange={() => {\n if (isChecked) {\n clearSelectedIds()\n } else {\n addSelectedId(...datasetToUpdate.items.map(item => item.entityId))\n }\n }}\n />\n )\n}\n\nfunction NoItemsPlaceholder(props: {\n titleCopy: string\n buttonCopy: string\n onButtonClick: () => void\n}) {\n const { titleCopy, buttonCopy, onButtonClick } = props\n return (\n <div className=\"NoItemsPlaceholder\">\n <Typography variant={'headline3'}>{titleCopy}</Typography>\n <WideButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onButtonClick}\n startIcon={<AddCircleTwoToneIcon />}\n sx={{ mt: 2 }}\n >\n {buttonCopy}\n </WideButton>\n </div>\n )\n}\n\nexport function DatasetItemsEditor(props: DatasetItemsEditorProps) {\n const { entityId, onSave, onClose, onUnsavedChangesChange } = props\n const [showEntityFinder, setShowEntityFinder] = useState<boolean>(false)\n const [showWarningDialog, setShowWarningDialog] = useState<boolean>(false)\n\n // The current 'client state' of dataset that the user is currently editing. Updates to this state are not saved until the user clicks 'Save'.\n const [datasetToUpdate, setDatasetToUpdate] =\n useState<RequiredProperties<EntityRefCollectionView, 'items'>>()\n\n // The previous value of the datasetToUpdate variable. This is used to calculate a summary of bulk actions since the last update to the unsaved dataset state.\n const [previousDatasetToUpdate, setPreviousDatasetToUpdate] =\n useState<RequiredProperties<EntityRefCollectionView, 'items'>>()\n\n // Stores the `close` function that will be used to hide the last toast that prompted the user to save\n const [onCloseLastSavePromptToast, setOnCloseLastSavePromptToast] = useState<\n { close: () => void } | undefined\n >()\n\n const { data: datasetOnServer, refetch: refetchDataset } = useGetEntity<\n RequiredProperties<EntityRefCollectionView, 'items'>\n >(entityId, undefined, {\n staleTime: Infinity,\n })\n\n const hasChangedSinceLastSave = Boolean(\n datasetOnServer &&\n datasetToUpdate &&\n !isEqual(datasetOnServer, datasetToUpdate),\n )\n\n const {\n ADD_ITEMS,\n ADD_ITEMS_TO,\n REMOVE_ITEMS,\n NO_ITEMS_IN_THIS_DATASET,\n SAVE_TO_CONTINUE,\n CREATE_VERSION_TO_FREEZE,\n ENTITY_SAVED,\n SAVE_CHANGES,\n PRECONDITION_FAILED_TITLE,\n PRECONDITION_FAILED_MESSAGE,\n PRECONDITION_FAILED_ACTION,\n ENTITY_FINDER_POPOVER,\n ENTITY_FINDER_PROMPT,\n NO_CHANGES_MADE,\n } = useMemo(() => getCopy(datasetOnServer), [datasetOnServer])\n\n useEffect(() => {\n if (datasetOnServer) {\n // SWC-5876: Dataset Items may be undefined. This has the same inherent meaning as the empty list, so we'll just change it to save us some null checks.\n if (datasetOnServer.items == null) {\n datasetOnServer.items = []\n }\n setDatasetToUpdate(datasetOnServer)\n }\n }, [datasetOnServer])\n\n const {\n set: selectedIds,\n add: addSelectedId,\n remove: removeSelectedId,\n clear: clearSelectedIds,\n } = useSet<string>()\n const allItemsAreSelected = Boolean(\n datasetToUpdate && datasetToUpdate.items.length === selectedIds.size,\n )\n\n useEffect(() => {\n if (datasetToUpdate && datasetOnServer && onUnsavedChangesChange) {\n onUnsavedChangesChange(hasChangedSinceLastSave)\n }\n }, [\n datasetOnServer,\n datasetToUpdate,\n hasChangedSinceLastSave,\n onUnsavedChangesChange,\n ])\n\n // We get the project ID to show the \"Current Project\" context in the Entity Finder.\n const { data: path } = useGetEntityPath(entityId)\n const projectId = path?.path[1]?.id\n\n const { mutate, isPending: updateIsPending } =\n useUpdateEntity<EntityRefCollectionView>({\n onMutate: () => {\n // Close existing toast that prompted the user to save\n if (onCloseLastSavePromptToast) {\n onCloseLastSavePromptToast.close()\n setOnCloseLastSavePromptToast(undefined)\n }\n },\n onSuccess: () => {\n // The query should automatically be invalidated, but just in case\n void refetchDataset()\n\n if (onSave) {\n onSave()\n } else {\n // If onSave isn't specified, push a generic toast message.\n displayToast(CREATE_VERSION_TO_FREEZE, 'success', {\n title: ENTITY_SAVED,\n })\n }\n },\n onError: error => {\n if (error.status === 412) {\n displayToast(PRECONDITION_FAILED_MESSAGE, 'warning', {\n title: PRECONDITION_FAILED_TITLE,\n primaryButtonConfig: {\n text: PRECONDITION_FAILED_ACTION,\n onClick: () => {\n void refetchDataset()\n },\n },\n })\n } else {\n displayToast(error.reason, 'danger', {\n title: 'An Error Occurred',\n })\n }\n },\n })\n\n useEffect(() => {\n // When changes are made (but not saved) to the datasetToUpdate, show a notification that summarizes the change and prompts the user to save\n if (\n previousDatasetToUpdate &&\n datasetToUpdate &&\n !isEqual(previousDatasetToUpdate.items, datasetToUpdate.items) &&\n !updateIsPending\n ) {\n const toastMessageTitle = getDatasetChangedToastMessageTitle(\n previousDatasetToUpdate,\n datasetToUpdate,\n )\n // Replace existing toast that prompts the user to save before showing the new one\n if (onCloseLastSavePromptToast) {\n onCloseLastSavePromptToast.close()\n }\n const onCloseToast = displayToast(SAVE_TO_CONTINUE, 'info', {\n title: toastMessageTitle,\n primaryButtonConfig: {\n text: SAVE_CHANGES,\n onClick: () => mutate(datasetToUpdate),\n },\n })\n setOnCloseLastSavePromptToast({ close: onCloseToast })\n }\n setPreviousDatasetToUpdate(datasetToUpdate)\n // Only run when datasetToUpdate changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [datasetToUpdate])\n\n const tableData = useMemo(\n () =>\n datasetToUpdate?.items.map(\n (item: EntityRef): DatasetItemsEditorTableData => {\n return {\n ...item,\n isSelected: selectedIds.has(item.entityId),\n setSelected: (value: boolean) => {\n return value\n ? addSelectedId(item.entityId)\n : removeSelectedId(item.entityId)\n },\n }\n },\n ) ?? [],\n [addSelectedId, datasetToUpdate?.items, removeSelectedId, selectedIds],\n )\n\n function addItemsToDataset(itemsToAdd: Reference[]) {\n setDatasetToUpdate(datasetToUpdate => {\n if (datasetToUpdate) {\n const refToDatasetItem = itemsToAdd.map(item => ({\n entityId: item.targetId,\n versionNumber: item.targetVersionNumber!,\n }))\n const { unchangedItems, updatedItems, newItems } = getDataSetDifference(\n datasetToUpdate.items,\n refToDatasetItem,\n )\n\n if (updatedItems.length == 0 && newItems.length == 0) {\n // No items were added or updated, so don't update the state variable.\n return datasetToUpdate\n }\n\n const items = [...unchangedItems, ...updatedItems, ...newItems]\n\n return {\n ...datasetToUpdate,\n items: items,\n }\n } else {\n console.warn(\n 'Cannot add items to the Collection because it is undefined. The Collection may not have been fetched yet.',\n )\n return datasetToUpdate\n }\n })\n clearSelectedIds()\n }\n\n function removeSelectedItemsFromDataset() {\n setDatasetToUpdate(dataset => ({\n ...dataset!,\n items: dataset!.items.filter(\n datasetItem => !selectedIds.has(datasetItem.entityId),\n ),\n }))\n clearSelectedIds()\n }\n\n function changeVersionOnItem(entityId: string, newVersion: number) {\n setDatasetToUpdate(dataset => ({\n ...dataset!,\n items: dataset!.items.map(datasetItem =>\n datasetItem.entityId === entityId\n ? { entityId: entityId, versionNumber: newVersion }\n : datasetItem,\n ),\n }))\n }\n\n const selectableTypes: EntityType[] | undefined = useMemo(() => {\n if (datasetOnServer) {\n return getSelectableTypes(datasetOnServer)\n } else {\n return undefined\n }\n }, [datasetOnServer])\n\n const columns = useMemo(() => {\n if (!datasetToUpdate) {\n return []\n }\n return getColumns({\n datasetToUpdate,\n selectedIds,\n clearSelectedIds,\n addSelectedId,\n allItemsAreSelected,\n changeVersionOnItem,\n })\n }, [\n addSelectedId,\n allItemsAreSelected,\n clearSelectedIds,\n datasetToUpdate,\n selectedIds,\n ])\n\n const table: Table<DatasetItemsEditorTableData> =\n useReactTable<DatasetItemsEditorTableData>({\n data: tableData,\n columns,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n // There are no backend sort controls. The server only provides ID/version, and a dataset could be up to 10k items,\n // so client side sorting is non-trivial. We may consider fetching all entity headers upon user request.\n enableSorting: false,\n })\n\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: tableData?.length ?? 0,\n estimateSize: () => ROW_HEIGHT, // estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n // measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' &&\n navigator.userAgent.indexOf('Firefox') === -1\n ? element => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const datasetItemsAsEntityFinderRef = useMemo(\n () => datasetToUpdate?.items.map(datasetItemToReference),\n [datasetToUpdate],\n )\n\n return (\n <div className=\"DatasetEditor\">\n <EntityFinderModal\n initialSelected={datasetItemsAsEntityFinderRef}\n configuration={{\n projectId: projectId,\n selectMultiple: true,\n initialScope: FinderScope.CURRENT_PROJECT,\n initialContainer: projectId ?? null,\n selectableTypes: selectableTypes,\n versionSelection: VersionSelectionType.REQUIRED,\n }}\n titleHelpPopoverProps={{\n markdownText: ENTITY_FINDER_POPOVER,\n helpUrl: 'https://help.synapse.org/docs/Datasets.2611281979.html',\n placement: 'right',\n }}\n promptCopy={ENTITY_FINDER_PROMPT}\n show={showEntityFinder}\n title={ADD_ITEMS_TO}\n confirmButtonCopy={'Apply changes'}\n onConfirm={items => {\n addItemsToDataset(items)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n />\n <WarningDialog\n title=\"Unsaved Changes\"\n content=\"Any unsaved changes will be lost. Are you sure you want to close the editor?\"\n confirmButtonText=\"Close Editor\"\n onConfirm={() => {\n if (onClose) {\n setShowWarningDialog(false)\n if (onUnsavedChangesChange) {\n onUnsavedChangesChange(false)\n }\n onClose()\n }\n }}\n open={showWarningDialog}\n onConfirmCallbackArgs={[]}\n onCancel={() => setShowWarningDialog(false)}\n />\n\n <div className=\"DatasetEditorTopBottomPanel\">\n <BlockingLoader show={updateIsPending} />\n <div className=\"ItemCount\">\n {datasetToUpdate ? (\n <Typography variant=\"headline3\">\n {datasetToUpdate.items.length === 0\n ? 'No'\n : datasetToUpdate.items.length.toLocaleString()}{' '}\n File\n {datasetToUpdate.items.length !== 1 && 's'}\n </Typography>\n ) : (\n <Skeleton variant=\"rectangular\" width={200} />\n )}\n </div>\n\n <Button\n variant=\"contained\"\n color=\"primary\"\n disabled={datasetToUpdate == null}\n onClick={() => setShowEntityFinder(true)}\n >\n {ADD_ITEMS}\n </Button>\n <Button\n disabled={selectedIds.size === 0}\n variant=\"outlined\"\n color=\"primary\"\n onClick={removeSelectedItemsFromDataset}\n >\n {REMOVE_ITEMS}\n </Button>\n </div>\n <div className=\"DatasetEditorTableContainer\">\n {datasetToUpdate && datasetToUpdate.items.length === 0 && (\n <NoItemsPlaceholder\n titleCopy={NO_ITEMS_IN_THIS_DATASET}\n buttonCopy={ADD_ITEMS}\n onButtonClick={() => setShowEntityFinder(true)}\n />\n )}\n {datasetToUpdate && datasetToUpdate.items.length > 0 && (\n <StyledVirtualTanStackTable<DatasetItemsEditorTableData>\n styledTableContainerProps={{\n className: 'DatasetEditorTable',\n ref: tableContainerRef,\n height: '350px',\n }}\n table={table}\n rowVirtualizer={rowVirtualizer}\n slotProps={{\n Tr: {\n className: `DatasetEditorRow`,\n style: {\n height: `${ROW_HEIGHT}px`,\n maxHeight: `${ROW_HEIGHT}px`,\n },\n },\n }}\n />\n )}\n {!datasetToUpdate && (\n <SkeletonTable\n className=\"DatasetItemsEditorSkeleton\"\n numRows={8}\n numCols={6}\n rowHeight={`${ROW_HEIGHT}px`}\n />\n )}\n </div>\n <div className=\"DatasetEditorTopBottomPanel\">\n {hasChangedSinceLastSave && (\n <Alert severity=\"warning\">You have unsaved changes</Alert>\n )}\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n if (hasChangedSinceLastSave) {\n setShowWarningDialog(true)\n } else if (onClose) {\n onClose()\n }\n }}\n >\n Cancel\n </Button>\n\n <Tooltip title={!hasChangedSinceLastSave && NO_CHANGES_MADE}>\n <div>\n <Button\n disabled={!datasetToUpdate || !hasChangedSinceLastSave}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => mutate(datasetToUpdate!)}\n >\n Save\n </Button>\n </div>\n </Tooltip>\n </div>\n </div>\n )\n}\n\nexport default DatasetItemsEditor\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityFetchErrorCell.js","names":[],"sources":["../../../../src/components/SynapseTable/datasets/EntityFetchErrorCell.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries/index'\nimport { Tooltip } from '@mui/material'\nimport { CellContext } from '@tanstack/react-table'\nimport { EntityIdAndVersionNumber } from '../../EntityFinder/details/view/table/TableCellTypes'\nimport IconSvg from '../../IconSvg/IconSvg'\n\nexport function EntityFetchErrorCell<T extends EntityIdAndVersionNumber>(\n props: CellContext<T, any>,\n) {\n const { entityId, versionNumber } = props.row.original\n const { error, isError } = useGetEntity(entityId, versionNumber)\n\n let message = error?.reason\n\n if (error?.status === 403) {\n message = \"You don't have permission to view this entity.\"\n } else if (error?.status === 404) {\n message = 'The entity or version does not exist. It may have been deleted.'\n }\n\n if (!isError) {\n return <></>\n } else {\n return (\n <Tooltip\n title={message ?? ''}\n placement=\"right\"\n className=\"EntityBadgeTooltip\"\n >\n <div className=\"EntityErrorRenderer\">\n <IconSvg icon=\"warningOutlined\" />\n </div>\n </Tooltip>\n )\n }\n}\n"],"mappings":";;;;;;AAMA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,aAAU,qBAAkB,EAAM,IAAI,UACxC,EAAE,UAAO,eAAY,EAAa,GAAU,
|
|
1
|
+
{"version":3,"file":"EntityFetchErrorCell.js","names":[],"sources":["../../../../src/components/SynapseTable/datasets/EntityFetchErrorCell.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries/index'\nimport { Tooltip } from '@mui/material'\nimport { CellContext } from '@tanstack/react-table'\nimport { EntityIdAndVersionNumber } from '../../EntityFinder/details/view/table/TableCellTypes'\nimport IconSvg from '../../IconSvg/IconSvg'\n\nexport function EntityFetchErrorCell<T extends EntityIdAndVersionNumber>(\n props: CellContext<T, any>,\n) {\n const { entityId, versionNumber } = props.row.original\n const { error, isError } = useGetEntity(entityId, versionNumber)\n\n let message = error?.reason\n\n if (error?.status === 403) {\n message = \"You don't have permission to view this entity.\"\n } else if (error?.status === 404) {\n message = 'The entity or version does not exist. It may have been deleted.'\n }\n\n if (!isError) {\n return <></>\n } else {\n return (\n <Tooltip\n title={message ?? ''}\n placement=\"right\"\n className=\"EntityBadgeTooltip\"\n >\n <div className=\"EntityErrorRenderer\">\n <IconSvg icon=\"warningOutlined\" />\n </div>\n </Tooltip>\n )\n }\n}\n"],"mappings":";;;;;;AAMA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,aAAU,qBAAkB,EAAM,IAAI,UACxC,EAAE,UAAO,eAAY,EAAa,GAAU,CAAa,GAE3D,IAAU,GAAO;CASnB,OAPE,GAAO,WAAW,MACpB,IAAU,mDACD,GAAO,WAAW,QAC3B,IAAU,oEAGP,IAID,kBAAC,GAAD;EACE,OAAO,KAAW;EAClB,WAAU;EACV,WAAU;YAEV,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,GAAD,EAAS,MAAK,kBAAmB,CAAA;EAC9B,CAAA;CACE,CAAA,IAXJ,kBAAA,GAAA,CAAI,CAAA;AAcf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ADDiscoveryPortalInstructions.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ADDiscoveryPortalInstructions.tsx"],"sourcesContent":["import React from 'react'\nimport { Link } from '@mui/material'\nimport Typography from '@mui/material/Typography'\n\nexport const ADDiscoveryPortalInstructions = (): React.ReactNode => {\n return (\n <>\n <Typography variant=\"body1\" sx={{ fontWeight: 700 }} gutterBottom>\n You must meet these requirements from AD Discovery Portal to send data:\n </Typography>\n <Typography\n variant=\"body1\"\n component={'ol'}\n gutterBottom\n sx={{ marginLeft: '10px', li: { mb: 1 } }}\n >\n <li>You must complete all required Access Actions in the next step.</li>\n <li>\n Ensure you can perform an SSO login with AD Discovery Portal. \n <Link\n href={'https://discover.alzheimersdata.org/login'}\n rel={'noopener noreferrer'}\n target={'_blank'}\n >\n Click here, and then click the Synapse Button under: Continue with\n your partner account\n </Link>\n .\n </li>\n </Typography>\n\n <Typography variant=\"body1\" gutterBottom>\n Note that we cannot provide support for AD Discovery Portal. Please\n contact AD Discovery Portal{' '}\n <Link\n href={'https://community.addi.ad-datainitiative.org/w/faq'}\n rel={'noopener noreferrer'}\n target={'_blank'}\n >\n technical support\n </Link>{' '}\n for issues related to the above.\n </Typography>\n </>\n )\n}\n"],"mappings":";;;;;AAIA,IAAa,UAET,kBAAA,GAAA,EAAA,UAAA;CACE,kBAAC,GAAD;EAAY,SAAQ;EAAQ,IAAI,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"ADDiscoveryPortalInstructions.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ADDiscoveryPortalInstructions.tsx"],"sourcesContent":["import React from 'react'\nimport { Link } from '@mui/material'\nimport Typography from '@mui/material/Typography'\n\nexport const ADDiscoveryPortalInstructions = (): React.ReactNode => {\n return (\n <>\n <Typography variant=\"body1\" sx={{ fontWeight: 700 }} gutterBottom>\n You must meet these requirements from AD Discovery Portal to send data:\n </Typography>\n <Typography\n variant=\"body1\"\n component={'ol'}\n gutterBottom\n sx={{ marginLeft: '10px', li: { mb: 1 } }}\n >\n <li>You must complete all required Access Actions in the next step.</li>\n <li>\n Ensure you can perform an SSO login with AD Discovery Portal. \n <Link\n href={'https://discover.alzheimersdata.org/login'}\n rel={'noopener noreferrer'}\n target={'_blank'}\n >\n Click here, and then click the Synapse Button under: Continue with\n your partner account\n </Link>\n .\n </li>\n </Typography>\n\n <Typography variant=\"body1\" gutterBottom>\n Note that we cannot provide support for AD Discovery Portal. Please\n contact AD Discovery Portal{' '}\n <Link\n href={'https://community.addi.ad-datainitiative.org/w/faq'}\n rel={'noopener noreferrer'}\n target={'_blank'}\n >\n technical support\n </Link>{' '}\n for issues related to the above.\n </Typography>\n </>\n )\n}\n"],"mappings":";;;;;AAIA,IAAa,UAET,kBAAA,GAAA,EAAA,UAAA;CACE,kBAAC,GAAD;EAAY,SAAQ;EAAQ,IAAI,EAAE,YAAY,IAAI;EAAG,cAAA;YAAa;CAEtD,CAAA;CACZ,kBAAC,GAAD;EACE,SAAQ;EACR,WAAW;EACX,cAAA;EACA,IAAI;GAAE,YAAY;GAAQ,IAAI,EAAE,IAAI,EAAE;EAAE;YAJ1C,CAME,kBAAC,MAAD,EAAA,UAAI,kEAAmE,CAAA,GACvE,kBAAC,MAAD,EAAA,UAAA;GAAI;GAEF,kBAAC,GAAD;IACE,MAAM;IACN,KAAK;IACL,QAAQ;cACT;GAGK,CAAA;GAAC;EAEL,EAAA,CAAA,CACM;;CAEZ,kBAAC,GAAD;EAAY,SAAQ;EAAQ,cAAA;YAA5B;GAAyC;GAEX;GAC5B,kBAAC,GAAD;IACE,MAAM;IACN,KAAK;IACL,QAAQ;cACT;GAEK,CAAA;GAAE;GAAI;EAEF;;AACZ,EAAA,CAAA"}
|
|
@@ -9,27 +9,24 @@ import { useCallback as s, useMemo as c, useState as l } from "react";
|
|
|
9
9
|
import { Alert as u, Box as d, Button as f, Tooltip as p, Typography as m } from "@mui/material";
|
|
10
10
|
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
11
11
|
//#region src/components/SynapseTable/export/ExportToAnalysisPlatformDialog.tsx
|
|
12
|
-
|
|
13
|
-
return e[e.PREAMBLE_INSTRUCTIONS = 0] = "PREAMBLE_INSTRUCTIONS", e[e.SELECT_PLATFORM = 1] = "SELECT_PLATFORM", e[e.PLATFORM_INSTRUCTIONS = 2] = "PLATFORM_INSTRUCTIONS", e[e.CHECK_REQUIREMENTS_AND_SUBMIT = 3] = "CHECK_REQUIREMENTS_AND_SUBMIT", e;
|
|
14
|
-
}(v || {});
|
|
15
|
-
function y(e) {
|
|
12
|
+
function v(e) {
|
|
16
13
|
let { step: t, setStep: n, onCancel: r, sendToPlatformConfirmButtonProps: i } = e;
|
|
17
14
|
switch (t) {
|
|
18
|
-
case
|
|
15
|
+
case 0: return /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(f, {
|
|
19
16
|
variant: "outlined",
|
|
20
17
|
onClick: r,
|
|
21
18
|
children: "Cancel"
|
|
22
19
|
}), /* @__PURE__ */ g(f, {
|
|
23
20
|
variant: "contained",
|
|
24
21
|
onClick: () => {
|
|
25
|
-
n(
|
|
22
|
+
n(1);
|
|
26
23
|
},
|
|
27
24
|
children: "Continue"
|
|
28
25
|
})] });
|
|
29
|
-
case
|
|
26
|
+
case 1: return /* @__PURE__ */ _(h, { children: [
|
|
30
27
|
/* @__PURE__ */ g(f, {
|
|
31
28
|
variant: "outlined",
|
|
32
|
-
onClick: () => n(
|
|
29
|
+
onClick: () => n(0),
|
|
33
30
|
sx: { mr: "auto" },
|
|
34
31
|
children: "Back"
|
|
35
32
|
}),
|
|
@@ -42,15 +39,15 @@ function y(e) {
|
|
|
42
39
|
variant: "contained",
|
|
43
40
|
disabled: !e.selectedPlatform,
|
|
44
41
|
onClick: () => {
|
|
45
|
-
n(
|
|
42
|
+
n(2);
|
|
46
43
|
},
|
|
47
44
|
children: "Continue"
|
|
48
45
|
})
|
|
49
46
|
] });
|
|
50
|
-
case
|
|
47
|
+
case 2: return /* @__PURE__ */ _(h, { children: [
|
|
51
48
|
/* @__PURE__ */ g(f, {
|
|
52
49
|
variant: "outlined",
|
|
53
|
-
onClick: () => n(
|
|
50
|
+
onClick: () => n(1),
|
|
54
51
|
sx: { mr: "auto" },
|
|
55
52
|
children: "Back"
|
|
56
53
|
}),
|
|
@@ -62,15 +59,15 @@ function y(e) {
|
|
|
62
59
|
/* @__PURE__ */ g(f, {
|
|
63
60
|
variant: "contained",
|
|
64
61
|
onClick: () => {
|
|
65
|
-
n(
|
|
62
|
+
n(3);
|
|
66
63
|
},
|
|
67
64
|
children: "Continue"
|
|
68
65
|
})
|
|
69
66
|
] });
|
|
70
|
-
case
|
|
67
|
+
case 3: return /* @__PURE__ */ _(h, { children: [
|
|
71
68
|
/* @__PURE__ */ g(f, {
|
|
72
69
|
variant: "outlined",
|
|
73
|
-
onClick: () => n(
|
|
70
|
+
onClick: () => n(1),
|
|
74
71
|
sx: { mr: "auto" },
|
|
75
72
|
children: "Back"
|
|
76
73
|
}),
|
|
@@ -86,12 +83,12 @@ function y(e) {
|
|
|
86
83
|
] });
|
|
87
84
|
}
|
|
88
85
|
}
|
|
89
|
-
function
|
|
90
|
-
let { platformInstructionProps:
|
|
91
|
-
|
|
92
|
-
}, [
|
|
93
|
-
switch (
|
|
94
|
-
case
|
|
86
|
+
function y(f) {
|
|
87
|
+
let { platformInstructionProps: y } = f, [b, x] = l(0), [S, C] = l(null), [w, T] = l({}), { isShowingExportToAnalysisPlatformModal: E, setIsShowingExportToAnalysisPlatformModal: D, enabledExternalAnalysisPlatforms: O } = t(), [k, A] = l(!0), j = E && k, M = E && !k, N = `Send to ${S && [2, 3].includes(b) ? i[S].name : "Analysis Platform"}`, P = s(() => {
|
|
88
|
+
A(!0), D(!1), C(null), x(0);
|
|
89
|
+
}, [D]), F = c(() => {
|
|
90
|
+
switch (b) {
|
|
91
|
+
case 0: return /* @__PURE__ */ _(h, { children: [
|
|
95
92
|
/* @__PURE__ */ g(d, {
|
|
96
93
|
sx: {
|
|
97
94
|
display: "flex",
|
|
@@ -100,7 +97,7 @@ function b(f) {
|
|
|
100
97
|
alignItems: "center",
|
|
101
98
|
pb: 2
|
|
102
99
|
},
|
|
103
|
-
children:
|
|
100
|
+
children: O.map((e) => {
|
|
104
101
|
let { name: t, Logo: n } = i[e];
|
|
105
102
|
return /* @__PURE__ */ g(p, {
|
|
106
103
|
title: t,
|
|
@@ -123,63 +120,63 @@ function b(f) {
|
|
|
123
120
|
children: "The following screens will help guide you through sending data from this portal into analysis platforms. Press \"Continue\" to get started."
|
|
124
121
|
})
|
|
125
122
|
] });
|
|
126
|
-
case
|
|
123
|
+
case 1: return /* @__PURE__ */ g(r, { children: O.map((e) => {
|
|
127
124
|
let { name: t, description: r, Logo: a } = i[e];
|
|
128
125
|
return /* @__PURE__ */ g(n, {
|
|
129
126
|
title: t,
|
|
130
127
|
description: r,
|
|
131
128
|
icon: /* @__PURE__ */ g(a, { width: "60px" }),
|
|
132
129
|
onClick: () => {
|
|
133
|
-
|
|
130
|
+
C(e);
|
|
134
131
|
},
|
|
135
|
-
selected:
|
|
132
|
+
selected: S === e
|
|
136
133
|
}, e);
|
|
137
134
|
}) });
|
|
138
|
-
case
|
|
139
|
-
let { PlatformInstructions: e } = i[
|
|
140
|
-
return e ? /* @__PURE__ */ g(e, { ...
|
|
135
|
+
case 2: {
|
|
136
|
+
let { PlatformInstructions: e } = i[S];
|
|
137
|
+
return e ? /* @__PURE__ */ g(e, { ...y }) : (console.error(`No instructions component found for platform: ${S}`), /* @__PURE__ */ g(u, {
|
|
141
138
|
severity: "error",
|
|
142
139
|
children: /* @__PURE__ */ _(m, {
|
|
143
140
|
variant: "body1",
|
|
144
|
-
children: [i[
|
|
141
|
+
children: [i[S].name, " has not been configured for data export on this site."]
|
|
145
142
|
})
|
|
146
143
|
}));
|
|
147
144
|
}
|
|
148
|
-
case
|
|
149
|
-
selectedPlatform:
|
|
150
|
-
onConfirmButtonPropsChange:
|
|
151
|
-
onSuccessfulExport:
|
|
145
|
+
case 3: return /* @__PURE__ */ g(a, {
|
|
146
|
+
selectedPlatform: S,
|
|
147
|
+
onConfirmButtonPropsChange: T,
|
|
148
|
+
onSuccessfulExport: P
|
|
152
149
|
});
|
|
153
150
|
}
|
|
154
151
|
}, [
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
152
|
+
O,
|
|
153
|
+
P,
|
|
154
|
+
y,
|
|
155
|
+
S,
|
|
156
|
+
b
|
|
160
157
|
]);
|
|
161
158
|
return /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g(o, {
|
|
162
|
-
showDisclaimer:
|
|
159
|
+
showDisclaimer: j,
|
|
163
160
|
onConfirm: () => {
|
|
164
|
-
|
|
161
|
+
A(!1);
|
|
165
162
|
},
|
|
166
|
-
onCancel:
|
|
163
|
+
onCancel: P
|
|
167
164
|
}), /* @__PURE__ */ g(e, {
|
|
168
|
-
open:
|
|
169
|
-
title:
|
|
170
|
-
content:
|
|
171
|
-
actions: /* @__PURE__ */ g(
|
|
172
|
-
step:
|
|
173
|
-
setStep:
|
|
174
|
-
selectedPlatform:
|
|
175
|
-
onCancel:
|
|
176
|
-
sendToPlatformConfirmButtonProps:
|
|
165
|
+
open: M,
|
|
166
|
+
title: N,
|
|
167
|
+
content: F,
|
|
168
|
+
actions: /* @__PURE__ */ g(v, {
|
|
169
|
+
step: b,
|
|
170
|
+
setStep: x,
|
|
171
|
+
selectedPlatform: S,
|
|
172
|
+
onCancel: P,
|
|
173
|
+
sendToPlatformConfirmButtonProps: w
|
|
177
174
|
}),
|
|
178
|
-
onCancel:
|
|
175
|
+
onCancel: P,
|
|
179
176
|
maxWidth: "md"
|
|
180
177
|
})] });
|
|
181
178
|
}
|
|
182
179
|
//#endregion
|
|
183
|
-
export {
|
|
180
|
+
export { y as default };
|
|
184
181
|
|
|
185
182
|
//# sourceMappingURL=ExportToAnalysisPlatformDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportToAnalysisPlatformDialog.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExportToAnalysisPlatformDialog.tsx"],"sourcesContent":["import {\n Alert,\n Box,\n Button,\n ButtonProps,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { useCallback, useMemo, useState } from 'react'\nimport { DialogBase } from '../../DialogBase'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper/QueryVisualizationContext'\nimport WizardChoiceButton from '../../WizardChoiceButton/WizardChoiceButton'\nimport WizardChoiceButtonGroup from '../../WizardChoiceButton/WizardChoiceButtonGroup'\nimport {\n EXTERNAL_ANALYSIS_PLATFORMS,\n ExternalAnalysisPlatform,\n PlatformInstructionProps,\n} from './ExternalAnalysisPlatformsConstants'\nimport ExternalPlatformActionsRequiredPrecheck from './ExternalPlatformActionsRequiredPrecheck'\nimport { ExternalPlatformDisclaimer } from './ExternalPlatformDisclaimer'\n\nenum ExportToAnalysisPlatformDialogStep {\n /* Basic introduction to the feature */\n PREAMBLE_INSTRUCTIONS,\n /* User must choose one of the available platforms */\n SELECT_PLATFORM,\n /* Instructions specific to the selected platform are displayed */\n PLATFORM_INSTRUCTIONS,\n /* Check that the user meets all requirements on the selected data, if so, can send to the external platform */\n CHECK_REQUIREMENTS_AND_SUBMIT,\n}\n\ntype ExportToAnalysisPlatformDialogActionsProps = {\n onCancel: () => void\n step: ExportToAnalysisPlatformDialogStep\n setStep: (step: ExportToAnalysisPlatformDialogStep) => void\n selectedPlatform: ExternalAnalysisPlatform | null\n /* Props for the final confirm button, where the behavior varies based on selection and may be disabled depending on selected file permissions */\n sendToPlatformConfirmButtonProps: ButtonProps\n}\n\n/**\n * Dialog actions for the ExportToAnalysisPlatformDialog\n */\nfunction ExportToAnalysisPlatformDialogActions(\n props: ExportToAnalysisPlatformDialogActionsProps,\n) {\n const { step, setStep, onCancel, sendToPlatformConfirmButtonProps } = props\n switch (step) {\n case ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS:\n return (\n <>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant={'contained'}\n onClick={() => {\n setStep(ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM)\n }}\n >\n Continue\n </Button>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM:\n return (\n <>\n <Button\n variant={'outlined'}\n onClick={() =>\n setStep(ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS)\n }\n sx={{ mr: 'auto' }}\n >\n Back\n </Button>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant={'contained'}\n disabled={!props.selectedPlatform}\n onClick={() => {\n setStep(ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS)\n }}\n >\n Continue\n </Button>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS:\n return (\n <>\n <Button\n variant={'outlined'}\n onClick={() =>\n setStep(ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM)\n }\n sx={{ mr: 'auto' }}\n >\n Back\n </Button>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant={'contained'}\n onClick={() => {\n setStep(\n ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT,\n )\n }}\n >\n Continue\n </Button>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT:\n return (\n <>\n <Button\n variant={'outlined'}\n onClick={() =>\n setStep(ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM)\n }\n sx={{ mr: 'auto' }}\n >\n Back\n </Button>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button variant={'contained'} {...sendToPlatformConfirmButtonProps} />\n </>\n )\n }\n}\n\nexport type ExportToAnalysisPlatformDialogProps = {\n /* Props used to configure the instructions components */\n platformInstructionProps: PlatformInstructionProps\n}\n\n/**\n * Dialog used to guide the user through sending data to an external analysis platform. Currently configured to work with\n * the table query data and selection stored in the QueryContext.\n */\nexport default function ExportToAnalysisPlatformDialog(\n props: ExportToAnalysisPlatformDialogProps,\n) {\n const { platformInstructionProps } = props\n\n const [step, setStep] = useState(\n ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS,\n )\n const [selectedPlatform, setSelectedPlatform] =\n useState<ExternalAnalysisPlatform | null>(null)\n\n const [\n sendToPlatformConfirmButtonProps,\n setSendToPlatformConfirmButtonProps,\n ] = useState<ButtonProps>({})\n\n const {\n isShowingExportToAnalysisPlatformModal,\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n // The disclaimer should be shown every time.\n const [isShowingDisclaimerPage, setIsShowingDisclaimerPage] = useState(true)\n\n const showDisclaimer =\n isShowingExportToAnalysisPlatformModal && isShowingDisclaimerPage\n const showExport =\n isShowingExportToAnalysisPlatformModal && !isShowingDisclaimerPage\n\n const dialogTitle = `Send to ${\n selectedPlatform &&\n [\n ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS,\n ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT,\n ].includes(step)\n ? EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform].name\n : 'Analysis Platform'\n }`\n\n const onCancelOrExportComplete = useCallback(() => {\n setIsShowingDisclaimerPage(true)\n setIsShowingExportToAnalysisPlatformModal(false)\n setSelectedPlatform(null)\n setStep(ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS)\n }, [setIsShowingExportToAnalysisPlatformModal])\n\n const dialogContent = useMemo(() => {\n switch (step) {\n case ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS:\n return (\n <>\n {/* Allowed platform logos */}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: 2,\n alignItems: 'center',\n pb: 2,\n }}\n >\n {enabledExternalAnalysisPlatforms.map(platform => {\n const { name, Logo } = EXTERNAL_ANALYSIS_PLATFORMS[platform]\n return (\n <Tooltip key={platform} title={name}>\n <Logo width={'60px'} />\n </Tooltip>\n )\n })}\n </Box>\n <Typography variant={'headline3'} gutterBottom>\n Instructions\n </Typography>\n <Typography variant={'body1'} gutterBottom>\n This portal supports sending data to third-party platforms for\n analysis, once all requirements for data access (if any) have been\n met. We currently support the above platforms.\n </Typography>\n <Typography variant={'body1'}>\n The following screens will help guide you through sending data\n from this portal into analysis platforms. Press \"Continue\" to get\n started.\n </Typography>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM:\n return (\n <WizardChoiceButtonGroup>\n {enabledExternalAnalysisPlatforms.map(platform => {\n const { name, description, Logo } =\n EXTERNAL_ANALYSIS_PLATFORMS[platform]\n return (\n <WizardChoiceButton\n key={platform}\n title={name}\n description={description}\n icon={<Logo width={'60px'} />}\n onClick={() => {\n setSelectedPlatform(platform)\n }}\n selected={selectedPlatform === platform}\n />\n )\n })}\n </WizardChoiceButtonGroup>\n )\n case ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS: {\n const { PlatformInstructions } =\n EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform!]\n if (PlatformInstructions) {\n return <PlatformInstructions {...platformInstructionProps} />\n }\n console.error(\n `No instructions component found for platform: ${selectedPlatform}`,\n )\n // fallback error message, but this should never happen in production\n return (\n <Alert severity=\"error\">\n <Typography variant={'body1'}>\n {EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform!].name} has not been\n configured for data export on this site.\n </Typography>\n </Alert>\n )\n }\n case ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT:\n return (\n <ExternalPlatformActionsRequiredPrecheck\n selectedPlatform={selectedPlatform!}\n onConfirmButtonPropsChange={setSendToPlatformConfirmButtonProps}\n onSuccessfulExport={onCancelOrExportComplete}\n />\n )\n }\n }, [\n enabledExternalAnalysisPlatforms,\n onCancelOrExportComplete,\n platformInstructionProps,\n selectedPlatform,\n step,\n ])\n\n return (\n <div>\n <ExternalPlatformDisclaimer\n showDisclaimer={showDisclaimer}\n onConfirm={() => {\n setIsShowingDisclaimerPage(false)\n }}\n onCancel={onCancelOrExportComplete}\n />\n <DialogBase\n open={showExport}\n title={dialogTitle}\n content={dialogContent}\n actions={\n <ExportToAnalysisPlatformDialogActions\n step={step}\n setStep={setStep}\n selectedPlatform={selectedPlatform}\n onCancel={onCancelOrExportComplete}\n sendToPlatformConfirmButtonProps={sendToPlatformConfirmButtonProps}\n />\n }\n onCancel={onCancelOrExportComplete}\n maxWidth=\"md\"\n />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AAqBA,IAAK,IAAL,yBAAA,GAAA;QAEE,EAAA,EAAA,wBAAA,KAAA,yBAEA,EAAA,EAAA,kBAAA,KAAA,mBAEA,EAAA,EAAA,wBAAA,KAAA,yBAEA,EAAA,EAAA,gCAAA,KAAA;EARG,KAAA,EAAA,CASJ;AAcD,SAAS,EACP,GACA;CACA,IAAM,EAAE,SAAM,YAAS,aAAU,wCAAqC;AACtE,SAAQ,GAAR;EACE,KAAK,EAAmC,sBACtC,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GAAQ,SAAS;GAAY,SAAS;aAAU;GAEvC,CAAA,EACT,kBAAC,GAAD;GACE,SAAS;GACT,eAAe;AACb,MAAQ,EAAmC,gBAAgB;;aAE9D;GAEQ,CAAA,CACR,EAAA,CAAA;EAEP,KAAK,EAAmC,gBACtC,QACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,SAAS;IACT,eACE,EAAQ,EAAmC,sBAAsB;IAEnE,IAAI,EAAE,IAAI,QAAQ;cACnB;IAEQ,CAAA;GACT,kBAAC,GAAD;IAAQ,SAAS;IAAY,SAAS;cAAU;IAEvC,CAAA;GACT,kBAAC,GAAD;IACE,SAAS;IACT,UAAU,CAAC,EAAM;IACjB,eAAe;AACb,OAAQ,EAAmC,sBAAsB;;cAEpE;IAEQ,CAAA;GACR,EAAA,CAAA;EAEP,KAAK,EAAmC,sBACtC,QACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,SAAS;IACT,eACE,EAAQ,EAAmC,gBAAgB;IAE7D,IAAI,EAAE,IAAI,QAAQ;cACnB;IAEQ,CAAA;GACT,kBAAC,GAAD;IAAQ,SAAS;IAAY,SAAS;cAAU;IAEvC,CAAA;GACT,kBAAC,GAAD;IACE,SAAS;IACT,eAAe;AACb,OACE,EAAmC,8BACpC;;cAEJ;IAEQ,CAAA;GACR,EAAA,CAAA;EAEP,KAAK,EAAmC,8BACtC,QACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,SAAS;IACT,eACE,EAAQ,EAAmC,gBAAgB;IAE7D,IAAI,EAAE,IAAI,QAAQ;cACnB;IAEQ,CAAA;GACT,kBAAC,GAAD;IAAQ,SAAS;IAAY,SAAS;cAAU;IAEvC,CAAA;GACT,kBAAC,GAAD;IAAQ,SAAS;IAAa,GAAI;IAAoC,CAAA;GACrE,EAAA,CAAA;;;AAcX,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,gCAA6B,GAE/B,CAAC,GAAM,KAAW,EACtB,EAAmC,sBACpC,EACK,CAAC,GAAkB,KACvB,EAA0C,KAAK,EAE3C,CACJ,GACA,KACE,EAAsB,EAAE,CAAC,EAEvB,EACJ,2CACA,8CACA,wCACE,GAA8B,EAG5B,CAAC,GAAyB,KAA8B,EAAS,GAAK,EAEtE,IACJ,KAA0C,GACtC,IACJ,KAA0C,CAAC,GAEvC,IAAc,WAClB,KACA,CACE,EAAmC,uBACnC,EAAmC,8BACpC,CAAC,SAAS,EAAK,GACZ,EAA4B,GAAkB,OAC9C,uBAGA,IAA2B,QAAkB;AAIjD,EAHA,EAA2B,GAAK,EAChC,EAA0C,GAAM,EAChD,EAAoB,KAAK,EACzB,EAAQ,EAAmC,sBAAsB;IAChE,CAAC,EAA0C,CAAC,EAEzC,IAAgB,QAAc;AAClC,UAAQ,GAAR;GACE,KAAK,EAAmC,sBACtC,QACE,kBAAA,GAAA,EAAA,UAAA;IAEE,kBAAC,GAAD;KACE,IAAI;MACF,SAAS;MACT,eAAe;MACf,KAAK;MACL,YAAY;MACZ,IAAI;MACL;eAEA,EAAiC,KAAI,MAAY;MAChD,IAAM,EAAE,SAAM,YAAS,EAA4B;AACnD,aACE,kBAAC,GAAD;OAAwB,OAAO;iBAC7B,kBAAC,GAAD,EAAM,OAAO,QAAU,CAAA;OACf,EAFI,EAEJ;OAEZ;KACE,CAAA;IACN,kBAAC,GAAD;KAAY,SAAS;KAAa,cAAA;eAAa;KAElC,CAAA;IACb,kBAAC,GAAD;KAAY,SAAS;KAAS,cAAA;eAAa;KAI9B,CAAA;IACb,kBAAC,GAAD;KAAY,SAAS;eAAS;KAIjB,CAAA;IACZ,EAAA,CAAA;GAEP,KAAK,EAAmC,gBACtC,QACE,kBAAC,GAAD,EAAA,UACG,EAAiC,KAAI,MAAY;IAChD,IAAM,EAAE,SAAM,gBAAa,YACzB,EAA4B;AAC9B,WACE,kBAAC,GAAD;KAEE,OAAO;KACM;KACb,MAAM,kBAAC,GAAD,EAAM,OAAO,QAAU,CAAA;KAC7B,eAAe;AACb,QAAoB,EAAS;;KAE/B,UAAU,MAAqB;KAC/B,EARK,EAQL;KAEJ,EACsB,CAAA;GAE9B,KAAK,EAAmC,uBAAuB;IAC7D,IAAM,EAAE,4BACN,EAA4B;AAQ9B,WAPI,IACK,kBAAC,GAAD,EAAsB,GAAI,GAA4B,CAAA,IAE/D,QAAQ,MACN,iDAAiD,IAClD,EAGC,kBAAC,GAAD;KAAO,UAAS;eACd,kBAAC,GAAD;MAAY,SAAS;gBAArB,CACG,EAA4B,GAAmB,MAAK,yDAE1C;;KACP,CAAA;;GAGZ,KAAK,EAAmC,8BACtC,QACE,kBAAC,GAAD;IACoB;IAClB,4BAA4B;IAC5B,oBAAoB;IACpB,CAAA;;IAGP;EACD;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EACkB;EAChB,iBAAiB;AACf,KAA2B,GAAM;;EAEnC,UAAU;EACV,CAAA,EACF,kBAAC,GAAD;EACE,MAAM;EACN,OAAO;EACP,SAAS;EACT,SACE,kBAAC,GAAD;GACQ;GACG;GACS;GAClB,UAAU;GACwB;GAClC,CAAA;EAEJ,UAAU;EACV,UAAS;EACT,CAAA,CACE,EAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"ExportToAnalysisPlatformDialog.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExportToAnalysisPlatformDialog.tsx"],"sourcesContent":["import {\n Alert,\n Box,\n Button,\n ButtonProps,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { useCallback, useMemo, useState } from 'react'\nimport { DialogBase } from '../../DialogBase'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper/QueryVisualizationContext'\nimport WizardChoiceButton from '../../WizardChoiceButton/WizardChoiceButton'\nimport WizardChoiceButtonGroup from '../../WizardChoiceButton/WizardChoiceButtonGroup'\nimport {\n EXTERNAL_ANALYSIS_PLATFORMS,\n ExternalAnalysisPlatform,\n PlatformInstructionProps,\n} from './ExternalAnalysisPlatformsConstants'\nimport ExternalPlatformActionsRequiredPrecheck from './ExternalPlatformActionsRequiredPrecheck'\nimport { ExternalPlatformDisclaimer } from './ExternalPlatformDisclaimer'\n\nenum ExportToAnalysisPlatformDialogStep {\n /* Basic introduction to the feature */\n PREAMBLE_INSTRUCTIONS,\n /* User must choose one of the available platforms */\n SELECT_PLATFORM,\n /* Instructions specific to the selected platform are displayed */\n PLATFORM_INSTRUCTIONS,\n /* Check that the user meets all requirements on the selected data, if so, can send to the external platform */\n CHECK_REQUIREMENTS_AND_SUBMIT,\n}\n\ntype ExportToAnalysisPlatformDialogActionsProps = {\n onCancel: () => void\n step: ExportToAnalysisPlatformDialogStep\n setStep: (step: ExportToAnalysisPlatformDialogStep) => void\n selectedPlatform: ExternalAnalysisPlatform | null\n /* Props for the final confirm button, where the behavior varies based on selection and may be disabled depending on selected file permissions */\n sendToPlatformConfirmButtonProps: ButtonProps\n}\n\n/**\n * Dialog actions for the ExportToAnalysisPlatformDialog\n */\nfunction ExportToAnalysisPlatformDialogActions(\n props: ExportToAnalysisPlatformDialogActionsProps,\n) {\n const { step, setStep, onCancel, sendToPlatformConfirmButtonProps } = props\n switch (step) {\n case ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS:\n return (\n <>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant={'contained'}\n onClick={() => {\n setStep(ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM)\n }}\n >\n Continue\n </Button>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM:\n return (\n <>\n <Button\n variant={'outlined'}\n onClick={() =>\n setStep(ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS)\n }\n sx={{ mr: 'auto' }}\n >\n Back\n </Button>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant={'contained'}\n disabled={!props.selectedPlatform}\n onClick={() => {\n setStep(ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS)\n }}\n >\n Continue\n </Button>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS:\n return (\n <>\n <Button\n variant={'outlined'}\n onClick={() =>\n setStep(ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM)\n }\n sx={{ mr: 'auto' }}\n >\n Back\n </Button>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n variant={'contained'}\n onClick={() => {\n setStep(\n ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT,\n )\n }}\n >\n Continue\n </Button>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT:\n return (\n <>\n <Button\n variant={'outlined'}\n onClick={() =>\n setStep(ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM)\n }\n sx={{ mr: 'auto' }}\n >\n Back\n </Button>\n <Button variant={'outlined'} onClick={onCancel}>\n Cancel\n </Button>\n <Button variant={'contained'} {...sendToPlatformConfirmButtonProps} />\n </>\n )\n }\n}\n\nexport type ExportToAnalysisPlatformDialogProps = {\n /* Props used to configure the instructions components */\n platformInstructionProps: PlatformInstructionProps\n}\n\n/**\n * Dialog used to guide the user through sending data to an external analysis platform. Currently configured to work with\n * the table query data and selection stored in the QueryContext.\n */\nexport default function ExportToAnalysisPlatformDialog(\n props: ExportToAnalysisPlatformDialogProps,\n) {\n const { platformInstructionProps } = props\n\n const [step, setStep] = useState(\n ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS,\n )\n const [selectedPlatform, setSelectedPlatform] =\n useState<ExternalAnalysisPlatform | null>(null)\n\n const [\n sendToPlatformConfirmButtonProps,\n setSendToPlatformConfirmButtonProps,\n ] = useState<ButtonProps>({})\n\n const {\n isShowingExportToAnalysisPlatformModal,\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n // The disclaimer should be shown every time.\n const [isShowingDisclaimerPage, setIsShowingDisclaimerPage] = useState(true)\n\n const showDisclaimer =\n isShowingExportToAnalysisPlatformModal && isShowingDisclaimerPage\n const showExport =\n isShowingExportToAnalysisPlatformModal && !isShowingDisclaimerPage\n\n const dialogTitle = `Send to ${\n selectedPlatform &&\n [\n ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS,\n ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT,\n ].includes(step)\n ? EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform].name\n : 'Analysis Platform'\n }`\n\n const onCancelOrExportComplete = useCallback(() => {\n setIsShowingDisclaimerPage(true)\n setIsShowingExportToAnalysisPlatformModal(false)\n setSelectedPlatform(null)\n setStep(ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS)\n }, [setIsShowingExportToAnalysisPlatformModal])\n\n const dialogContent = useMemo(() => {\n switch (step) {\n case ExportToAnalysisPlatformDialogStep.PREAMBLE_INSTRUCTIONS:\n return (\n <>\n {/* Allowed platform logos */}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: 2,\n alignItems: 'center',\n pb: 2,\n }}\n >\n {enabledExternalAnalysisPlatforms.map(platform => {\n const { name, Logo } = EXTERNAL_ANALYSIS_PLATFORMS[platform]\n return (\n <Tooltip key={platform} title={name}>\n <Logo width={'60px'} />\n </Tooltip>\n )\n })}\n </Box>\n <Typography variant={'headline3'} gutterBottom>\n Instructions\n </Typography>\n <Typography variant={'body1'} gutterBottom>\n This portal supports sending data to third-party platforms for\n analysis, once all requirements for data access (if any) have been\n met. We currently support the above platforms.\n </Typography>\n <Typography variant={'body1'}>\n The following screens will help guide you through sending data\n from this portal into analysis platforms. Press \"Continue\" to get\n started.\n </Typography>\n </>\n )\n case ExportToAnalysisPlatformDialogStep.SELECT_PLATFORM:\n return (\n <WizardChoiceButtonGroup>\n {enabledExternalAnalysisPlatforms.map(platform => {\n const { name, description, Logo } =\n EXTERNAL_ANALYSIS_PLATFORMS[platform]\n return (\n <WizardChoiceButton\n key={platform}\n title={name}\n description={description}\n icon={<Logo width={'60px'} />}\n onClick={() => {\n setSelectedPlatform(platform)\n }}\n selected={selectedPlatform === platform}\n />\n )\n })}\n </WizardChoiceButtonGroup>\n )\n case ExportToAnalysisPlatformDialogStep.PLATFORM_INSTRUCTIONS: {\n const { PlatformInstructions } =\n EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform!]\n if (PlatformInstructions) {\n return <PlatformInstructions {...platformInstructionProps} />\n }\n console.error(\n `No instructions component found for platform: ${selectedPlatform}`,\n )\n // fallback error message, but this should never happen in production\n return (\n <Alert severity=\"error\">\n <Typography variant={'body1'}>\n {EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform!].name} has not been\n configured for data export on this site.\n </Typography>\n </Alert>\n )\n }\n case ExportToAnalysisPlatformDialogStep.CHECK_REQUIREMENTS_AND_SUBMIT:\n return (\n <ExternalPlatformActionsRequiredPrecheck\n selectedPlatform={selectedPlatform!}\n onConfirmButtonPropsChange={setSendToPlatformConfirmButtonProps}\n onSuccessfulExport={onCancelOrExportComplete}\n />\n )\n }\n }, [\n enabledExternalAnalysisPlatforms,\n onCancelOrExportComplete,\n platformInstructionProps,\n selectedPlatform,\n step,\n ])\n\n return (\n <div>\n <ExternalPlatformDisclaimer\n showDisclaimer={showDisclaimer}\n onConfirm={() => {\n setIsShowingDisclaimerPage(false)\n }}\n onCancel={onCancelOrExportComplete}\n />\n <DialogBase\n open={showExport}\n title={dialogTitle}\n content={dialogContent}\n actions={\n <ExportToAnalysisPlatformDialogActions\n step={step}\n setStep={setStep}\n selectedPlatform={selectedPlatform}\n onCancel={onCancelOrExportComplete}\n sendToPlatformConfirmButtonProps={sendToPlatformConfirmButtonProps}\n />\n }\n onCancel={onCancelOrExportComplete}\n maxWidth=\"md\"\n />\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalAnalysisPlatformInstructions.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.tsx"],"sourcesContent":["import React from 'react'\nimport { Link } from '@mui/material'\nimport Typography from '@mui/material/Typography'\n\nexport type ExternalAnalysisPlatformInstructionsProps = {\n platformName: string\n platformLoginURL: string\n platformConnectAccountURL?: string\n platformSupportEmail?: string\n}\n\nexport const ExternalAnalysisPlatformInstructions = (\n props: ExternalAnalysisPlatformInstructionsProps,\n): React.ReactNode => {\n const {\n platformName,\n platformLoginURL,\n platformConnectAccountURL,\n platformSupportEmail,\n } = props\n return (\n <>\n <Typography variant=\"body1\" sx={{ fontWeight: 700 }} gutterBottom>\n You must meet these requirements from {platformName} to send data:\n </Typography>\n <Typography\n variant=\"body1\"\n component={'ol'}\n gutterBottom\n sx={{ marginLeft: '10px', li: { mb: 1 } }}\n >\n <li>You must complete all required Access Actions in the next step.</li>\n <li>\n You must be logged in to a {platformName} account.{' '}\n <Link\n href={platformLoginURL}\n rel={'noopener noreferrer'}\n target={'_blank'}\n >\n Click here to login or register for {platformName}\n </Link>\n .\n </li>\n <li>\n You must connect your {platformName} account to Synapse.{' '}\n {platformConnectAccountURL && (\n <Link href={platformConnectAccountURL} target=\"_blank\">\n Click here for instructions.\n </Link>\n )}\n </li>\n </Typography>\n\n <Typography variant=\"body1\" gutterBottom>\n Note that we cannot provide support for {platformName}. \n {platformSupportEmail && (\n <>\n Please contact {platformName}'s{' '}\n <Link href={platformSupportEmail}>technical support</Link> for\n issues related to the above.\n </>\n )}\n </Typography>\n </>\n )\n}\n"],"mappings":";;;;;AAWA,IAAa,KACX,MACoB;CACpB,IAAM,EACJ,iBACA,qBACA,8BACA,4BACE;
|
|
1
|
+
{"version":3,"file":"ExternalAnalysisPlatformInstructions.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalAnalysisPlatformInstructions.tsx"],"sourcesContent":["import React from 'react'\nimport { Link } from '@mui/material'\nimport Typography from '@mui/material/Typography'\n\nexport type ExternalAnalysisPlatformInstructionsProps = {\n platformName: string\n platformLoginURL: string\n platformConnectAccountURL?: string\n platformSupportEmail?: string\n}\n\nexport const ExternalAnalysisPlatformInstructions = (\n props: ExternalAnalysisPlatformInstructionsProps,\n): React.ReactNode => {\n const {\n platformName,\n platformLoginURL,\n platformConnectAccountURL,\n platformSupportEmail,\n } = props\n return (\n <>\n <Typography variant=\"body1\" sx={{ fontWeight: 700 }} gutterBottom>\n You must meet these requirements from {platformName} to send data:\n </Typography>\n <Typography\n variant=\"body1\"\n component={'ol'}\n gutterBottom\n sx={{ marginLeft: '10px', li: { mb: 1 } }}\n >\n <li>You must complete all required Access Actions in the next step.</li>\n <li>\n You must be logged in to a {platformName} account.{' '}\n <Link\n href={platformLoginURL}\n rel={'noopener noreferrer'}\n target={'_blank'}\n >\n Click here to login or register for {platformName}\n </Link>\n .\n </li>\n <li>\n You must connect your {platformName} account to Synapse.{' '}\n {platformConnectAccountURL && (\n <Link href={platformConnectAccountURL} target=\"_blank\">\n Click here for instructions.\n </Link>\n )}\n </li>\n </Typography>\n\n <Typography variant=\"body1\" gutterBottom>\n Note that we cannot provide support for {platformName}. \n {platformSupportEmail && (\n <>\n Please contact {platformName}'s{' '}\n <Link href={platformSupportEmail}>technical support</Link> for\n issues related to the above.\n </>\n )}\n </Typography>\n </>\n )\n}\n"],"mappings":";;;;;AAWA,IAAa,KACX,MACoB;CACpB,IAAM,EACJ,iBACA,qBACA,8BACA,4BACE;CACJ,OACE,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GAAY,SAAQ;GAAQ,IAAI,EAAE,YAAY,IAAI;GAAG,cAAA;aAArD;IAAkE;IACzB;IAAa;GAC1C;;EACZ,kBAAC,GAAD;GACE,SAAQ;GACR,WAAW;GACX,cAAA;GACA,IAAI;IAAE,YAAY;IAAQ,IAAI,EAAE,IAAI,EAAE;GAAE;aAJ1C;IAME,kBAAC,MAAD,EAAA,UAAI,kEAAmE,CAAA;IACvE,kBAAC,MAAD,EAAA,UAAA;KAAI;KAC0B;KAAa;KAAU;KACnD,kBAAC,GAAD;MACE,MAAM;MACN,KAAK;MACL,QAAQ;gBAHV,CAIC,wCACsC,CACjC;;KAAC;IAEL,EAAA,CAAA;IACJ,kBAAC,MAAD,EAAA,UAAA;KAAI;KACqB;KAAa;KAAqB;KACxD,KACC,kBAAC,GAAD;MAAM,MAAM;MAA2B,QAAO;gBAAS;KAEjD,CAAA;IAEN,EAAA,CAAA;GACM;;EAEZ,kBAAC,GAAD;GAAY,SAAQ;GAAQ,cAAA;aAA5B;IAAyC;IACE;IAAa;IACrD,KACC,kBAAA,GAAA,EAAA,UAAA;KAAE;KACgB;KAAa;KAAG;KAChC,kBAAC,GAAD;MAAM,MAAM;gBAAsB;KAAuB,CAAA;KAAC;IAE1D,EAAA,CAAA;GAEM;;CACZ,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalAnalysisPlatformsConstants.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.tsx"],"sourcesContent":["import React from 'react'\nimport { ReactComponent as AdWorkbenchLogo } from '../../../assets/logos/other/ad-workbench-logo.svg'\nimport { ReactComponent as CavaticaLogo } from '../../../assets/logos/other/cavatica-logo.svg'\nimport { ReactComponent as TerraLogo } from '../../../assets/logos/other/terra-logo.svg'\nimport { ReactComponent as PlutoLogo } from '../../../assets/logos/other/pluto-logo.svg'\nimport { ExternalAnalysisPlatformInstructions } from './ExternalAnalysisPlatformInstructions'\nimport { ADDiscoveryPortalInstructions } from './ADDiscoveryPortalInstructions'\n\nexport type PlatformInstructionProps = {\n cavaticaConnectAccountURL?: string\n}\n\ntype ExternalAnalysisPlatformDescription = {\n name: string\n description: string\n Logo: React.ComponentType<React.SVGProps<SVGSVGElement>>\n PlatformInstructions?: React.ComponentType<PlatformInstructionProps>\n}\n\nexport type ExternalAnalysisPlatform =\n | 'cavatica'\n | 'terra'\n | 'adworkbench'\n | 'pluto'\n | 'plutodev'\n\nconst plutoAnalysisPlatformDescription: ExternalAnalysisPlatformDescription = {\n name: 'Pluto',\n description:\n 'Intuitively store, search, analyze, and visualize complex biological data (including large, raw data files) and run bioinformatics pipelines in a few clicks without needing to write code or manage any of your own cloud infrastructure.',\n Logo: PlutoLogo,\n PlatformInstructions: () => (\n <ExternalAnalysisPlatformInstructions\n platformName=\"Pluto\"\n platformLoginURL=\"https://app.pluto.bio/login\"\n platformConnectAccountURL=\"https://help.pluto.bio/en/articles/synapse-pluto\"\n platformSupportEmail=\"mailto:support@pluto.bio\"\n />\n ),\n}\nconst plutoDevAnalysisPlatformDescription: ExternalAnalysisPlatformDescription =\n {\n ...plutoAnalysisPlatformDescription,\n name: 'Pluto (Development)',\n PlatformInstructions: () => (\n <ExternalAnalysisPlatformInstructions\n platformName=\"Pluto\"\n platformLoginURL=\"https://dev.pluto.bio/login\"\n platformConnectAccountURL=\"https://help.pluto.bio/en/articles/synapse-pluto\"\n platformSupportEmail=\"mailto:support@pluto.bio\"\n />\n ),\n }\n\nexport const EXTERNAL_ANALYSIS_PLATFORMS: Record<\n ExternalAnalysisPlatform,\n ExternalAnalysisPlatformDescription\n> = {\n cavatica: {\n name: 'CAVATICA',\n description:\n 'CAVATICA is a storage, sharing, and analysis platform designed to handle large volumes of pediatric tumor genomics data. It is produced in collaboration with Seven Bridges and based on the Seven Bridges Platform for cloud storage and bioinformatics analysis.',\n Logo: CavaticaLogo,\n PlatformInstructions: (props: PlatformInstructionProps) => (\n <ExternalAnalysisPlatformInstructions\n platformName={'CAVATICA'}\n platformLoginURL={'https://cavatica.sbgenomics.com/'}\n platformConnectAccountURL={props.cavaticaConnectAccountURL}\n platformSupportEmail={'mailto:support@velsera.com'}\n />\n ),\n },\n terra: {\n name: 'Terra',\n description:\n 'Terra is an analysis platform that allows users to access data, run analysis tools, and collaborate. Terra is powered by Google Cloud Platform, enabling the user to scale and manage billing of their own projects.',\n Logo: TerraLogo,\n PlatformInstructions: () => (\n <ExternalAnalysisPlatformInstructions\n platformName=\"Terra\"\n platformLoginURL=\"https://app.terra.bio/\"\n platformConnectAccountURL=\"https://app.terra.bio/#profile?tab=externalIdentities\"\n platformSupportEmail=\"mailto:support@terra.bio\"\n />\n ),\n },\n pluto: plutoAnalysisPlatformDescription,\n plutodev: plutoDevAnalysisPlatformDescription,\n adworkbench: {\n name: 'AD Discovery Portal',\n description:\n \"The AD Discovery Portal is designed to help researchers explore novel Alzheimer's disease and related dementias data through a publicly accessible dataset catalog. It offers a diverse collection of data, including imaging, omics, clinical, and multi-modal approaches, and brings together datasets from both industry and academia. The Discovery Portal is fully integrated with AD Workbench and enables seamless exploration, dataset access requests, and analysis.\",\n Logo: AdWorkbenchLogo,\n PlatformInstructions: () => <ADDiscoveryPortalInstructions />,\n },\n} as const\n"],"mappings":";;;;;;;;;AA0BA,IAAM,IAAwE;CAC5E,MAAM;CACN,aACE;CACF,MAAM;CACN,4BACE,kBAAC,GAAD;EACE,cAAa;EACb,kBAAiB;EACjB,2BAA0B;EAC1B,sBAAqB;
|
|
1
|
+
{"version":3,"file":"ExternalAnalysisPlatformsConstants.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalAnalysisPlatformsConstants.tsx"],"sourcesContent":["import React from 'react'\nimport { ReactComponent as AdWorkbenchLogo } from '../../../assets/logos/other/ad-workbench-logo.svg'\nimport { ReactComponent as CavaticaLogo } from '../../../assets/logos/other/cavatica-logo.svg'\nimport { ReactComponent as TerraLogo } from '../../../assets/logos/other/terra-logo.svg'\nimport { ReactComponent as PlutoLogo } from '../../../assets/logos/other/pluto-logo.svg'\nimport { ExternalAnalysisPlatformInstructions } from './ExternalAnalysisPlatformInstructions'\nimport { ADDiscoveryPortalInstructions } from './ADDiscoveryPortalInstructions'\n\nexport type PlatformInstructionProps = {\n cavaticaConnectAccountURL?: string\n}\n\ntype ExternalAnalysisPlatformDescription = {\n name: string\n description: string\n Logo: React.ComponentType<React.SVGProps<SVGSVGElement>>\n PlatformInstructions?: React.ComponentType<PlatformInstructionProps>\n}\n\nexport type ExternalAnalysisPlatform =\n | 'cavatica'\n | 'terra'\n | 'adworkbench'\n | 'pluto'\n | 'plutodev'\n\nconst plutoAnalysisPlatformDescription: ExternalAnalysisPlatformDescription = {\n name: 'Pluto',\n description:\n 'Intuitively store, search, analyze, and visualize complex biological data (including large, raw data files) and run bioinformatics pipelines in a few clicks without needing to write code or manage any of your own cloud infrastructure.',\n Logo: PlutoLogo,\n PlatformInstructions: () => (\n <ExternalAnalysisPlatformInstructions\n platformName=\"Pluto\"\n platformLoginURL=\"https://app.pluto.bio/login\"\n platformConnectAccountURL=\"https://help.pluto.bio/en/articles/synapse-pluto\"\n platformSupportEmail=\"mailto:support@pluto.bio\"\n />\n ),\n}\nconst plutoDevAnalysisPlatformDescription: ExternalAnalysisPlatformDescription =\n {\n ...plutoAnalysisPlatformDescription,\n name: 'Pluto (Development)',\n PlatformInstructions: () => (\n <ExternalAnalysisPlatformInstructions\n platformName=\"Pluto\"\n platformLoginURL=\"https://dev.pluto.bio/login\"\n platformConnectAccountURL=\"https://help.pluto.bio/en/articles/synapse-pluto\"\n platformSupportEmail=\"mailto:support@pluto.bio\"\n />\n ),\n }\n\nexport const EXTERNAL_ANALYSIS_PLATFORMS: Record<\n ExternalAnalysisPlatform,\n ExternalAnalysisPlatformDescription\n> = {\n cavatica: {\n name: 'CAVATICA',\n description:\n 'CAVATICA is a storage, sharing, and analysis platform designed to handle large volumes of pediatric tumor genomics data. It is produced in collaboration with Seven Bridges and based on the Seven Bridges Platform for cloud storage and bioinformatics analysis.',\n Logo: CavaticaLogo,\n PlatformInstructions: (props: PlatformInstructionProps) => (\n <ExternalAnalysisPlatformInstructions\n platformName={'CAVATICA'}\n platformLoginURL={'https://cavatica.sbgenomics.com/'}\n platformConnectAccountURL={props.cavaticaConnectAccountURL}\n platformSupportEmail={'mailto:support@velsera.com'}\n />\n ),\n },\n terra: {\n name: 'Terra',\n description:\n 'Terra is an analysis platform that allows users to access data, run analysis tools, and collaborate. Terra is powered by Google Cloud Platform, enabling the user to scale and manage billing of their own projects.',\n Logo: TerraLogo,\n PlatformInstructions: () => (\n <ExternalAnalysisPlatformInstructions\n platformName=\"Terra\"\n platformLoginURL=\"https://app.terra.bio/\"\n platformConnectAccountURL=\"https://app.terra.bio/#profile?tab=externalIdentities\"\n platformSupportEmail=\"mailto:support@terra.bio\"\n />\n ),\n },\n pluto: plutoAnalysisPlatformDescription,\n plutodev: plutoDevAnalysisPlatformDescription,\n adworkbench: {\n name: 'AD Discovery Portal',\n description:\n \"The AD Discovery Portal is designed to help researchers explore novel Alzheimer's disease and related dementias data through a publicly accessible dataset catalog. It offers a diverse collection of data, including imaging, omics, clinical, and multi-modal approaches, and brings together datasets from both industry and academia. The Discovery Portal is fully integrated with AD Workbench and enables seamless exploration, dataset access requests, and analysis.\",\n Logo: AdWorkbenchLogo,\n PlatformInstructions: () => <ADDiscoveryPortalInstructions />,\n },\n} as const\n"],"mappings":";;;;;;;;;AA0BA,IAAM,IAAwE;CAC5E,MAAM;CACN,aACE;CACF,MAAM;CACN,4BACE,kBAAC,GAAD;EACE,cAAa;EACb,kBAAiB;EACjB,2BAA0B;EAC1B,sBAAqB;CACtB,CAAA;AAEL,GACM,IACJ;CACE,GAAG;CACH,MAAM;CACN,4BACE,kBAAC,GAAD;EACE,cAAa;EACb,kBAAiB;EACjB,2BAA0B;EAC1B,sBAAqB;CACtB,CAAA;AAEL,GAEW,IAGT;CACF,UAAU;EACR,MAAM;EACN,aACE;EACF,MAAM;EACN,uBAAuB,MACrB,kBAAC,GAAD;GACE,cAAc;GACd,kBAAkB;GAClB,2BAA2B,EAAM;GACjC,sBAAsB;EACvB,CAAA;CAEL;CACA,OAAO;EACL,MAAM;EACN,aACE;EACF,MAAM;EACN,4BACE,kBAAC,GAAD;GACE,cAAa;GACb,kBAAiB;GACjB,2BAA0B;GAC1B,sBAAqB;EACtB,CAAA;CAEL;CACA,OAAO;CACP,UAAU;CACV,aAAa;EACX,MAAM;EACN,aACE;EACF,MAAM;EACN,4BAA4B,kBAAC,GAAD,CAAgC,CAAA;CAC9D;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalPlatformActionsRequiredPrecheck.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.tsx"],"sourcesContent":["import { ButtonProps, Typography } from '@mui/material'\nimport { upperFirst } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useExportTableQueryToAnalysisPlatform } from '../../../synapse-queries/entity/useExportTableQueryToAnalysisPlatform'\nimport { getPrimaryKeyINFilter } from '../../../utils/functions/QueryFilterUtils'\nimport { TableQueryActionsRequired } from '../../DownloadCart/TableQueryActionsRequired'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper/index'\nimport {\n useHasSelectedRowsAtomValue,\n useRowSelectionPrimaryKeyAtomValue,\n useSelectedRowsAtomValue,\n} from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { SkeletonParagraph } from '../../Skeleton/index'\nimport { getNumberOfResultsToInvokeActionCopy } from '../TopLevelControls/TopLevelControlsUtils'\nimport {\n EXTERNAL_ANALYSIS_PLATFORMS,\n ExternalAnalysisPlatform,\n} from './ExternalAnalysisPlatformsConstants'\n\n/**\n * Get the ID of the confirm button for the selected platform, used in Google Tag Manager\n * @param selectedPlatform\n */\nfunction getConfirmButtonId(\n selectedPlatform: ExternalAnalysisPlatform,\n): string {\n return `SendTo${upperFirst(\n selectedPlatform.replace('\\\\s', ''),\n )}ButtonFromConfirmationDialog`\n}\n\nexport type ExternalPlatformActionsRequiredPrecheckProps = {\n /* The external analysis platform that the user selected */\n selectedPlatform: ExternalAnalysisPlatform\n /* Callback to propagate the current confirm button appearance and behavior */\n onConfirmButtonPropsChange: (props: ButtonProps) => void\n /* Callback invoked when export to the external platform succeeds */\n onSuccessfulExport: () => void\n}\n\nexport default function ExternalPlatformActionsRequiredPrecheck(\n props: ExternalPlatformActionsRequiredPrecheckProps,\n) {\n const { selectedPlatform, onConfirmButtonPropsChange, onSuccessfulExport } =\n props\n const platform = EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform]\n\n const {\n getCurrentQueryRequest,\n onViewSharingSettingsClicked,\n hasResettableFilters,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n } = useQueryContext()\n\n const { data: queryMetadata, isLoading } = useGetQueryMetadata()\n const selectedRows = useSelectedRowsAtomValue()\n const rowSelectionPrimaryKey = useRowSelectionPrimaryKeyAtomValue()\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const { unitDescription } = useQueryVisualizationContext()\n\n const [numberOfRequiredActions, setNumberOfRequiredActions] = useState<\n number | undefined\n >(undefined)\n\n const queryFilteredBySelection = useMemo(() => {\n const request = getCurrentQueryRequest()\n if (\n hasSelectedRows &&\n rowSelectionPrimaryKey &&\n queryMetadata?.selectColumns\n ) {\n request.query.additionalFilters = [\n ...(request.query.additionalFilters || []),\n getPrimaryKeyINFilter(\n rowSelectionPrimaryKey,\n selectedRows,\n queryMetadata.selectColumns,\n ),\n ]\n }\n return request\n }, [\n getCurrentQueryRequest,\n hasSelectedRows,\n rowSelectionPrimaryKey,\n queryMetadata?.selectColumns,\n selectedRows,\n ])\n\n const {\n exportToCavatica,\n exportToTerra,\n exportToPluto,\n exportToPlutoDev,\n exportToADWorkbench,\n } = useExportTableQueryToAnalysisPlatform({\n queryBundleRequest: queryFilteredBySelection,\n selectColumns: queryMetadata?.selectColumns,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n })\n\n const confirmButtonText = `Send ${getNumberOfResultsToInvokeActionCopy(\n hasResettableFilters,\n hasSelectedRows,\n selectedRows,\n queryMetadata?.queryCount,\n unitDescription,\n )} to ${platform.name}`\n\n const onConfirmButtonClick = useCallback(async () => {\n switch (selectedPlatform) {\n case 'cavatica':\n await exportToCavatica()\n break\n case 'terra':\n await exportToTerra()\n break\n case 'pluto':\n await exportToPluto()\n break\n case 'plutodev':\n await exportToPlutoDev()\n break\n case 'adworkbench':\n await exportToADWorkbench()\n break\n }\n onSuccessfulExport()\n }, [\n exportToCavatica,\n exportToTerra,\n exportToPluto,\n exportToPlutoDev,\n onSuccessfulExport,\n selectedPlatform,\n exportToADWorkbench,\n ])\n\n useEffect(() => {\n onConfirmButtonPropsChange({\n id: getConfirmButtonId(selectedPlatform),\n children: confirmButtonText,\n disabled: isLoading || numberOfRequiredActions !== 0,\n onClick: () => {\n void onConfirmButtonClick()\n },\n })\n }, [\n numberOfRequiredActions,\n confirmButtonText,\n isLoading,\n onConfirmButtonClick,\n onConfirmButtonPropsChange,\n selectedPlatform,\n ])\n\n if (isLoading) return <SkeletonParagraph numRows={4} />\n\n return (\n <>\n <Typography variant=\"body1\" sx={{ fontWeight: 700, my: '10px' }}>\n Before sending the selected data to {platform.name}:\n </Typography>\n <Typography variant=\"body1\" sx={{ marginBottom: '10px' }}>\n You must meet all requirements to download the selected data. You must\n take the following actions before we can send this data to{' '}\n {platform.name}.\n </Typography>\n <TableQueryActionsRequired\n queryBundleRequest={queryFilteredBySelection}\n columnModels={queryMetadata?.columnModels ?? []}\n onNumberOfRequiredActionsChanged={setNumberOfRequiredActions}\n onViewSharingSettingsClicked={onViewSharingSettingsClicked}\n />\n <Typography variant=\"body1\" sx={{ fontWeight: 700, marginTop: '15px' }}>\n When completed, click “Send to {platform.name}“ to finish the process\n outside this application. You will be redirected to {platform.name}.\n </Typography>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAyBA,SAAS,EACP,GACQ;
|
|
1
|
+
{"version":3,"file":"ExternalPlatformActionsRequiredPrecheck.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.tsx"],"sourcesContent":["import { ButtonProps, Typography } from '@mui/material'\nimport { upperFirst } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useExportTableQueryToAnalysisPlatform } from '../../../synapse-queries/entity/useExportTableQueryToAnalysisPlatform'\nimport { getPrimaryKeyINFilter } from '../../../utils/functions/QueryFilterUtils'\nimport { TableQueryActionsRequired } from '../../DownloadCart/TableQueryActionsRequired'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper/index'\nimport {\n useHasSelectedRowsAtomValue,\n useRowSelectionPrimaryKeyAtomValue,\n useSelectedRowsAtomValue,\n} from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { SkeletonParagraph } from '../../Skeleton/index'\nimport { getNumberOfResultsToInvokeActionCopy } from '../TopLevelControls/TopLevelControlsUtils'\nimport {\n EXTERNAL_ANALYSIS_PLATFORMS,\n ExternalAnalysisPlatform,\n} from './ExternalAnalysisPlatformsConstants'\n\n/**\n * Get the ID of the confirm button for the selected platform, used in Google Tag Manager\n * @param selectedPlatform\n */\nfunction getConfirmButtonId(\n selectedPlatform: ExternalAnalysisPlatform,\n): string {\n return `SendTo${upperFirst(\n selectedPlatform.replace('\\\\s', ''),\n )}ButtonFromConfirmationDialog`\n}\n\nexport type ExternalPlatformActionsRequiredPrecheckProps = {\n /* The external analysis platform that the user selected */\n selectedPlatform: ExternalAnalysisPlatform\n /* Callback to propagate the current confirm button appearance and behavior */\n onConfirmButtonPropsChange: (props: ButtonProps) => void\n /* Callback invoked when export to the external platform succeeds */\n onSuccessfulExport: () => void\n}\n\nexport default function ExternalPlatformActionsRequiredPrecheck(\n props: ExternalPlatformActionsRequiredPrecheckProps,\n) {\n const { selectedPlatform, onConfirmButtonPropsChange, onSuccessfulExport } =\n props\n const platform = EXTERNAL_ANALYSIS_PLATFORMS[selectedPlatform]\n\n const {\n getCurrentQueryRequest,\n onViewSharingSettingsClicked,\n hasResettableFilters,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n } = useQueryContext()\n\n const { data: queryMetadata, isLoading } = useGetQueryMetadata()\n const selectedRows = useSelectedRowsAtomValue()\n const rowSelectionPrimaryKey = useRowSelectionPrimaryKeyAtomValue()\n const hasSelectedRows = useHasSelectedRowsAtomValue()\n\n const { unitDescription } = useQueryVisualizationContext()\n\n const [numberOfRequiredActions, setNumberOfRequiredActions] = useState<\n number | undefined\n >(undefined)\n\n const queryFilteredBySelection = useMemo(() => {\n const request = getCurrentQueryRequest()\n if (\n hasSelectedRows &&\n rowSelectionPrimaryKey &&\n queryMetadata?.selectColumns\n ) {\n request.query.additionalFilters = [\n ...(request.query.additionalFilters || []),\n getPrimaryKeyINFilter(\n rowSelectionPrimaryKey,\n selectedRows,\n queryMetadata.selectColumns,\n ),\n ]\n }\n return request\n }, [\n getCurrentQueryRequest,\n hasSelectedRows,\n rowSelectionPrimaryKey,\n queryMetadata?.selectColumns,\n selectedRows,\n ])\n\n const {\n exportToCavatica,\n exportToTerra,\n exportToPluto,\n exportToPlutoDev,\n exportToADWorkbench,\n } = useExportTableQueryToAnalysisPlatform({\n queryBundleRequest: queryFilteredBySelection,\n selectColumns: queryMetadata?.selectColumns,\n fileIdColumnName,\n fileVersionColumnName,\n fileNameColumnName,\n })\n\n const confirmButtonText = `Send ${getNumberOfResultsToInvokeActionCopy(\n hasResettableFilters,\n hasSelectedRows,\n selectedRows,\n queryMetadata?.queryCount,\n unitDescription,\n )} to ${platform.name}`\n\n const onConfirmButtonClick = useCallback(async () => {\n switch (selectedPlatform) {\n case 'cavatica':\n await exportToCavatica()\n break\n case 'terra':\n await exportToTerra()\n break\n case 'pluto':\n await exportToPluto()\n break\n case 'plutodev':\n await exportToPlutoDev()\n break\n case 'adworkbench':\n await exportToADWorkbench()\n break\n }\n onSuccessfulExport()\n }, [\n exportToCavatica,\n exportToTerra,\n exportToPluto,\n exportToPlutoDev,\n onSuccessfulExport,\n selectedPlatform,\n exportToADWorkbench,\n ])\n\n useEffect(() => {\n onConfirmButtonPropsChange({\n id: getConfirmButtonId(selectedPlatform),\n children: confirmButtonText,\n disabled: isLoading || numberOfRequiredActions !== 0,\n onClick: () => {\n void onConfirmButtonClick()\n },\n })\n }, [\n numberOfRequiredActions,\n confirmButtonText,\n isLoading,\n onConfirmButtonClick,\n onConfirmButtonPropsChange,\n selectedPlatform,\n ])\n\n if (isLoading) return <SkeletonParagraph numRows={4} />\n\n return (\n <>\n <Typography variant=\"body1\" sx={{ fontWeight: 700, my: '10px' }}>\n Before sending the selected data to {platform.name}:\n </Typography>\n <Typography variant=\"body1\" sx={{ marginBottom: '10px' }}>\n You must meet all requirements to download the selected data. You must\n take the following actions before we can send this data to{' '}\n {platform.name}.\n </Typography>\n <TableQueryActionsRequired\n queryBundleRequest={queryFilteredBySelection}\n columnModels={queryMetadata?.columnModels ?? []}\n onNumberOfRequiredActionsChanged={setNumberOfRequiredActions}\n onViewSharingSettingsClicked={onViewSharingSettingsClicked}\n />\n <Typography variant=\"body1\" sx={{ fontWeight: 700, marginTop: '15px' }}>\n When completed, click “Send to {platform.name}“ to finish the process\n outside this application. You will be redirected to {platform.name}.\n </Typography>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAyBA,SAAS,EACP,GACQ;CACR,OAAO,SAAS,EACd,EAAiB,QAAQ,OAAO,EAAE,CACpC,EAAE;AACJ;AAWA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,qBAAkB,+BAA4B,0BACpD,GACI,IAAW,EAA4B,IAEvC,EACJ,2BACA,iCACA,yBACA,qBACA,0BACA,0BACE,EAAgB,GAEd,EAAE,MAAM,GAAe,iBAAc,EAAoB,GACzD,IAAe,EAAyB,GACxC,IAAyB,EAAmC,GAC5D,IAAkB,EAA4B,GAE9C,EAAE,uBAAoB,EAA6B,GAEnD,CAAC,GAAyB,KAA8B,EAE5D,KAAA,CAAS,GAEL,IAA2B,QAAc;EAC7C,IAAM,IAAU,EAAuB;EAevC,OAbE,KACA,KACA,GAAe,kBAEf,EAAQ,MAAM,oBAAoB,CAChC,GAAI,EAAQ,MAAM,qBAAqB,CAAC,GACxC,EACE,GACA,GACA,EAAc,aAChB,CACF,IAEK;CACT,GAAG;EACD;EACA;EACA;EACA,GAAe;EACf;CACF,CAAC,GAEK,EACJ,qBACA,kBACA,kBACA,qBACA,2BACE,EAAsC;EACxC,oBAAoB;EACpB,eAAe,GAAe;EAC9B;EACA;EACA;CACF,CAAC,GAEK,IAAoB,QAAQ,EAChC,GACA,GACA,GACA,GAAe,YACf,CACF,EAAE,MAAM,EAAS,QAEX,IAAuB,EAAY,YAAY;EACnD,QAAQ,GAAR;GACE,KAAK;IACH,MAAM,EAAiB;IACvB;GACF,KAAK;IACH,MAAM,EAAc;IACpB;GACF,KAAK;IACH,MAAM,EAAc;IACpB;GACF,KAAK;IACH,MAAM,EAAiB;IACvB;GACF,KAAK;IACH,MAAM,EAAoB;IAC1B;EACJ;EACA,EAAmB;CACrB,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAsBD,OApBA,QAAgB;EACd,EAA2B;GACzB,IAAI,EAAmB,CAAgB;GACvC,UAAU;GACV,UAAU,KAAa,MAA4B;GACnD,eAAe;IACb,EAA0B;GAC5B;EACF,CAAC;CACH,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAEG,IAAkB,kBAAC,GAAD,EAAmB,SAAS,EAAI,CAAA,IAGpD,kBAAA,GAAA,EAAA,UAAA;EACE,kBAAC,GAAD;GAAY,SAAQ;GAAQ,IAAI;IAAE,YAAY;IAAK,IAAI;GAAO;aAA9D;IAAiE;IAC1B,EAAS;IAAK;GACzC;;EACZ,kBAAC,GAAD;GAAY,SAAQ;GAAQ,IAAI,EAAE,cAAc,OAAO;aAAvD;IAA0D;IAEG;IAC1D,EAAS;IAAK;GACL;;EACZ,kBAAC,GAAD;GACE,oBAAoB;GACpB,cAAc,GAAe,gBAAgB,CAAC;GAC9C,kCAAkC;GACJ;EAC/B,CAAA;EACD,kBAAC,GAAD;GAAY,SAAQ;GAAQ,IAAI;IAAE,YAAY;IAAK,WAAW;GAAO;aAArE;IAAwE;IACtC,EAAS;IAAK;IACO,EAAS;IAAK;GACzD;;CACZ,EAAA,CAAA;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalPlatformDisclaimer.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalPlatformDisclaimer.tsx"],"sourcesContent":["import { Box, Checkbox, FormControlLabel, Typography } from '@mui/material'\nimport { useLocalStorageValue } from '@react-hookz/web'\nimport { EXTERNAL_COMPUTE_ENV_DISCLAIMER } from '../../../utils/SynapseConstants'\nimport ConfirmationDialog from '../../ConfirmationDialog/index'\n\ntype ExternalPlatformDisclaimerProps = {\n showDisclaimer: boolean\n onConfirm: () => void\n onCancel: () => void\n}\n\nexport function ExternalPlatformDisclaimer(\n props: ExternalPlatformDisclaimerProps,\n) {\n const { showDisclaimer, onConfirm, onCancel } = props\n\n // disclaimerAcknowledged is tracking the checkbox state in localStorage to persist the user's choice\n const {\n value: disclaimerAcknowledgedLocalStorageValue,\n set: setDisclaimerAcknowledged,\n } = useLocalStorageValue<boolean>(EXTERNAL_COMPUTE_ENV_DISCLAIMER)\n const disclaimerAcknowledged = Boolean(\n disclaimerAcknowledgedLocalStorageValue,\n )\n\n return (\n <ConfirmationDialog\n open={showDisclaimer}\n title=\"Disclaimer\"\n content={\n <>\n <Box\n sx={{\n backgroundColor: 'grey.100',\n marginBottom: '15px',\n padding: '20px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{ fontWeight: 700, marginBottom: '10px' }}\n >\n Disclaimer\n </Typography>\n <Typography variant=\"body1\" sx={{ marginBottom: '10px' }}>\n Sage Bionetworks may integrate with, and provide links to, compute\n environments as an alternative to downloading files. These\n integrations or provisions do not signify an endorsement of that\n particular environment by Sage Bionetworks or funders, nor does it\n alter the relationship between Sage Bionetworks, existing data\n contributors, project sponsors or funders, or computational\n providers.\n </Typography>\n <Typography variant=\"body1\" sx={{ marginBottom: '20px' }}>\n Furthermore, it is the responsibility of individual users to\n review the terms of data use for each compute environment, as well\n as for the portal or repository from which the data is sourced.\n Users must personally ensure that all data access terms and\n conditions are met.\n </Typography>\n <FormControlLabel\n control={<Checkbox />}\n label=\"I acknowledge and accept these terms\"\n checked={disclaimerAcknowledged}\n onChange={(_event, checked) => setDisclaimerAcknowledged(checked)}\n />\n </Box>\n </>\n }\n confirmButtonProps={{\n children: 'Continue',\n disabled: !disclaimerAcknowledged,\n }}\n onConfirm={onConfirm}\n onCancel={onCancel}\n maxWidth=\"md\"\n />\n )\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,mBAAgB,cAAW,gBAAa,GAG1C,EACJ,OAAO,GACP,KAAK,MACH,EAA8B,
|
|
1
|
+
{"version":3,"file":"ExternalPlatformDisclaimer.js","names":[],"sources":["../../../../src/components/SynapseTable/export/ExternalPlatformDisclaimer.tsx"],"sourcesContent":["import { Box, Checkbox, FormControlLabel, Typography } from '@mui/material'\nimport { useLocalStorageValue } from '@react-hookz/web'\nimport { EXTERNAL_COMPUTE_ENV_DISCLAIMER } from '../../../utils/SynapseConstants'\nimport ConfirmationDialog from '../../ConfirmationDialog/index'\n\ntype ExternalPlatformDisclaimerProps = {\n showDisclaimer: boolean\n onConfirm: () => void\n onCancel: () => void\n}\n\nexport function ExternalPlatformDisclaimer(\n props: ExternalPlatformDisclaimerProps,\n) {\n const { showDisclaimer, onConfirm, onCancel } = props\n\n // disclaimerAcknowledged is tracking the checkbox state in localStorage to persist the user's choice\n const {\n value: disclaimerAcknowledgedLocalStorageValue,\n set: setDisclaimerAcknowledged,\n } = useLocalStorageValue<boolean>(EXTERNAL_COMPUTE_ENV_DISCLAIMER)\n const disclaimerAcknowledged = Boolean(\n disclaimerAcknowledgedLocalStorageValue,\n )\n\n return (\n <ConfirmationDialog\n open={showDisclaimer}\n title=\"Disclaimer\"\n content={\n <>\n <Box\n sx={{\n backgroundColor: 'grey.100',\n marginBottom: '15px',\n padding: '20px',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{ fontWeight: 700, marginBottom: '10px' }}\n >\n Disclaimer\n </Typography>\n <Typography variant=\"body1\" sx={{ marginBottom: '10px' }}>\n Sage Bionetworks may integrate with, and provide links to, compute\n environments as an alternative to downloading files. These\n integrations or provisions do not signify an endorsement of that\n particular environment by Sage Bionetworks or funders, nor does it\n alter the relationship between Sage Bionetworks, existing data\n contributors, project sponsors or funders, or computational\n providers.\n </Typography>\n <Typography variant=\"body1\" sx={{ marginBottom: '20px' }}>\n Furthermore, it is the responsibility of individual users to\n review the terms of data use for each compute environment, as well\n as for the portal or repository from which the data is sourced.\n Users must personally ensure that all data access terms and\n conditions are met.\n </Typography>\n <FormControlLabel\n control={<Checkbox />}\n label=\"I acknowledge and accept these terms\"\n checked={disclaimerAcknowledged}\n onChange={(_event, checked) => setDisclaimerAcknowledged(checked)}\n />\n </Box>\n </>\n }\n confirmButtonProps={{\n children: 'Continue',\n disabled: !disclaimerAcknowledged,\n }}\n onConfirm={onConfirm}\n onCancel={onCancel}\n maxWidth=\"md\"\n />\n )\n}\n"],"mappings":";;;;;;AAWA,SAAgB,EACd,GACA;CACA,IAAM,EAAE,mBAAgB,cAAW,gBAAa,GAG1C,EACJ,OAAO,GACP,KAAK,MACH,EAA8B,CAA+B,GAC3D,IAAyB,EAC7B;CAGF,OACE,kBAAC,GAAD;EACE,MAAM;EACN,OAAM;EACN,SACE,kBAAA,GAAA,EAAA,UACE,kBAAC,GAAD;GACE,IAAI;IACF,iBAAiB;IACjB,cAAc;IACd,SAAS;GACX;aALF;IAOE,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MAAE,YAAY;MAAK,cAAc;KAAO;eAC7C;IAEW,CAAA;IACZ,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,cAAc,OAAO;eAAG;IAQ9C,CAAA;IACZ,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,cAAc,OAAO;eAAG;IAM9C,CAAA;IACZ,kBAAC,GAAD;KACE,SAAS,kBAAC,GAAD,CAAW,CAAA;KACpB,OAAM;KACN,SAAS;KACT,WAAW,GAAQ,MAAY,EAA0B,CAAO;IACjE,CAAA;GACE;KACL,CAAA;EAEJ,oBAAoB;GAClB,UAAU;GACV,UAAU,CAAC;EACb;EACW;EACD;EACV,UAAS;CACV,CAAA;AAEL"}
|