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":"PortalSectionHeader.js","names":[],"sources":["../../../src/components/PortalSectionHeader/PortalSectionHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { spreadSx } from '@/theme/spreadSx'\nimport { isExternalLink } from '@/utils/functions/IsExternalLink'\nimport {\n Box,\n Button,\n Link as MuiLink,\n Stack,\n SxProps,\n Theme,\n Typography,\n} from '@mui/material'\nimport { Link as RouterLink } from 'react-router'\n\nexport type PortalSectionHeaderProps = {\n title: string\n buttonText?: string\n summaryText?: React.ReactNode\n link?: string\n sx?: SxProps<Theme>\n centered?: boolean\n reverseButtonAndText?: boolean\n}\n\nconst PortalSectionHeader = ({\n title,\n buttonText,\n summaryText,\n link,\n sx,\n centered = false,\n reverseButtonAndText = false,\n}: PortalSectionHeaderProps): React.ReactNode => {\n const isExternal = isExternalLink(link ?? '')\n\n return (\n <Box\n sx={spreadSx(sx, {\n ...(centered && {\n width: '100%',\n }),\n })}\n >\n <Stack\n sx={{\n gap: '16px',\n ...(centered && {\n textAlign: 'center',\n alignItems: 'center',\n }),\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={theme => ({\n paddingTop: '30px',\n color: 'grey.1000',\n fontSize: { xs: '24px', md: '32px' },\n borderTop: '4px solid',\n borderColor: 'grey.400',\n [theme.breakpoints.down('md')]: {\n width: '100%',\n },\n })}\n >\n {title}\n </Typography>\n {(buttonText || summaryText) && (\n <Stack\n sx={{\n gap: '16px',\n width: '100%',\n ...(centered && {\n alignItems: 'center',\n width: '100%',\n }),\n ...(reverseButtonAndText && {\n flexDirection: 'column-reverse',\n }),\n }}\n >\n {buttonText && (\n <Button\n variant=\"contained\"\n component={isExternal ? MuiLink : RouterLink}\n {...(isExternal\n ? {\n href: link,\n target: '_blank',\n rel: 'noopener noreferrer',\n }\n : { to: link })}\n sx={theme => ({\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n maxWidth: '100%',\n width: 'fit-content',\n whiteSpace: 'nowrap',\n padding: { xs: '6px', sm: '6px 24px' },\n fontWeight: '600',\n fontSize: { xs: '16px', sm: '18px' },\n lineHeight: '144%',\n })}\n >\n {buttonText}\n </Button>\n )}\n {summaryText && (\n <Typography\n variant=\"body1\"\n sx={{\n fontStyle: 'italic',\n color: 'grey.800',\n fontSize: '18px',\n lineHeight: '27px',\n }}\n >\n {summaryText}\n </Typography>\n )}\n </Stack>\n )}\n </Stack>\n </Box>\n )\n}\n\nexport default PortalSectionHeader\n"],"mappings":";;;;;;;AAwBA,IAAM,KAAuB,EAC3B,UACA,eACA,gBACA,SACA,OACA,cAAW,IACX,0BAAuB,SACwB;CAC/C,IAAM,IAAa,EAAe,KAAQ,
|
|
1
|
+
{"version":3,"file":"PortalSectionHeader.js","names":[],"sources":["../../../src/components/PortalSectionHeader/PortalSectionHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { spreadSx } from '@/theme/spreadSx'\nimport { isExternalLink } from '@/utils/functions/IsExternalLink'\nimport {\n Box,\n Button,\n Link as MuiLink,\n Stack,\n SxProps,\n Theme,\n Typography,\n} from '@mui/material'\nimport { Link as RouterLink } from 'react-router'\n\nexport type PortalSectionHeaderProps = {\n title: string\n buttonText?: string\n summaryText?: React.ReactNode\n link?: string\n sx?: SxProps<Theme>\n centered?: boolean\n reverseButtonAndText?: boolean\n}\n\nconst PortalSectionHeader = ({\n title,\n buttonText,\n summaryText,\n link,\n sx,\n centered = false,\n reverseButtonAndText = false,\n}: PortalSectionHeaderProps): React.ReactNode => {\n const isExternal = isExternalLink(link ?? '')\n\n return (\n <Box\n sx={spreadSx(sx, {\n ...(centered && {\n width: '100%',\n }),\n })}\n >\n <Stack\n sx={{\n gap: '16px',\n ...(centered && {\n textAlign: 'center',\n alignItems: 'center',\n }),\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={theme => ({\n paddingTop: '30px',\n color: 'grey.1000',\n fontSize: { xs: '24px', md: '32px' },\n borderTop: '4px solid',\n borderColor: 'grey.400',\n [theme.breakpoints.down('md')]: {\n width: '100%',\n },\n })}\n >\n {title}\n </Typography>\n {(buttonText || summaryText) && (\n <Stack\n sx={{\n gap: '16px',\n width: '100%',\n ...(centered && {\n alignItems: 'center',\n width: '100%',\n }),\n ...(reverseButtonAndText && {\n flexDirection: 'column-reverse',\n }),\n }}\n >\n {buttonText && (\n <Button\n variant=\"contained\"\n component={isExternal ? MuiLink : RouterLink}\n {...(isExternal\n ? {\n href: link,\n target: '_blank',\n rel: 'noopener noreferrer',\n }\n : { to: link })}\n sx={theme => ({\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n maxWidth: '100%',\n width: 'fit-content',\n whiteSpace: 'nowrap',\n padding: { xs: '6px', sm: '6px 24px' },\n fontWeight: '600',\n fontSize: { xs: '16px', sm: '18px' },\n lineHeight: '144%',\n })}\n >\n {buttonText}\n </Button>\n )}\n {summaryText && (\n <Typography\n variant=\"body1\"\n sx={{\n fontStyle: 'italic',\n color: 'grey.800',\n fontSize: '18px',\n lineHeight: '27px',\n }}\n >\n {summaryText}\n </Typography>\n )}\n </Stack>\n )}\n </Stack>\n </Box>\n )\n}\n\nexport default PortalSectionHeader\n"],"mappings":";;;;;;;AAwBA,IAAM,KAAuB,EAC3B,UACA,eACA,gBACA,SACA,OACA,cAAW,IACX,0BAAuB,SACwB;CAC/C,IAAM,IAAa,EAAe,KAAQ,EAAE;CAE5C,OACE,kBAAC,GAAD;EACE,IAAI,EAAS,GAAI,EACf,GAAI,KAAY,EACd,OAAO,OACT,EACF,CAAC;YAED,kBAAC,GAAD;GACE,IAAI;IACF,KAAK;IACL,GAAI,KAAY;KACd,WAAW;KACX,YAAY;IACd;GACF;aAPF,CASE,kBAAC,GAAD;IACE,SAAQ;IACR,KAAI,OAAU;KACZ,YAAY;KACZ,OAAO;KACP,UAAU;MAAE,IAAI;MAAQ,IAAI;KAAO;KACnC,WAAW;KACX,aAAa;MACZ,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,OAAO,OACT;IACF;cAEC;GACS,CAAA,IACV,KAAc,MACd,kBAAC,GAAD;IACE,IAAI;KACF,KAAK;KACL,OAAO;KACP,GAAI,KAAY;MACd,YAAY;MACZ,OAAO;KACT;KACA,GAAI,KAAwB,EAC1B,eAAe,iBACjB;IACF;cAXF,CAaG,KACC,kBAAC,GAAD;KACE,SAAQ;KACR,WAAW,IAAa,IAAU;KAClC,GAAK,IACD;MACE,MAAM;MACN,QAAQ;MACR,KAAK;KACP,IACA,EAAE,IAAI,EAAK;KACf,KAAI,OAAU;OACX,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,OAAO,OACT;MACA,UAAU;MACV,OAAO;MACP,YAAY;MACZ,SAAS;OAAE,IAAI;OAAO,IAAI;MAAW;MACrC,YAAY;MACZ,UAAU;OAAE,IAAI;OAAQ,IAAI;MAAO;MACnC,YAAY;KACd;eAEC;IACK,CAAA,GAET,KACC,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,WAAW;MACX,OAAO;MACP,UAAU;MACV,YAAY;KACd;eAEC;IACS,CAAA,CAET;KAEJ;;CACJ,CAAA;AAET"}
|
|
@@ -5,10 +5,10 @@ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
|
5
5
|
//#region src/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.tsx
|
|
6
6
|
var u = /* @__PURE__ */ function(e) {
|
|
7
7
|
return e.COMMAND_LINE = "Command Line", e.R = "R", e.PYTHON = "Python", e;
|
|
8
|
-
}({}), d = ({ show:
|
|
9
|
-
let
|
|
10
|
-
|
|
11
|
-
let [
|
|
8
|
+
}({}), d = ({ show: u, title: d, onClose: f, pythonNotes: p, pythonCode: m, rNotes: h, rCode: g, cliNotes: _, cliCode: v, helpMarkdown: y, helpUrl: b }) => {
|
|
9
|
+
let x;
|
|
10
|
+
x = v ? "Command Line" : m ? "Python" : "R";
|
|
11
|
+
let [S, C] = t(x), w = /* @__PURE__ */ l(o, {
|
|
12
12
|
variant: "body1",
|
|
13
13
|
children: [
|
|
14
14
|
"Installation instructions are available at our",
|
|
@@ -21,74 +21,74 @@ var u = /* @__PURE__ */ function(e) {
|
|
|
21
21
|
}),
|
|
22
22
|
"."
|
|
23
23
|
]
|
|
24
|
-
})
|
|
25
|
-
sx: {
|
|
26
|
-
borderBottom: 1,
|
|
27
|
-
borderColor: "divider",
|
|
28
|
-
marginBottom: 4
|
|
29
|
-
},
|
|
30
|
-
children: /* @__PURE__ */ l(a, {
|
|
31
|
-
value: C,
|
|
32
|
-
onChange: (e, t) => {
|
|
33
|
-
e.stopPropagation(), w(t);
|
|
34
|
-
},
|
|
35
|
-
textColor: "secondary",
|
|
36
|
-
indicatorColor: "secondary",
|
|
37
|
-
children: [
|
|
38
|
-
y && /* @__PURE__ */ c(i, {
|
|
39
|
-
value: u.COMMAND_LINE,
|
|
40
|
-
label: u.COMMAND_LINE
|
|
41
|
-
}),
|
|
42
|
-
_ && /* @__PURE__ */ c(i, {
|
|
43
|
-
value: u.R,
|
|
44
|
-
label: u.R
|
|
45
|
-
}),
|
|
46
|
-
h && /* @__PURE__ */ c(i, {
|
|
47
|
-
value: u.PYTHON,
|
|
48
|
-
label: u.PYTHON
|
|
49
|
-
})
|
|
50
|
-
]
|
|
51
|
-
})
|
|
52
|
-
}), /* @__PURE__ */ l(n, {
|
|
53
|
-
sx: { "& > p": { marginBottom: 3 } },
|
|
54
|
-
children: [
|
|
55
|
-
C === u.COMMAND_LINE && /* @__PURE__ */ l(s, { children: [
|
|
56
|
-
/* @__PURE__ */ c(o, {
|
|
57
|
-
variant: "body1",
|
|
58
|
-
children: v
|
|
59
|
-
}),
|
|
60
|
-
T,
|
|
61
|
-
/* @__PURE__ */ c("pre", { children: y })
|
|
62
|
-
] }),
|
|
63
|
-
C === u.R && /* @__PURE__ */ l(s, { children: [
|
|
64
|
-
/* @__PURE__ */ c(o, {
|
|
65
|
-
variant: "body1",
|
|
66
|
-
children: g
|
|
67
|
-
}),
|
|
68
|
-
T,
|
|
69
|
-
/* @__PURE__ */ c("pre", { children: _ })
|
|
70
|
-
] }),
|
|
71
|
-
C === u.PYTHON && /* @__PURE__ */ l(s, { children: [
|
|
72
|
-
/* @__PURE__ */ c(o, {
|
|
73
|
-
variant: "body1",
|
|
74
|
-
children: m
|
|
75
|
-
}),
|
|
76
|
-
T,
|
|
77
|
-
/* @__PURE__ */ c("pre", { children: h })
|
|
78
|
-
] })
|
|
79
|
-
]
|
|
80
|
-
})] });
|
|
24
|
+
});
|
|
81
25
|
return /* @__PURE__ */ c(e, {
|
|
82
|
-
open:
|
|
83
|
-
title:
|
|
84
|
-
onCancel:
|
|
85
|
-
onConfirm:
|
|
26
|
+
open: u,
|
|
27
|
+
title: d,
|
|
28
|
+
onCancel: f,
|
|
29
|
+
onConfirm: f,
|
|
86
30
|
maxWidth: "md",
|
|
87
|
-
titleHelpPopoverProps:
|
|
88
|
-
markdownText:
|
|
89
|
-
helpUrl:
|
|
31
|
+
titleHelpPopoverProps: y ? {
|
|
32
|
+
markdownText: y,
|
|
33
|
+
helpUrl: b
|
|
90
34
|
} : void 0,
|
|
91
|
-
content:
|
|
35
|
+
content: /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c(n, {
|
|
36
|
+
sx: {
|
|
37
|
+
borderBottom: 1,
|
|
38
|
+
borderColor: "divider",
|
|
39
|
+
marginBottom: 4
|
|
40
|
+
},
|
|
41
|
+
children: /* @__PURE__ */ l(a, {
|
|
42
|
+
value: S,
|
|
43
|
+
onChange: (e, t) => {
|
|
44
|
+
e.stopPropagation(), C(t);
|
|
45
|
+
},
|
|
46
|
+
textColor: "secondary",
|
|
47
|
+
indicatorColor: "secondary",
|
|
48
|
+
children: [
|
|
49
|
+
v && /* @__PURE__ */ c(i, {
|
|
50
|
+
value: "Command Line",
|
|
51
|
+
label: "Command Line"
|
|
52
|
+
}),
|
|
53
|
+
g && /* @__PURE__ */ c(i, {
|
|
54
|
+
value: "R",
|
|
55
|
+
label: "R"
|
|
56
|
+
}),
|
|
57
|
+
m && /* @__PURE__ */ c(i, {
|
|
58
|
+
value: "Python",
|
|
59
|
+
label: "Python"
|
|
60
|
+
})
|
|
61
|
+
]
|
|
62
|
+
})
|
|
63
|
+
}), /* @__PURE__ */ l(n, {
|
|
64
|
+
sx: { "& > p": { marginBottom: 3 } },
|
|
65
|
+
children: [
|
|
66
|
+
S === "Command Line" && /* @__PURE__ */ l(s, { children: [
|
|
67
|
+
/* @__PURE__ */ c(o, {
|
|
68
|
+
variant: "body1",
|
|
69
|
+
children: _
|
|
70
|
+
}),
|
|
71
|
+
w,
|
|
72
|
+
/* @__PURE__ */ c("pre", { children: v })
|
|
73
|
+
] }),
|
|
74
|
+
S === "R" && /* @__PURE__ */ l(s, { children: [
|
|
75
|
+
/* @__PURE__ */ c(o, {
|
|
76
|
+
variant: "body1",
|
|
77
|
+
children: h
|
|
78
|
+
}),
|
|
79
|
+
w,
|
|
80
|
+
/* @__PURE__ */ c("pre", { children: g })
|
|
81
|
+
] }),
|
|
82
|
+
S === "Python" && /* @__PURE__ */ l(s, { children: [
|
|
83
|
+
/* @__PURE__ */ c(o, {
|
|
84
|
+
variant: "body1",
|
|
85
|
+
children: p
|
|
86
|
+
}),
|
|
87
|
+
w,
|
|
88
|
+
/* @__PURE__ */ c("pre", { children: m })
|
|
89
|
+
] })
|
|
90
|
+
]
|
|
91
|
+
})] }),
|
|
92
92
|
hasCancelButton: !1
|
|
93
93
|
});
|
|
94
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgrammaticInstructionsModal.js","names":[],"sources":["../../../src/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.tsx"],"sourcesContent":["import React from 'react'\nimport { Box, Link, Tab, Tabs, Typography } from '@mui/material'\nimport { ReactElement, SyntheticEvent, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\n\nexport enum ProgrammaticOptionsTabs {\n COMMAND_LINE = 'Command Line',\n R = 'R',\n PYTHON = 'Python',\n}\n\nexport type ProgrammaticInstructionsModalProps = {\n show: boolean\n title: string\n onClose: () => void\n pythonNotes?: ReactElement\n pythonCode?: string\n rNotes?: ReactElement\n rCode?: string\n cliNotes?: ReactElement\n cliCode?: string\n helpMarkdown?: string\n helpUrl?: string\n}\n\n/**\n * Modal used to show programmatic instructions\n * @param props\n * @returns\n */\n\nexport const ProgrammaticInstructionsModal = ({\n show,\n title,\n onClose,\n pythonNotes,\n pythonCode,\n rNotes,\n rCode,\n cliNotes,\n cliCode,\n helpMarkdown,\n helpUrl,\n}: ProgrammaticInstructionsModalProps): React.ReactNode => {\n let defaultTab\n if (cliCode) {\n defaultTab = ProgrammaticOptionsTabs.COMMAND_LINE\n } else if (pythonCode) {\n defaultTab = ProgrammaticOptionsTabs.PYTHON\n } else {\n defaultTab = ProgrammaticOptionsTabs.R\n }\n const [currentTab, setCurrentTab] =\n useState<ProgrammaticOptionsTabs>(defaultTab)\n\n const installationInstructions = (\n <Typography variant=\"body1\">\n Installation instructions are available at our{' '}\n <Link\n href={\n 'https://help.synapse.org/docs/Installing-Synapse-API-Clients.1985249668.html'\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Synapse API Documentation Site\n </Link>\n .\n </Typography>\n )\n\n const dialogContent = (\n <>\n <Box\n sx={{\n borderBottom: 1,\n borderColor: 'divider',\n marginBottom: 4,\n }}\n >\n <Tabs\n value={currentTab}\n onChange={(\n event: SyntheticEvent,\n newValue: ProgrammaticOptionsTabs,\n ) => {\n event.stopPropagation()\n setCurrentTab(newValue)\n }}\n textColor=\"secondary\"\n indicatorColor=\"secondary\"\n >\n {cliCode && (\n <Tab\n value={ProgrammaticOptionsTabs.COMMAND_LINE}\n label={ProgrammaticOptionsTabs.COMMAND_LINE}\n />\n )}\n {rCode && (\n <Tab\n value={ProgrammaticOptionsTabs.R}\n label={ProgrammaticOptionsTabs.R}\n />\n )}\n {pythonCode && (\n <Tab\n value={ProgrammaticOptionsTabs.PYTHON}\n label={ProgrammaticOptionsTabs.PYTHON}\n />\n )}\n </Tabs>\n </Box>\n <Box sx={{ '& > p': { marginBottom: 3 } }}>\n {currentTab === ProgrammaticOptionsTabs.COMMAND_LINE && (\n <>\n <Typography variant=\"body1\">{cliNotes}</Typography>\n {installationInstructions}\n <pre>{cliCode}</pre>\n </>\n )}\n {currentTab === ProgrammaticOptionsTabs.R && (\n <>\n <Typography variant=\"body1\">{rNotes}</Typography>\n {installationInstructions}\n <pre>{rCode}</pre>\n </>\n )}\n {currentTab === ProgrammaticOptionsTabs.PYTHON && (\n <>\n <Typography variant=\"body1\">{pythonNotes}</Typography>\n {installationInstructions}\n <pre>{pythonCode}</pre>\n </>\n )}\n </Box>\n </>\n )\n\n const titleHelpPopoverProps = helpMarkdown\n ? {\n markdownText: helpMarkdown,\n helpUrl: helpUrl,\n }\n : undefined\n\n return (\n <ConfirmationDialog\n open={show}\n title={title}\n onCancel={onClose}\n onConfirm={onClose}\n maxWidth=\"md\"\n titleHelpPopoverProps={titleHelpPopoverProps}\n content={dialogContent}\n hasCancelButton={false}\n />\n )\n}\n\nexport default ProgrammaticInstructionsModal\n"],"mappings":";;;;;AAKA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,
|
|
1
|
+
{"version":3,"file":"ProgrammaticInstructionsModal.js","names":[],"sources":["../../../src/components/ProgrammaticInstructionsModal/ProgrammaticInstructionsModal.tsx"],"sourcesContent":["import React from 'react'\nimport { Box, Link, Tab, Tabs, Typography } from '@mui/material'\nimport { ReactElement, SyntheticEvent, useState } from 'react'\nimport { ConfirmationDialog } from '../ConfirmationDialog/ConfirmationDialog'\n\nexport enum ProgrammaticOptionsTabs {\n COMMAND_LINE = 'Command Line',\n R = 'R',\n PYTHON = 'Python',\n}\n\nexport type ProgrammaticInstructionsModalProps = {\n show: boolean\n title: string\n onClose: () => void\n pythonNotes?: ReactElement\n pythonCode?: string\n rNotes?: ReactElement\n rCode?: string\n cliNotes?: ReactElement\n cliCode?: string\n helpMarkdown?: string\n helpUrl?: string\n}\n\n/**\n * Modal used to show programmatic instructions\n * @param props\n * @returns\n */\n\nexport const ProgrammaticInstructionsModal = ({\n show,\n title,\n onClose,\n pythonNotes,\n pythonCode,\n rNotes,\n rCode,\n cliNotes,\n cliCode,\n helpMarkdown,\n helpUrl,\n}: ProgrammaticInstructionsModalProps): React.ReactNode => {\n let defaultTab\n if (cliCode) {\n defaultTab = ProgrammaticOptionsTabs.COMMAND_LINE\n } else if (pythonCode) {\n defaultTab = ProgrammaticOptionsTabs.PYTHON\n } else {\n defaultTab = ProgrammaticOptionsTabs.R\n }\n const [currentTab, setCurrentTab] =\n useState<ProgrammaticOptionsTabs>(defaultTab)\n\n const installationInstructions = (\n <Typography variant=\"body1\">\n Installation instructions are available at our{' '}\n <Link\n href={\n 'https://help.synapse.org/docs/Installing-Synapse-API-Clients.1985249668.html'\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Synapse API Documentation Site\n </Link>\n .\n </Typography>\n )\n\n const dialogContent = (\n <>\n <Box\n sx={{\n borderBottom: 1,\n borderColor: 'divider',\n marginBottom: 4,\n }}\n >\n <Tabs\n value={currentTab}\n onChange={(\n event: SyntheticEvent,\n newValue: ProgrammaticOptionsTabs,\n ) => {\n event.stopPropagation()\n setCurrentTab(newValue)\n }}\n textColor=\"secondary\"\n indicatorColor=\"secondary\"\n >\n {cliCode && (\n <Tab\n value={ProgrammaticOptionsTabs.COMMAND_LINE}\n label={ProgrammaticOptionsTabs.COMMAND_LINE}\n />\n )}\n {rCode && (\n <Tab\n value={ProgrammaticOptionsTabs.R}\n label={ProgrammaticOptionsTabs.R}\n />\n )}\n {pythonCode && (\n <Tab\n value={ProgrammaticOptionsTabs.PYTHON}\n label={ProgrammaticOptionsTabs.PYTHON}\n />\n )}\n </Tabs>\n </Box>\n <Box sx={{ '& > p': { marginBottom: 3 } }}>\n {currentTab === ProgrammaticOptionsTabs.COMMAND_LINE && (\n <>\n <Typography variant=\"body1\">{cliNotes}</Typography>\n {installationInstructions}\n <pre>{cliCode}</pre>\n </>\n )}\n {currentTab === ProgrammaticOptionsTabs.R && (\n <>\n <Typography variant=\"body1\">{rNotes}</Typography>\n {installationInstructions}\n <pre>{rCode}</pre>\n </>\n )}\n {currentTab === ProgrammaticOptionsTabs.PYTHON && (\n <>\n <Typography variant=\"body1\">{pythonNotes}</Typography>\n {installationInstructions}\n <pre>{pythonCode}</pre>\n </>\n )}\n </Box>\n </>\n )\n\n const titleHelpPopoverProps = helpMarkdown\n ? {\n markdownText: helpMarkdown,\n helpUrl: helpUrl,\n }\n : undefined\n\n return (\n <ConfirmationDialog\n open={show}\n title={title}\n onCancel={onClose}\n onConfirm={onClose}\n maxWidth=\"md\"\n titleHelpPopoverProps={titleHelpPopoverProps}\n content={dialogContent}\n hasCancelButton={false}\n />\n )\n}\n\nexport default ProgrammaticInstructionsModal\n"],"mappings":";;;;;AAKA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,eAAA,gBACA,EAAA,IAAA,KACA,EAAA,SAAA;AACF,EAAA,CAAA,CAAA,GAsBa,KAAiC,EAC5C,SACA,UACA,YACA,gBACA,eACA,WACA,UACA,aACA,YACA,iBACA,iBACyD;CACzD,IAAI;CACJ,AAKE,IALE,IACF,iBACS,IACT,WAEA;CAEF,IAAM,CAAC,GAAY,KACjB,EAAkC,CAAU,GAExC,IACJ,kBAAC,GAAD;EAAY,SAAQ;YAApB;GAA4B;GACqB;GAC/C,kBAAC,GAAD;IACE,MACE;IAEF,QAAO;IACP,KAAI;cACL;GAEK,CAAA;GAAC;EAEG;;CA6Ed,OACE,kBAAC,GAAD;EACE,MAAM;EACC;EACP,UAAU;EACV,WAAW;EACX,UAAS;EACc,uBAdG,IAC1B;GACE,cAAc;GACL;EACX,IACA,KAAA;EAUA,SAjFF,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;GACE,IAAI;IACF,cAAc;IACd,aAAa;IACb,cAAc;GAChB;aAEA,kBAAC,GAAD;IACE,OAAO;IACP,WACE,GACA,MACG;KAEH,AADA,EAAM,gBAAgB,GACtB,EAAc,CAAQ;IACxB;IACA,WAAU;IACV,gBAAe;cAVjB;KAYG,KACC,kBAAC,GAAD;MACE,OAAA;MACA,OAAA;KACD,CAAA;KAEF,KACC,kBAAC,GAAD;MACE,OAAA;MACA,OAAA;KACD,CAAA;KAEF,KACC,kBAAC,GAAD;MACE,OAAA;MACA,OAAA;KACD,CAAA;IAEC;;EACH,CAAA,GACL,kBAAC,GAAD;GAAK,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE;aAAxC;IACG,MAAA,kBACC,kBAAA,GAAA,EAAA,UAAA;KACE,kBAAC,GAAD;MAAY,SAAQ;gBAAS;KAAqB,CAAA;KACjD;KACD,kBAAC,OAAD,EAAA,UAAM,EAAa,CAAA;IACnB,EAAA,CAAA;IAEH,MAAA,OACC,kBAAA,GAAA,EAAA,UAAA;KACE,kBAAC,GAAD;MAAY,SAAQ;gBAAS;KAAmB,CAAA;KAC/C;KACD,kBAAC,OAAD,EAAA,UAAM,EAAW,CAAA;IACjB,EAAA,CAAA;IAEH,MAAA,YACC,kBAAA,GAAA,EAAA,UAAA;KACE,kBAAC,GAAD;MAAY,SAAQ;gBAAS;KAAwB,CAAA;KACpD;KACD,kBAAC,OAAD,EAAA,UAAM,EAAgB,CAAA;IACtB,EAAA,CAAA;GAED;IACL,EAAA,CAkBS;EACT,iBAAiB;CAClB,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgrammaticTableDownload.js","names":[],"sources":["../../../src/components/ProgrammaticTableDownload/ProgrammaticTableDownload.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { SynapseConstants } from '@/utils'\nimport { Link } from '@mui/material'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useMemo, useState } from 'react'\nimport {\n PYTHON_CLIENT_IMPORT_AND_LOGIN,\n R_CLIENT_IMPORT_AND_LOGIN,\n} from '../DownloadCart/DirectProgrammaticDownload'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\n\nexport type ProgrammaticTableDownloadProps = {\n queryBundleRequest: QueryBundleRequest\n onHide: () => void\n}\n\nexport function ProgrammaticTableDownload({\n queryBundleRequest,\n onHide,\n}: ProgrammaticTableDownloadProps) {\n const [generatedSql, setGeneratedSql] = useState('...')\n\n const {\n data: asyncJobStatus,\n isLoading: queryIsLoading,\n isPlaceholderData: newQueryIsFetching,\n } = useGetQueryResultBundleWithAsyncStatus(\n {\n ...queryBundleRequest,\n partMask: SynapseConstants.BUNDLE_MASK_COMBINED_SQL,\n },\n {\n placeholderData: previousData => previousData,\n throwOnError: true,\n },\n )\n\n const combinedSql = asyncJobStatus?.responseBody?.combinedSql\n const isLoadingNewBundle = queryIsLoading || newQueryIsFetching\n\n useEffect(() => {\n if (combinedSql && !isLoadingNewBundle) {\n // SWC-5686: The ID column is required by the client, and this column may not have been selected!\n // Change the SQL to \"SELECT * ...\"\n const indexOfFrom = combinedSql.toUpperCase().indexOf('FROM SYN')\n const selectStarTransformedSql = `SELECT * ${combinedSql.substring(\n indexOfFrom,\n )}`\n setGeneratedSql(selectStarTransformedSql)\n }\n }, [combinedSql, isLoadingNewBundle])\n\n // Replace quotation marks with escaped quotations. For CLI, also escape backticks.\n const commandLineSql = useMemo(\n () => generatedSql.replace(/([\"`])/g, '\\\\$1'),\n [generatedSql],\n )\n\n const clientSql = useMemo(\n () => generatedSql.replace(/\"/g, '\\\\\"'),\n [generatedSql],\n )\n\n return (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={onHide}\n title=\"Download Programmatically\"\n cliNotes={\n <>\n This command line code will download Synapse files AND file\n annotations to your working directory.\n </>\n }\n cliCode={`synapse get -q \"${commandLineSql}\"`}\n rNotes={\n <>\n This R code will download file annotations only. Use{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://help.synapse.org/docs/Get-Started-with-Downloading-Data.2004254837.html#GetStartedwithDownloadingData-DownloadingFiles\"\n >\n synGet{'()'}\n </Link>{' '}\n to loop over the list of Synapse IDs from the file annotations to\n download files.\n </>\n }\n rCode={`${R_CLIENT_IMPORT_AND_LOGIN}\nquery ${'<-'} synTableQuery(\"${clientSql}\")${'\\n'}read.table(query$filepath, sep = \",\")`}\n pythonNotes={\n <>\n This Python code will download file annotations only. Use{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://help.synapse.org/docs/Get-Started-with-Downloading-Data.2004254837.html#GetStartedwithDownloadingData-DownloadingFiles\"\n >\n syn.get\n </Link>{' '}\n to loop over the list of Synapse IDs from the file annotations to\n download files.\n </>\n }\n pythonCode={`${PYTHON_CLIENT_IMPORT_AND_LOGIN}\nquery = syn.tableQuery(\"${clientSql}\")${'\\n'}query.asDataFrame()`}\n />\n )\n}\n\nexport default ProgrammaticTableDownload\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,EAA0B,EACxC,uBACA,aACiC;CACjC,IAAM,CAAC,GAAc,KAAmB,EAAS,
|
|
1
|
+
{"version":3,"file":"ProgrammaticTableDownload.js","names":[],"sources":["../../../src/components/ProgrammaticTableDownload/ProgrammaticTableDownload.tsx"],"sourcesContent":["import { useGetQueryResultBundleWithAsyncStatus } from '@/synapse-queries'\nimport { SynapseConstants } from '@/utils'\nimport { Link } from '@mui/material'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { useEffect, useMemo, useState } from 'react'\nimport {\n PYTHON_CLIENT_IMPORT_AND_LOGIN,\n R_CLIENT_IMPORT_AND_LOGIN,\n} from '../DownloadCart/DirectProgrammaticDownload'\nimport { ProgrammaticInstructionsModal } from '../ProgrammaticInstructionsModal/ProgrammaticInstructionsModal'\n\nexport type ProgrammaticTableDownloadProps = {\n queryBundleRequest: QueryBundleRequest\n onHide: () => void\n}\n\nexport function ProgrammaticTableDownload({\n queryBundleRequest,\n onHide,\n}: ProgrammaticTableDownloadProps) {\n const [generatedSql, setGeneratedSql] = useState('...')\n\n const {\n data: asyncJobStatus,\n isLoading: queryIsLoading,\n isPlaceholderData: newQueryIsFetching,\n } = useGetQueryResultBundleWithAsyncStatus(\n {\n ...queryBundleRequest,\n partMask: SynapseConstants.BUNDLE_MASK_COMBINED_SQL,\n },\n {\n placeholderData: previousData => previousData,\n throwOnError: true,\n },\n )\n\n const combinedSql = asyncJobStatus?.responseBody?.combinedSql\n const isLoadingNewBundle = queryIsLoading || newQueryIsFetching\n\n useEffect(() => {\n if (combinedSql && !isLoadingNewBundle) {\n // SWC-5686: The ID column is required by the client, and this column may not have been selected!\n // Change the SQL to \"SELECT * ...\"\n const indexOfFrom = combinedSql.toUpperCase().indexOf('FROM SYN')\n const selectStarTransformedSql = `SELECT * ${combinedSql.substring(\n indexOfFrom,\n )}`\n setGeneratedSql(selectStarTransformedSql)\n }\n }, [combinedSql, isLoadingNewBundle])\n\n // Replace quotation marks with escaped quotations. For CLI, also escape backticks.\n const commandLineSql = useMemo(\n () => generatedSql.replace(/([\"`])/g, '\\\\$1'),\n [generatedSql],\n )\n\n const clientSql = useMemo(\n () => generatedSql.replace(/\"/g, '\\\\\"'),\n [generatedSql],\n )\n\n return (\n <ProgrammaticInstructionsModal\n show={true}\n onClose={onHide}\n title=\"Download Programmatically\"\n cliNotes={\n <>\n This command line code will download Synapse files AND file\n annotations to your working directory.\n </>\n }\n cliCode={`synapse get -q \"${commandLineSql}\"`}\n rNotes={\n <>\n This R code will download file annotations only. Use{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://help.synapse.org/docs/Get-Started-with-Downloading-Data.2004254837.html#GetStartedwithDownloadingData-DownloadingFiles\"\n >\n synGet{'()'}\n </Link>{' '}\n to loop over the list of Synapse IDs from the file annotations to\n download files.\n </>\n }\n rCode={`${R_CLIENT_IMPORT_AND_LOGIN}\nquery ${'<-'} synTableQuery(\"${clientSql}\")${'\\n'}read.table(query$filepath, sep = \",\")`}\n pythonNotes={\n <>\n This Python code will download file annotations only. Use{' '}\n <Link\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://help.synapse.org/docs/Get-Started-with-Downloading-Data.2004254837.html#GetStartedwithDownloadingData-DownloadingFiles\"\n >\n syn.get\n </Link>{' '}\n to loop over the list of Synapse IDs from the file annotations to\n download files.\n </>\n }\n pythonCode={`${PYTHON_CLIENT_IMPORT_AND_LOGIN}\nquery = syn.tableQuery(\"${clientSql}\")${'\\n'}query.asDataFrame()`}\n />\n )\n}\n\nexport default ProgrammaticTableDownload\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,EAA0B,EACxC,uBACA,aACiC;CACjC,IAAM,CAAC,GAAc,KAAmB,EAAS,KAAK,GAEhD,EACJ,MAAM,GACN,WAAW,GACX,mBAAmB,MACjB,EACF;EACE,GAAG;EACH,UAAU;CACZ,GACA;EACE,kBAAiB,MAAgB;EACjC,cAAc;CAChB,CACF,GAEM,IAAc,GAAgB,cAAc,aAC5C,IAAqB,KAAkB;CAE7C,QAAgB;EACd,IAAI,KAAe,CAAC,GAAoB;GAGtC,IAAM,IAAc,EAAY,YAAY,EAAE,QAAQ,UAAU;GAIhE,EAAgB,YAH6B,EAAY,UACvD,CACF,GACwC;EAC1C;CACF,GAAG,CAAC,GAAa,CAAkB,CAAC;CAGpC,IAAM,IAAiB,QACf,EAAa,QAAQ,WAAW,MAAM,GAC5C,CAAC,CAAY,CACf,GAEM,IAAY,QACV,EAAa,QAAQ,MAAM,MAAK,GACtC,CAAC,CAAY,CACf;CAEA,OACE,kBAAC,GAAD;EACE,MAAM;EACN,SAAS;EACT,OAAM;EACN,UACE,kBAAA,GAAA,EAAA,UAAE,qGAGA,CAAA;EAEJ,SAAS,mBAAmB,EAAe;EAC3C,QACE,kBAAA,GAAA,EAAA,UAAA;GAAE;GACqD;GACrD,kBAAC,GAAD;IACE,QAAO;IACP,KAAI;IACJ,MAAK;cAHP,CAIC,UACQ,IACH;;GAAE;GAAI;EAGZ,EAAA,CAAA;EAEJ,OAAO,GAAG,EAA0B;0BACX,EAAU;;EACnC,aACE,kBAAA,GAAA,EAAA,UAAA;GAAE;GAC0D;GAC1D,kBAAC,GAAD;IACE,QAAO;IACP,KAAI;IACJ,MAAK;cACN;GAEK,CAAA;GAAE;GAAI;EAGZ,EAAA,CAAA;EAEJ,YAAY,GAAG,EAA+B;0BAC1B,EAAU;;CAC/B,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Programs.Desktop.js","names":[],"sources":["../../../src/components/Programs/Programs.Desktop.tsx"],"sourcesContent":["import LargeButton from '@/components/styled/LargeButton'\nimport { ImageFileHandle } from '../widgets/ImageFileHandle'\nimport { ProgramsDataProps } from './Programs'\n\nexport default function ProgramsDesktop({\n link,\n summary,\n title,\n color,\n fileHandleAssociation,\n exploreLink,\n}: ProgramsDataProps) {\n return (\n <div className=\"Programs__Card\">\n <div\n className=\"Programs__Card__header\"\n style={{ backgroundColor: color.replace(')', ',.05)') }}\n >\n <div className=\"Programs__Card__header__icon\">\n {fileHandleAssociation && (\n <ImageFileHandle fileHandleAssociation={fileHandleAssociation} />\n )}\n </div>\n <div className=\"Programs__Card__header__info\">\n <span className=\"Programs__Card__header__info__title\"> {title} </span>\n {link && (\n <p className=\"Programs__Card__header__info__link\">\n <a\n className=\"highlight-link\"\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Visit website\n </a>\n </p>\n )}\n </div>\n </div>\n <div className=\"Programs__Card__summary\">\n <p> {summary} </p>\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n href={exploreLink}\n sx={{ width: '120px', marginLeft: 0 }}\n >\n Explore\n </LargeButton>\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAIA,SAAwB,EAAgB,EACtC,SACA,YACA,UACA,UACA,0BACA,kBACoB;
|
|
1
|
+
{"version":3,"file":"Programs.Desktop.js","names":[],"sources":["../../../src/components/Programs/Programs.Desktop.tsx"],"sourcesContent":["import LargeButton from '@/components/styled/LargeButton'\nimport { ImageFileHandle } from '../widgets/ImageFileHandle'\nimport { ProgramsDataProps } from './Programs'\n\nexport default function ProgramsDesktop({\n link,\n summary,\n title,\n color,\n fileHandleAssociation,\n exploreLink,\n}: ProgramsDataProps) {\n return (\n <div className=\"Programs__Card\">\n <div\n className=\"Programs__Card__header\"\n style={{ backgroundColor: color.replace(')', ',.05)') }}\n >\n <div className=\"Programs__Card__header__icon\">\n {fileHandleAssociation && (\n <ImageFileHandle fileHandleAssociation={fileHandleAssociation} />\n )}\n </div>\n <div className=\"Programs__Card__header__info\">\n <span className=\"Programs__Card__header__info__title\"> {title} </span>\n {link && (\n <p className=\"Programs__Card__header__info__link\">\n <a\n className=\"highlight-link\"\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Visit website\n </a>\n </p>\n )}\n </div>\n </div>\n <div className=\"Programs__Card__summary\">\n <p> {summary} </p>\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n href={exploreLink}\n sx={{ width: '120px', marginLeft: 0 }}\n >\n Explore\n </LargeButton>\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAIA,SAAwB,EAAgB,EACtC,SACA,YACA,UACA,UACA,0BACA,kBACoB;CACpB,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GACE,WAAU;GACV,OAAO,EAAE,iBAAiB,EAAM,QAAQ,KAAK,OAAO,EAAE;aAFxD,CAIE,kBAAC,OAAD;IAAK,WAAU;cACZ,KACC,kBAAC,GAAD,EAAwC,yBAAwB,CAAA;GAE/D,CAAA,GACL,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,QAAD;KAAM,WAAU;eAAhB;MAAsD;MAAE;MAAM;KAAO;QACpE,KACC,kBAAC,KAAD;KAAG,WAAU;eACX,kBAAC,KAAD;MACE,WAAU;MACV,MAAM;MACN,QAAO;MACP,KAAI;gBACL;KAEE,CAAA;IACF,CAAA,CAEF;KACF;MACL,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,KAAD,EAAA,UAAA;IAAG;IAAE;IAAQ;GAAI,EAAA,CAAA,GACjB,kBAAC,GAAD;IACE,OAAM;IACN,SAAQ;IACR,MAAM;IACN,IAAI;KAAE,OAAO;KAAS,YAAY;IAAE;cACrC;GAEY,CAAA,CACV;IACF;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Programs.Mobile.js","names":[],"sources":["../../../src/components/Programs/Programs.Mobile.tsx"],"sourcesContent":["import LargeButton from '@/components/styled/LargeButton'\nimport ExpandableContent from '../home_page/ExpandableContent'\nimport { ImageFileHandle } from '../widgets/ImageFileHandle'\nimport { ProgramsDataProps } from './Programs'\n\nexport default function ProgramsMobile({\n link,\n summary,\n title,\n color,\n fileHandleAssociation,\n exploreLink,\n}: ProgramsDataProps) {\n const titleElement = (\n <div className=\"Programs__Mobile__Header\">\n <span className=\"Programs__Card__header__icon\">\n {fileHandleAssociation && (\n <ImageFileHandle fileHandleAssociation={fileHandleAssociation} />\n )}\n </span>\n <span className=\"Programs__Mobile__Header__Title\"> {title} </span>\n </div>\n )\n const content = (\n <div className=\"Programs__Mobile__Content\">\n {link && (\n <p className=\"Programs__Card__header__info__link\">\n <a\n className=\"highlight-link\"\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Visit website\n </a>\n </p>\n )}\n <p>{summary}</p>\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n href={exploreLink}\n sx={{ marginLeft: 0 }}\n >\n Explore\n </LargeButton>\n </div>\n )\n return <ExpandableContent title={titleElement} content={content} />\n}\n"],"mappings":";;;;;AAKA,SAAwB,EAAe,EACrC,SACA,YACA,UACA,UACA,0BACA,kBACoB;
|
|
1
|
+
{"version":3,"file":"Programs.Mobile.js","names":[],"sources":["../../../src/components/Programs/Programs.Mobile.tsx"],"sourcesContent":["import LargeButton from '@/components/styled/LargeButton'\nimport ExpandableContent from '../home_page/ExpandableContent'\nimport { ImageFileHandle } from '../widgets/ImageFileHandle'\nimport { ProgramsDataProps } from './Programs'\n\nexport default function ProgramsMobile({\n link,\n summary,\n title,\n color,\n fileHandleAssociation,\n exploreLink,\n}: ProgramsDataProps) {\n const titleElement = (\n <div className=\"Programs__Mobile__Header\">\n <span className=\"Programs__Card__header__icon\">\n {fileHandleAssociation && (\n <ImageFileHandle fileHandleAssociation={fileHandleAssociation} />\n )}\n </span>\n <span className=\"Programs__Mobile__Header__Title\"> {title} </span>\n </div>\n )\n const content = (\n <div className=\"Programs__Mobile__Content\">\n {link && (\n <p className=\"Programs__Card__header__info__link\">\n <a\n className=\"highlight-link\"\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Visit website\n </a>\n </p>\n )}\n <p>{summary}</p>\n <LargeButton\n color=\"secondary\"\n variant=\"contained\"\n href={exploreLink}\n sx={{ marginLeft: 0 }}\n >\n Explore\n </LargeButton>\n </div>\n )\n return <ExpandableContent title={titleElement} content={content} />\n}\n"],"mappings":";;;;;AAKA,SAAwB,EAAe,EACrC,SACA,YACA,UACA,UACA,0BACA,kBACoB;CAoCpB,OAAO,kBAAC,GAAD;EAAmB,OAlCxB,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,QAAD;IAAM,WAAU;cACb,KACC,kBAAC,GAAD,EAAwC,yBAAwB,CAAA;GAE9D,CAAA,GACN,kBAAC,QAAD;IAAM,WAAU;cAAhB;KAAkD;KAAE;KAAM;IAAO;KAC9D;GA2B0B;EAAuB,SAxBtD,kBAAC,OAAD;GAAK,WAAU;aAAf;IACG,KACC,kBAAC,KAAD;KAAG,WAAU;eACX,kBAAC,KAAD;MACE,WAAU;MACV,MAAM;MACN,QAAO;MACP,KAAI;gBACL;KAEE,CAAA;IACF,CAAA;IAEL,kBAAC,KAAD,EAAA,UAAI,EAAW,CAAA;IACf,kBAAC,GAAD;KACE,OAAM;KACN,SAAQ;KACR,MAAM;KACN,IAAI,EAAE,YAAY,EAAE;eACrB;IAEY,CAAA;GACV;GAEiD;CAAU,CAAA;AACpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Programs.js","names":[],"sources":["../../../src/components/Programs/Programs.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries/entity/useEntity'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport {\n FileHandleAssociation,\n QueryBundleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { CardLink } from '../CardContainer/CardLink'\nimport { getColorPalette } from '../ColorGradient/ColorGradient'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n} from '../GenericCard/CardUtils'\nimport ProgramsDesktop from './Programs.Desktop'\nimport ProgramsMobile from './Programs.Mobile'\n\nexport type ProgramsProps = {\n entityId: string\n rgbIndex: number\n titleColumnName: string\n linkColumnName: string\n summaryColumnName: string\n imageFileHandleColumnName: string\n linkConfig: CardLink\n}\n\nexport type ProgramsDataProps = {\n title: string\n summary: string\n link: string\n exploreLink: string\n color: string\n fileHandleAssociation?: FileHandleAssociation\n}\n\nexport function Programs(props: ProgramsProps) {\n const {\n entityId,\n titleColumnName,\n linkColumnName,\n summaryColumnName,\n imageFileHandleColumnName,\n linkConfig,\n rgbIndex,\n } = props\n const showDesktop = useShowDesktop()\n const entity = useGetEntity(entityId)\n const color: string = getColorPalette(rgbIndex ?? 0, 2).colorPalette[0]\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `select * from ${entityId}`,\n },\n }\n const { data: queryResultBundle } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const titleColumnIndex = getFieldIndex(titleColumnName, queryResultBundle)\n const summaryColumnIndex = getFieldIndex(summaryColumnName, queryResultBundle)\n const linkColumnIndex = getFieldIndex(linkColumnName, queryResultBundle)\n const iconColumnIndex = getFieldIndex(\n imageFileHandleColumnName,\n queryResultBundle,\n )\n return (\n <div className={`Programs${showDesktop ? '__Desktop' : ''}`}>\n {queryResultBundle?.queryResult!.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n // We cast values above assuming there are no null values, emit a warning just in case.\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const title = values[titleColumnIndex]\n const summary = values[summaryColumnIndex]\n const link = values[linkColumnIndex] ?? ''\n const iconFileHandleIdValue = values[iconColumnIndex]\n\n const schema: Record<string, number> = {}\n queryResultBundle?.queryResult!.queryResults.headers.forEach(\n (header, colIndex) => {\n schema[header.name] = colIndex\n },\n )\n const { href } = getLinkParams(link, linkConfig, values, schema)\n\n const fileHandleAssociation = getFileHandleAssociation(\n entity.data,\n iconFileHandleIdValue,\n `syn${el.rowId}`,\n )\n const ProgramsDataProps: ProgramsDataProps = {\n title,\n summary,\n link,\n color,\n exploreLink: href,\n fileHandleAssociation,\n }\n return showDesktop ? (\n <ProgramsDesktop {...ProgramsDataProps} />\n ) : (\n <ProgramsMobile {...ProgramsDataProps} />\n )\n })}\n </div>\n )\n}\n\nexport default Programs\n"],"mappings":";;;;;;;;;;;;AAqCA,SAAgB,EAAS,GAAsB;CAC7C,IAAM,EACJ,aACA,oBACA,mBACA,sBACA,8BACA,eACA,gBACE,GACE,IAAc,
|
|
1
|
+
{"version":3,"file":"Programs.js","names":[],"sources":["../../../src/components/Programs/Programs.tsx"],"sourcesContent":["import { useGetEntity } from '@/synapse-queries/entity/useEntity'\nimport useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { SynapseConstants } from '@/utils'\nimport { getFieldIndex } from '@/utils/functions/queryUtils'\nimport useShowDesktop from '@/utils/hooks/useShowDesktop'\nimport {\n FileHandleAssociation,\n QueryBundleRequest,\n} from '@sage-bionetworks/synapse-types'\nimport { CardLink } from '../CardContainer/CardLink'\nimport { getColorPalette } from '../ColorGradient/ColorGradient'\nimport {\n getFileHandleAssociation,\n getLinkParams,\n} from '../GenericCard/CardUtils'\nimport ProgramsDesktop from './Programs.Desktop'\nimport ProgramsMobile from './Programs.Mobile'\n\nexport type ProgramsProps = {\n entityId: string\n rgbIndex: number\n titleColumnName: string\n linkColumnName: string\n summaryColumnName: string\n imageFileHandleColumnName: string\n linkConfig: CardLink\n}\n\nexport type ProgramsDataProps = {\n title: string\n summary: string\n link: string\n exploreLink: string\n color: string\n fileHandleAssociation?: FileHandleAssociation\n}\n\nexport function Programs(props: ProgramsProps) {\n const {\n entityId,\n titleColumnName,\n linkColumnName,\n summaryColumnName,\n imageFileHandleColumnName,\n linkConfig,\n rgbIndex,\n } = props\n const showDesktop = useShowDesktop()\n const entity = useGetEntity(entityId)\n const color: string = getColorPalette(rgbIndex ?? 0, 2).colorPalette[0]\n const queryBundleRequest: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId,\n partMask:\n SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |\n SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,\n query: {\n sql: `select * from ${entityId}`,\n },\n }\n const { data: queryResultBundle } =\n useGetQueryResultBundle(queryBundleRequest)\n\n const titleColumnIndex = getFieldIndex(titleColumnName, queryResultBundle)\n const summaryColumnIndex = getFieldIndex(summaryColumnName, queryResultBundle)\n const linkColumnIndex = getFieldIndex(linkColumnName, queryResultBundle)\n const iconColumnIndex = getFieldIndex(\n imageFileHandleColumnName,\n queryResultBundle,\n )\n return (\n <div className={`Programs${showDesktop ? '__Desktop' : ''}`}>\n {queryResultBundle?.queryResult!.queryResults.rows.map(el => {\n const values = el.values as string[]\n if (values.some(value => value === null)) {\n // We cast values above assuming there are no null values, emit a warning just in case.\n console.warn('Row has null value(s) when no nulls expected')\n }\n\n const title = values[titleColumnIndex]\n const summary = values[summaryColumnIndex]\n const link = values[linkColumnIndex] ?? ''\n const iconFileHandleIdValue = values[iconColumnIndex]\n\n const schema: Record<string, number> = {}\n queryResultBundle?.queryResult!.queryResults.headers.forEach(\n (header, colIndex) => {\n schema[header.name] = colIndex\n },\n )\n const { href } = getLinkParams(link, linkConfig, values, schema)\n\n const fileHandleAssociation = getFileHandleAssociation(\n entity.data,\n iconFileHandleIdValue,\n `syn${el.rowId}`,\n )\n const ProgramsDataProps: ProgramsDataProps = {\n title,\n summary,\n link,\n color,\n exploreLink: href,\n fileHandleAssociation,\n }\n return showDesktop ? (\n <ProgramsDesktop {...ProgramsDataProps} />\n ) : (\n <ProgramsMobile {...ProgramsDataProps} />\n )\n })}\n </div>\n )\n}\n\nexport default Programs\n"],"mappings":";;;;;;;;;;;;AAqCA,SAAgB,EAAS,GAAsB;CAC7C,IAAM,EACJ,aACA,oBACA,mBACA,sBACA,8BACA,eACA,gBACE,GACE,IAAc,EAAe,GAC7B,IAAS,EAAa,CAAQ,GAC9B,IAAgB,EAAgB,KAAY,GAAG,CAAC,EAAE,aAAa,IAW/D,EAAE,MAAM,MACZ,EAAwB;EAVxB,cAAc;EACd;EACA,UACE;EAEF,OAAO,EACL,KAAK,iBAAiB,IACxB;CAGwB,CAAkB,GAEtC,IAAmB,EAAc,GAAiB,CAAiB,GACnE,IAAqB,EAAc,GAAmB,CAAiB,GACvE,IAAkB,EAAc,GAAgB,CAAiB,GACjE,IAAkB,EACtB,GACA,CACF;CACA,OACE,kBAAC,OAAD;EAAK,WAAW,WAAW,IAAc,cAAc;YACpD,GAAmB,YAAa,aAAa,KAAK,KAAI,MAAM;GAC3D,IAAM,IAAS,EAAG;GAClB,AAAI,EAAO,MAAK,MAAS,MAAU,IAAI,KAErC,QAAQ,KAAK,8CAA8C;GAG7D,IAAM,IAAQ,EAAO,IACf,IAAU,EAAO,IACjB,IAAO,EAAO,MAAoB,IAClC,IAAwB,EAAO,IAE/B,IAAiC,CAAC;GACxC,GAAmB,YAAa,aAAa,QAAQ,SAClD,GAAQ,MAAa;IACpB,EAAO,EAAO,QAAQ;GACxB,CACF;GACA,IAAM,EAAE,YAAS,EAAc,GAAM,GAAY,GAAQ,CAAM,GAOzD,IAAuC;IAC3C;IACA;IACA;IACA;IACA,aAAa;IACb,uBAX4B,EAC5B,EAAO,MACP,GACA,MAAM,EAAG,OAQT;GACF;GACA,OACE,EADK,IACJ,IAEA,GAFD,EAAiB,GAAI,EAAoB,CAED;EAE5C,CAAC;CACE,CAAA;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectDataAvailability.js","names":[],"sources":["../../../src/components/ProjectStorage/ProjectDataAvailability.tsx"],"sourcesContent":["import { SYNAPSE_STORAGE_LOCATION_ID } from '@/synapse-client'\nimport { useProjectStorageUsage } from '@/synapse-queries'\nimport { spreadSx } from '@/theme/spreadSx'\nimport { useSynapseContext } from '@/utils'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { SAGE_OFFERINGS_HELP_URL } from '@/utils/SynapseConstants'\nimport { Box, SxProps, Tooltip, Typography } from '@mui/material'\nimport React from 'react'\nimport HelpPopover from '../HelpPopover'\n\nexport type ProjectDataAvailabilityProps = {\n projectId?: string\n sx?: SxProps\n}\nconst usageBarWidth = 142 //px\n\nexport function ProjectDataAvailability({\n projectId,\n sx,\n}: ProjectDataAvailabilityProps): React.ReactNode {\n const { isAuthenticated } = useSynapseContext()\n const { data } = useProjectStorageUsage(projectId!, {\n enabled: !!projectId && isAuthenticated,\n })\n const projectDataUsageArray = data?.locations.filter(\n v => v.storageLocationId == SYNAPSE_STORAGE_LOCATION_ID,\n )\n const synapseStorageUsage =\n projectDataUsageArray?.length == 1 ? projectDataUsageArray[0] : undefined\n if (!synapseStorageUsage) {\n return <></>\n }\n const { sumFileBytes = 0, maxAllowedFileBytes = 0 } = synapseStorageUsage\n if (maxAllowedFileBytes == 0) {\n return <></>\n }\n const usageBarFilledPx = Math.min(\n Math.round((sumFileBytes / maxAllowedFileBytes) * usageBarWidth),\n usageBarWidth,\n )\n const friendlySumFileBytes = calculateFriendlyFileSize(sumFileBytes, 1)\n const friendlyMaxAllowedFileBytes = calculateFriendlyFileSize(\n maxAllowedFileBytes,\n 1,\n ).replace(/\\.0\\s/, ' ') // SWC-7183: remove '.0 ' from the string if it exists\n return (\n <Box\n sx={spreadSx(\n {\n display: 'flex',\n flexDirection: 'column',\n width: '210px',\n fontFamily: 'DM Sans',\n color: 'white',\n px: '10px',\n },\n sx,\n )}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '5px',\n }}\n >\n <Typography\n sx={{\n // match current styles in Project metadata\n fontWeight: 700,\n fontSize: '16px',\n }}\n >\n Data Availability{' '}\n </Typography>{' '}\n <HelpPopover\n containerSx={{\n fontSize: '12px',\n }}\n markdownText=\"Hosting Plan Options:\n- Basic Plan: Free, for sharing small datasets (<100GB) with self-service setup. No direct support.\n- Self-Managed Plan: Ideal for data longevity, FAIR principles, and NIH compliance. Includes consultation services and data access management tools.\n- Data Coordination Plan: For large, multi-institutional projects, with personalized consulting, data curation, and a custom data portal.\"\n helpUrl={SAGE_OFFERINGS_HELP_URL}\n />\n </Box>\n {synapseStorageUsage.maxAllowedFileBytes && (\n <Tooltip\n title={`Using ${friendlySumFileBytes} out of ${friendlyMaxAllowedFileBytes}`}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '5px',\n alignItems: 'center',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '12px',\n }}\n >\n 0\n </Typography>\n {/* Progress Bar */}\n <Box\n sx={{\n width: `${usageBarWidth}px`,\n height: '4px',\n backgroundColor: 'white',\n borderRadius: '50px',\n }}\n >\n <Box\n sx={{\n width: `${usageBarFilledPx}px`,\n height: '4px',\n backgroundColor: '#EDC766',\n borderRadius: '50px',\n }}\n ></Box>\n </Box>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '12px',\n whiteSpace: 'nowrap',\n }}\n >\n {friendlyMaxAllowedFileBytes}\n </Typography>\n </Box>\n </Tooltip>\n )}\n </Box>\n )\n}\n\nexport default ProjectDataAvailability\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAM,IAAgB;AAEtB,SAAgB,EAAwB,EACtC,cACA,SACgD;CAChD,IAAM,EAAE,uBAAoB,
|
|
1
|
+
{"version":3,"file":"ProjectDataAvailability.js","names":[],"sources":["../../../src/components/ProjectStorage/ProjectDataAvailability.tsx"],"sourcesContent":["import { SYNAPSE_STORAGE_LOCATION_ID } from '@/synapse-client'\nimport { useProjectStorageUsage } from '@/synapse-queries'\nimport { spreadSx } from '@/theme/spreadSx'\nimport { useSynapseContext } from '@/utils'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { SAGE_OFFERINGS_HELP_URL } from '@/utils/SynapseConstants'\nimport { Box, SxProps, Tooltip, Typography } from '@mui/material'\nimport React from 'react'\nimport HelpPopover from '../HelpPopover'\n\nexport type ProjectDataAvailabilityProps = {\n projectId?: string\n sx?: SxProps\n}\nconst usageBarWidth = 142 //px\n\nexport function ProjectDataAvailability({\n projectId,\n sx,\n}: ProjectDataAvailabilityProps): React.ReactNode {\n const { isAuthenticated } = useSynapseContext()\n const { data } = useProjectStorageUsage(projectId!, {\n enabled: !!projectId && isAuthenticated,\n })\n const projectDataUsageArray = data?.locations.filter(\n v => v.storageLocationId == SYNAPSE_STORAGE_LOCATION_ID,\n )\n const synapseStorageUsage =\n projectDataUsageArray?.length == 1 ? projectDataUsageArray[0] : undefined\n if (!synapseStorageUsage) {\n return <></>\n }\n const { sumFileBytes = 0, maxAllowedFileBytes = 0 } = synapseStorageUsage\n if (maxAllowedFileBytes == 0) {\n return <></>\n }\n const usageBarFilledPx = Math.min(\n Math.round((sumFileBytes / maxAllowedFileBytes) * usageBarWidth),\n usageBarWidth,\n )\n const friendlySumFileBytes = calculateFriendlyFileSize(sumFileBytes, 1)\n const friendlyMaxAllowedFileBytes = calculateFriendlyFileSize(\n maxAllowedFileBytes,\n 1,\n ).replace(/\\.0\\s/, ' ') // SWC-7183: remove '.0 ' from the string if it exists\n return (\n <Box\n sx={spreadSx(\n {\n display: 'flex',\n flexDirection: 'column',\n width: '210px',\n fontFamily: 'DM Sans',\n color: 'white',\n px: '10px',\n },\n sx,\n )}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '5px',\n }}\n >\n <Typography\n sx={{\n // match current styles in Project metadata\n fontWeight: 700,\n fontSize: '16px',\n }}\n >\n Data Availability{' '}\n </Typography>{' '}\n <HelpPopover\n containerSx={{\n fontSize: '12px',\n }}\n markdownText=\"Hosting Plan Options:\n- Basic Plan: Free, for sharing small datasets (<100GB) with self-service setup. No direct support.\n- Self-Managed Plan: Ideal for data longevity, FAIR principles, and NIH compliance. Includes consultation services and data access management tools.\n- Data Coordination Plan: For large, multi-institutional projects, with personalized consulting, data curation, and a custom data portal.\"\n helpUrl={SAGE_OFFERINGS_HELP_URL}\n />\n </Box>\n {synapseStorageUsage.maxAllowedFileBytes && (\n <Tooltip\n title={`Using ${friendlySumFileBytes} out of ${friendlyMaxAllowedFileBytes}`}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '5px',\n alignItems: 'center',\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '12px',\n }}\n >\n 0\n </Typography>\n {/* Progress Bar */}\n <Box\n sx={{\n width: `${usageBarWidth}px`,\n height: '4px',\n backgroundColor: 'white',\n borderRadius: '50px',\n }}\n >\n <Box\n sx={{\n width: `${usageBarFilledPx}px`,\n height: '4px',\n backgroundColor: '#EDC766',\n borderRadius: '50px',\n }}\n ></Box>\n </Box>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '12px',\n whiteSpace: 'nowrap',\n }}\n >\n {friendlyMaxAllowedFileBytes}\n </Typography>\n </Box>\n </Tooltip>\n )}\n </Box>\n )\n}\n\nexport default ProjectDataAvailability\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAM,IAAgB;AAEtB,SAAgB,EAAwB,EACtC,cACA,SACgD;CAChD,IAAM,EAAE,uBAAoB,EAAkB,GACxC,EAAE,YAAS,EAAuB,GAAY,EAClD,SAAS,CAAC,CAAC,KAAa,EAC1B,CAAC,GACK,IAAwB,GAAM,UAAU,QAC5C,MAAK,EAAE,qBAAA,CACT,GACM,IACJ,GAAuB,UAAU,IAAI,EAAsB,KAAK,KAAA;CAClE,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;CAEb,IAAM,EAAE,kBAAe,GAAG,yBAAsB,MAAM;CACtD,IAAI,KAAuB,GACzB,OAAO,kBAAA,GAAA,CAAI,CAAA;CAEb,IAAM,IAAmB,KAAK,IAC5B,KAAK,MAAO,IAAe,IAAuB,CAAa,GAC/D,CACF,GACM,IAAuB,EAA0B,GAAc,CAAC,GAChE,IAA8B,EAClC,GACA,CACF,EAAE,QAAQ,SAAS,GAAG;CACtB,OACE,kBAAC,GAAD;EACE,IAAI,EACF;GACE,SAAS;GACT,eAAe;GACf,OAAO;GACP,YAAY;GACZ,OAAO;GACP,IAAI;EACN,GACA,CACF;YAXF,CAaE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,eAAe;IACf,KAAK;GACP;aALF;IAOE,kBAAC,GAAD;KACE,IAAI;MAEF,YAAY;MACZ,UAAU;KACZ;eALF,CAMC,qBACmB,GACR;;IAAE;IACd,kBAAC,GAAD;KACE,aAAa,EACX,UAAU,OACZ;KACA,cAAa;KAIb,SAAS;IACV,CAAA;GACE;MACJ,EAAoB,uBACnB,kBAAC,GAAD;GACE,OAAO,SAAS,EAAqB,UAAU;aAE/C,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,KAAK;KACL,YAAY;IACd;cANF;KAQE,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI,EACF,UAAU,OACZ;gBACD;KAEW,CAAA;KAEZ,kBAAC,GAAD;MACE,IAAI;OACF,OAAO,GAAG,EAAc;OACxB,QAAQ;OACR,iBAAiB;OACjB,cAAc;MAChB;gBAEA,kBAAC,GAAD,EACE,IAAI;OACF,OAAO,GAAG,EAAiB;OAC3B,QAAQ;OACR,iBAAiB;OACjB,cAAc;MAChB,EACI,CAAA;KACH,CAAA;KACL,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,UAAU;OACV,YAAY;MACd;gBAEC;KACS,CAAA;IACT;;EACE,CAAA,CAER;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ActivityNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { Tooltip, Typography } from '@mui/material'\nimport { Activity } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useMemo } from 'react'\nimport { UserBadge } from '../UserCard/UserBadge'\n\nexport const ActivityNodeLabel = (data: Activity): React.ReactNode => {\n const friendlyModifiedOn = formatDate(dayjs(data.modifiedOn))\n const { name, description } = data\n return useMemo(\n () => (\n <>\n {name && (\n <Tooltip title={name} placement=\"top\" enterNextDelay={200}>\n <span>\n <Typography variant=\"smallText1\" className=\"name\">\n {name}\n </Typography>\n </span>\n </Tooltip>\n )}\n {description && (\n <Tooltip title={description} placement=\"top\" enterNextDelay={200}>\n <span>\n <Typography variant=\"smallText1\" className=\"description\">\n {description}\n </Typography>\n </span>\n </Tooltip>\n )}\n <UserBadge userId={data.modifiedBy} />\n <div>{friendlyModifiedOn}</div>\n </>\n ),\n [name, description, data.modifiedBy, friendlyModifiedOn],\n )\n}\n"],"mappings":";;;;;;;AAQA,IAAa,KAAqB,MAAoC;CACpE,IAAM,IAAqB,EAAW,EAAM,EAAK,
|
|
1
|
+
{"version":3,"file":"ActivityNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ActivityNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { Tooltip, Typography } from '@mui/material'\nimport { Activity } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\nimport { useMemo } from 'react'\nimport { UserBadge } from '../UserCard/UserBadge'\n\nexport const ActivityNodeLabel = (data: Activity): React.ReactNode => {\n const friendlyModifiedOn = formatDate(dayjs(data.modifiedOn))\n const { name, description } = data\n return useMemo(\n () => (\n <>\n {name && (\n <Tooltip title={name} placement=\"top\" enterNextDelay={200}>\n <span>\n <Typography variant=\"smallText1\" className=\"name\">\n {name}\n </Typography>\n </span>\n </Tooltip>\n )}\n {description && (\n <Tooltip title={description} placement=\"top\" enterNextDelay={200}>\n <span>\n <Typography variant=\"smallText1\" className=\"description\">\n {description}\n </Typography>\n </span>\n </Tooltip>\n )}\n <UserBadge userId={data.modifiedBy} />\n <div>{friendlyModifiedOn}</div>\n </>\n ),\n [name, description, data.modifiedBy, friendlyModifiedOn],\n )\n}\n"],"mappings":";;;;;;;AAQA,IAAa,KAAqB,MAAoC;CACpE,IAAM,IAAqB,EAAW,EAAM,EAAK,UAAU,CAAC,GACtD,EAAE,SAAM,mBAAgB;CAC9B,OAAO,QAEH,kBAAA,GAAA,EAAA,UAAA;EACG,KACC,kBAAC,GAAD;GAAS,OAAO;GAAM,WAAU;GAAM,gBAAgB;aACpD,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;IAAY,SAAQ;IAAa,WAAU;cACxC;GACS,CAAA,EACR,CAAA;EACC,CAAA;EAEV,KACC,kBAAC,GAAD;GAAS,OAAO;GAAa,WAAU;GAAM,gBAAgB;aAC3D,kBAAC,QAAD,EAAA,UACE,kBAAC,GAAD;IAAY,SAAQ;IAAa,WAAU;cACxC;GACS,CAAA,EACR,CAAA;EACC,CAAA;EAEX,kBAAC,GAAD,EAAW,QAAQ,EAAK,WAAa,CAAA;EACrC,kBAAC,OAAD,EAAA,UAAM,EAAwB,CAAA;CAC9B,EAAA,CAAA,GAEJ;EAAC;EAAM;EAAa,EAAK;EAAY;CAAkB,CACzD;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/EntityNodeLabel.tsx"],"sourcesContent":["import {\n convertToEntityType,\n isVersionableEntityType,\n} from '@/utils/functions/EntityTypeUtils'\nimport React from 'react'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Link, Tooltip } from '@mui/material'\nimport { EntityHeader } from '@sage-bionetworks/synapse-types'\nimport { useMemo } from 'react'\nimport { ProvenanceEntityIcon } from './ProvenanceEntityIcon'\n\nexport const EntityNodeLabel = (data: EntityHeader): React.ReactNode => {\n const targetVersionNumberString = data.versionNumber\n ? `.${data.versionNumber}`\n : ''\n const entityVersionString = `${data.id}${targetVersionNumberString}`\n return useMemo(\n () => (\n <>\n <div>\n <ProvenanceEntityIcon entityHeader={data} />\n </div>\n <>\n <div>\n <Tooltip title={data.name} placement=\"top\" enterNextDelay={300}>\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${entityVersionString}`}\n >\n {data.name}\n </Link>\n </Tooltip>\n </div>\n {isVersionableEntityType(convertToEntityType(data.type)) && (\n <div>\n <div>v.{data.versionNumber}</div>\n {!data.isLatestVersion && <div>(old version)</div>}\n </div>\n )}\n </>\n </>\n ),\n [data, entityVersionString],\n )\n}\n"],"mappings":";;;;;;;AAWA,IAAa,KAAmB,MAAwC;CACtE,IAAM,IAA4B,EAAK,gBACnC,IAAI,EAAK,kBACT,IACE,IAAsB,GAAG,EAAK,KAAK;
|
|
1
|
+
{"version":3,"file":"EntityNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/EntityNodeLabel.tsx"],"sourcesContent":["import {\n convertToEntityType,\n isVersionableEntityType,\n} from '@/utils/functions/EntityTypeUtils'\nimport React from 'react'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { Link, Tooltip } from '@mui/material'\nimport { EntityHeader } from '@sage-bionetworks/synapse-types'\nimport { useMemo } from 'react'\nimport { ProvenanceEntityIcon } from './ProvenanceEntityIcon'\n\nexport const EntityNodeLabel = (data: EntityHeader): React.ReactNode => {\n const targetVersionNumberString = data.versionNumber\n ? `.${data.versionNumber}`\n : ''\n const entityVersionString = `${data.id}${targetVersionNumberString}`\n return useMemo(\n () => (\n <>\n <div>\n <ProvenanceEntityIcon entityHeader={data} />\n </div>\n <>\n <div>\n <Tooltip title={data.name} placement=\"top\" enterNextDelay={300}>\n <Link\n href={`${PRODUCTION_ENDPOINT_CONFIG.PORTAL}Synapse:${entityVersionString}`}\n >\n {data.name}\n </Link>\n </Tooltip>\n </div>\n {isVersionableEntityType(convertToEntityType(data.type)) && (\n <div>\n <div>v.{data.versionNumber}</div>\n {!data.isLatestVersion && <div>(old version)</div>}\n </div>\n )}\n </>\n </>\n ),\n [data, entityVersionString],\n )\n}\n"],"mappings":";;;;;;;AAWA,IAAa,KAAmB,MAAwC;CACtE,IAAM,IAA4B,EAAK,gBACnC,IAAI,EAAK,kBACT,IACE,IAAsB,GAAG,EAAK,KAAK;CACzC,OAAO,QAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD,EAAsB,cAAc,EAAO,CAAA,EACxC,CAAA,GACL,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;EAAS,OAAO,EAAK;EAAM,WAAU;EAAM,gBAAgB;YACzD,kBAAC,GAAD;GACE,MAAM,GAAG,EAA2B,OAAO,UAAU;aAEpD,EAAK;EACF,CAAA;CACC,CAAA,EACN,CAAA,GACJ,EAAwB,EAAoB,EAAK,IAAI,CAAC,KACrD,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD,EAAA,UAAA,CAAK,MAAG,EAAK,aAAmB,EAAA,CAAA,GAC/B,CAAC,EAAK,mBAAmB,kBAAC,OAAD,EAAA,UAAK,gBAAkB,CAAA,CAC9C,EAAA,CAAA,CAEP,EAAA,CAAA,CACF,EAAA,CAAA,GAEJ,CAAC,GAAM,CAAmB,CAC5B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPlaceholderNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/EntityPlaceholderNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { useMemo } from 'react'\nimport { Reference } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../IconSvg/IconSvg'\n\n/**\n * This node type is used if the user cannot access the entity for some reason\n */\nexport const EntityPlaceholderNodeLabel = (\n data: Reference,\n): React.ReactNode => {\n const targetVersionNumberString = data.targetVersionNumber\n ? `.${data.targetVersionNumber}`\n : ''\n const entityVersionString = `${data.targetId}${targetVersionNumberString}`\n return useMemo(\n () => (\n <>\n <div>\n <IconSvg icon=\"fileOutlined\" />\n </div>\n <span>{entityVersionString}</span>\n </>\n ),\n [entityVersionString],\n )\n}\n"],"mappings":";;;;AAQA,IAAa,KACX,MACoB;CACpB,IAAM,IAA4B,EAAK,sBACnC,IAAI,EAAK,wBACT,IACE,IAAsB,GAAG,EAAK,WAAW;
|
|
1
|
+
{"version":3,"file":"EntityPlaceholderNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/EntityPlaceholderNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { useMemo } from 'react'\nimport { Reference } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../IconSvg/IconSvg'\n\n/**\n * This node type is used if the user cannot access the entity for some reason\n */\nexport const EntityPlaceholderNodeLabel = (\n data: Reference,\n): React.ReactNode => {\n const targetVersionNumberString = data.targetVersionNumber\n ? `.${data.targetVersionNumber}`\n : ''\n const entityVersionString = `${data.targetId}${targetVersionNumberString}`\n return useMemo(\n () => (\n <>\n <div>\n <IconSvg icon=\"fileOutlined\" />\n </div>\n <span>{entityVersionString}</span>\n </>\n ),\n [entityVersionString],\n )\n}\n"],"mappings":";;;;AAQA,IAAa,KACX,MACoB;CACpB,IAAM,IAA4B,EAAK,sBACnC,IAAI,EAAK,wBACT,IACE,IAAsB,GAAG,EAAK,WAAW;CAC/C,OAAO,QAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD,EAAS,MAAK,eAAgB,CAAA,EAC3B,CAAA,GACL,kBAAC,QAAD,EAAA,UAAO,EAA0B,CAAA,CACjC,EAAA,CAAA,GAEJ,CAAC,CAAmB,CACtB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandGraphNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ExpandGraphNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport pluralize from 'pluralize'\nimport { useMemo } from 'react'\nimport { EntityHeader } from '@sage-bionetworks/synapse-types'\n\nexport type ExpandGraphNodeDataProps = {\n entityHeader: EntityHeader\n itemCount: number\n}\nexport const ExpandGraphNodeLabel = (\n props: ExpandGraphNodeDataProps,\n): React.ReactNode => {\n const { itemCount } = props\n return useMemo(\n () => (\n <>\n <a>\n Show {itemCount} {pluralize('item', itemCount)}…\n </a>\n </>\n ),\n [itemCount],\n )\n}\n"],"mappings":";;;;AASA,IAAa,KACX,MACoB;CACpB,IAAM,EAAE,iBAAc;
|
|
1
|
+
{"version":3,"file":"ExpandGraphNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ExpandGraphNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport pluralize from 'pluralize'\nimport { useMemo } from 'react'\nimport { EntityHeader } from '@sage-bionetworks/synapse-types'\n\nexport type ExpandGraphNodeDataProps = {\n entityHeader: EntityHeader\n itemCount: number\n}\nexport const ExpandGraphNodeLabel = (\n props: ExpandGraphNodeDataProps,\n): React.ReactNode => {\n const { itemCount } = props\n return useMemo(\n () => (\n <>\n <a>\n Show {itemCount} {pluralize('item', itemCount)}…\n </a>\n </>\n ),\n [itemCount],\n )\n}\n"],"mappings":";;;;AASA,IAAa,KACX,MACoB;CACpB,IAAM,EAAE,iBAAc;CACtB,OAAO,QAEH,kBAAA,GAAA,EAAA,UACE,kBAAC,KAAD,EAAA,UAAA;EAAG;EACK;EAAU;EAAE,EAAU,QAAQ,CAAS;EAAE;CAC9C,EAAA,CAAA,EACH,CAAA,GAEJ,CAAC,CAAS,CACZ;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalGraphNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ExternalGraphNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { useMemo } from 'react'\nimport { UsedURL } from '@sage-bionetworks/synapse-types'\nimport { Tooltip } from '@mui/material'\nimport { ProvenanceExternalIcon } from './ProvenanceExternalIcon'\n\nexport const ExternalGraphNodeLabel = (data: UsedURL): React.ReactNode => {\n return useMemo(\n () => (\n <>\n <div>\n <ProvenanceExternalIcon url={data.url} />\n </div>\n <Tooltip title={data.name} placement=\"top\" enterNextDelay={300}>\n <a href={data.url} rel=\"noopener noreferrer\">\n {data.name}\n </a>\n </Tooltip>\n </>\n ),\n [data.name, data.url],\n )\n}\n"],"mappings":";;;;;AAMA,IAAa,KAA0B,MAC9B,QAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD,EAAwB,KAAK,EAAK,
|
|
1
|
+
{"version":3,"file":"ExternalGraphNodeLabel.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ExternalGraphNodeLabel.tsx"],"sourcesContent":["import React from 'react'\nimport { useMemo } from 'react'\nimport { UsedURL } from '@sage-bionetworks/synapse-types'\nimport { Tooltip } from '@mui/material'\nimport { ProvenanceExternalIcon } from './ProvenanceExternalIcon'\n\nexport const ExternalGraphNodeLabel = (data: UsedURL): React.ReactNode => {\n return useMemo(\n () => (\n <>\n <div>\n <ProvenanceExternalIcon url={data.url} />\n </div>\n <Tooltip title={data.name} placement=\"top\" enterNextDelay={300}>\n <a href={data.url} rel=\"noopener noreferrer\">\n {data.name}\n </a>\n </Tooltip>\n </>\n ),\n [data.name, data.url],\n )\n}\n"],"mappings":";;;;;AAMA,IAAa,KAA0B,MAC9B,QAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD,EAAwB,KAAK,EAAK,IAAM,CAAA,EACrC,CAAA,GACL,kBAAC,GAAD;CAAS,OAAO,EAAK;CAAM,WAAU;CAAM,gBAAgB;WACzD,kBAAC,KAAD;EAAG,MAAM,EAAK;EAAK,KAAI;YACpB,EAAK;CACL,CAAA;AACI,CAAA,CACT,EAAA,CAAA,GAEJ,CAAC,EAAK,MAAM,EAAK,GAAG,CACtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvenanceEntityIcon.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceEntityIcon.tsx"],"sourcesContent":["import React from 'react'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { EntityHeader } from '@sage-bionetworks/synapse-types'\nimport { EntityTypeIcon } from '../EntityIcon'\nimport IconSvg from '../IconSvg/IconSvg'\n\nexport type ProvenanceEntityIconProps = {\n entityHeader?: EntityHeader\n}\n\nconst codeFileExtensionSet = new Set([\n '.awk',\n '.bat',\n '.btm',\n '.c',\n '.cmd',\n '.cpp',\n '.cxx',\n '.def',\n '.dlg',\n '.dpc',\n '.dpj',\n '.dtd',\n '.h',\n '.hdl',\n '.hpp',\n '.hrc',\n '.html',\n '.hxx',\n '.inc',\n '.ini',\n '.inl',\n '.ins',\n '.ipy',\n '.java',\n '.js',\n '.jsp',\n '.l',\n '.lgt',\n '.ll',\n '.par',\n '.pl',\n '.py',\n '.r',\n '.rc',\n '.rdb',\n '.res',\n '.s',\n '.sbl',\n '.scp',\n '.sh',\n '.sql',\n '.src',\n '.srs',\n '.xml',\n '.xrb',\n '.y',\n '.yaml',\n '.yxx',\n '.cwl',\n '.wdl',\n '.json',\n])\n\nexport const ProvenanceEntityIcon = (\n props: ProvenanceEntityIconProps,\n): React.ReactNode => {\n const { entityHeader } = props\n if (entityHeader) {\n const entityType: EntityType = convertToEntityType(entityHeader?.type)\n if (entityType == EntityType.file) {\n // this is a file, may want to use a special icon in this case\n const lastPeriodIndex = entityHeader.name.lastIndexOf('.')\n if (lastPeriodIndex > -1) {\n const extension = entityHeader.name.slice(lastPeriodIndex)\n if (codeFileExtensionSet.has(extension.toLowerCase())) {\n return <IconSvg icon=\"code\" />\n }\n }\n } else {\n return <EntityTypeIcon type={entityType} includeTooltip={false} />\n }\n }\n\n // return the default (File icon)\n return <EntityTypeIcon type={EntityType.file} includeTooltip={false} />\n}\n"],"mappings":";;;;;;;AAWA,IAAM,IAAuB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"ProvenanceEntityIcon.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceEntityIcon.tsx"],"sourcesContent":["import React from 'react'\nimport { convertToEntityType } from '@/utils/functions/EntityTypeUtils'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { EntityHeader } from '@sage-bionetworks/synapse-types'\nimport { EntityTypeIcon } from '../EntityIcon'\nimport IconSvg from '../IconSvg/IconSvg'\n\nexport type ProvenanceEntityIconProps = {\n entityHeader?: EntityHeader\n}\n\nconst codeFileExtensionSet = new Set([\n '.awk',\n '.bat',\n '.btm',\n '.c',\n '.cmd',\n '.cpp',\n '.cxx',\n '.def',\n '.dlg',\n '.dpc',\n '.dpj',\n '.dtd',\n '.h',\n '.hdl',\n '.hpp',\n '.hrc',\n '.html',\n '.hxx',\n '.inc',\n '.ini',\n '.inl',\n '.ins',\n '.ipy',\n '.java',\n '.js',\n '.jsp',\n '.l',\n '.lgt',\n '.ll',\n '.par',\n '.pl',\n '.py',\n '.r',\n '.rc',\n '.rdb',\n '.res',\n '.s',\n '.sbl',\n '.scp',\n '.sh',\n '.sql',\n '.src',\n '.srs',\n '.xml',\n '.xrb',\n '.y',\n '.yaml',\n '.yxx',\n '.cwl',\n '.wdl',\n '.json',\n])\n\nexport const ProvenanceEntityIcon = (\n props: ProvenanceEntityIconProps,\n): React.ReactNode => {\n const { entityHeader } = props\n if (entityHeader) {\n const entityType: EntityType = convertToEntityType(entityHeader?.type)\n if (entityType == EntityType.file) {\n // this is a file, may want to use a special icon in this case\n const lastPeriodIndex = entityHeader.name.lastIndexOf('.')\n if (lastPeriodIndex > -1) {\n const extension = entityHeader.name.slice(lastPeriodIndex)\n if (codeFileExtensionSet.has(extension.toLowerCase())) {\n return <IconSvg icon=\"code\" />\n }\n }\n } else {\n return <EntityTypeIcon type={entityType} includeTooltip={false} />\n }\n }\n\n // return the default (File icon)\n return <EntityTypeIcon type={EntityType.file} includeTooltip={false} />\n}\n"],"mappings":";;;;;;;AAWA,IAAM,IAAuB,IAAI,IAAI,4QAoDrC,CAAC,GAEY,KACX,MACoB;CACpB,IAAM,EAAE,oBAAiB;CACzB,IAAI,GAAc;EAChB,IAAM,IAAyB,EAAoB,GAAc,IAAI;EACrE,IAAI,KAAc,EAAW,MAAM;GAEjC,IAAM,IAAkB,EAAa,KAAK,YAAY,GAAG;GACzD,IAAI,IAAkB,IAAI;IACxB,IAAM,IAAY,EAAa,KAAK,MAAM,CAAe;IACzD,IAAI,EAAqB,IAAI,EAAU,YAAY,CAAC,GAClD,OAAO,kBAAC,GAAD,EAAS,MAAK,OAAQ,CAAA;GAEjC;EACF,OACE,OAAO,kBAAC,GAAD;GAAgB,MAAM;GAAY,gBAAgB;EAAQ,CAAA;CAErE;CAGA,OAAO,kBAAC,GAAD;EAAgB,MAAM,EAAW;EAAM,gBAAgB;CAAQ,CAAA;AACxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvenanceExternalIcon.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceExternalIcon.tsx"],"sourcesContent":["import React from 'react'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\n\nexport type ProvenanceExternalIconProps = {\n url: string\n}\nconst githubRegex = /^(.+?\\.)?github\\.com$/\nconst githubusercontentRegex = /^(.+?\\.)?githubusercontent\\.com$/\n\nexport const ProvenanceExternalIcon = (\n props: ProvenanceExternalIconProps,\n): React.ReactNode => {\n const { url } = props\n let icon: IconName = 'link'\n const parsedUrl = new URL(url)\n const { hostname } = parsedUrl\n\n if (hostname.match(githubRegex) || hostname.match(githubusercontentRegex)) {\n icon = 'github'\n }\n // else if (url.includes(\"genomespace.org\")) {\n // icon = 'genomespace'\n // }\n\n // return the default (File icon)\n return <IconSvg icon={icon} />\n}\n"],"mappings":";;;;AAMA,IAAM,IAAc,yBACd,IAAyB,oCAElB,KACX,MACoB;CACpB,IAAM,EAAE,WAAQ,GACZ,IAAiB,QAEf,EAAE,gBAAa,IADC,IAAI,
|
|
1
|
+
{"version":3,"file":"ProvenanceExternalIcon.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceExternalIcon.tsx"],"sourcesContent":["import React from 'react'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\n\nexport type ProvenanceExternalIconProps = {\n url: string\n}\nconst githubRegex = /^(.+?\\.)?github\\.com$/\nconst githubusercontentRegex = /^(.+?\\.)?githubusercontent\\.com$/\n\nexport const ProvenanceExternalIcon = (\n props: ProvenanceExternalIconProps,\n): React.ReactNode => {\n const { url } = props\n let icon: IconName = 'link'\n const parsedUrl = new URL(url)\n const { hostname } = parsedUrl\n\n if (hostname.match(githubRegex) || hostname.match(githubusercontentRegex)) {\n icon = 'github'\n }\n // else if (url.includes(\"genomespace.org\")) {\n // icon = 'genomespace'\n // }\n\n // return the default (File icon)\n return <IconSvg icon={icon} />\n}\n"],"mappings":";;;;AAMA,IAAM,IAAc,yBACd,IAAyB,oCAElB,KACX,MACoB;CACpB,IAAM,EAAE,WAAQ,GACZ,IAAiB,QAEf,EAAE,gBAAa,IADC,IAAI,CACL;CAUrB,QARI,EAAS,MAAM,CAAW,KAAK,EAAS,MAAM,CAAsB,OACtE,IAAO,WAOF,kBAAC,GAAD,EAAe,QAAO,CAAA;AAC/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvenanceGraph.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceGraph.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useGetEntityHeaders } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { CircularProgress } from '@mui/material'\nimport {\n Activity,\n EntityHeader,\n ReferenceList,\n Used,\n USED_ENTITY_CONCRETE_TYPE_VALUE,\n UsedEntity,\n UsedURL,\n} from '@sage-bionetworks/synapse-types'\nimport { MouseEvent, useCallback, useEffect, useState, WheelEvent } from 'react'\nimport { useErrorHandler } from 'react-error-boundary'\nimport ReactFlow, {\n Controls,\n Edge,\n getConnectedEdges,\n Node,\n ReactFlowProvider,\n useEdgesState,\n useNodesState,\n useReactFlow,\n} from 'reactflow'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport { ExpandGraphNodeDataProps } from './ExpandGraphNodeLabel'\nimport {\n addActivityNode,\n addEntityNode,\n addEntityPlaceholderNode,\n addExpandNode,\n addExternalNode,\n addUndefinedNode,\n findEntityNode,\n isRootEntity,\n} from './ProvenanceGraphUtils'\nimport {\n getLayoutedElements,\n isArrayEqual,\n NodeType,\n ProvenanceNodeData,\n} from './ProvenanceUtils'\nimport 'reactflow/dist/style.css'\n\nexport type ProvenanceProps = {\n // what entity nodes should we start with?\n entityRefs: ReferenceList\n containerHeight?: string\n initialNodes?: Node[]\n initialEdges?: Edge[]\n onNodesChangedListener?: (nodes: Node[]) => void\n onEdgesChangedListener?: (edges: Edge[]) => void\n}\n\nconst MAX_ACTIVITY_EXPAND_NODES = 400\nconst DEFAULT_ZOOM = 0.85\n\n/**\n * Renders a Provenance Graph for a set of entities.\n * New Nodes are added to tempNodes, and new Edges are added to tempEdges.\n * On change, these are fed into the dagre js graph library to figure out the node positions,\n * and the output stored in 'nodes' and 'edges'. The 'nodes' and 'edges' arrays are used by the\n * ReactFlow component.\n */\nconst ProvenanceReactFlow = (props: ProvenanceProps): React.ReactNode => {\n const {\n entityRefs: rootEntityRefs,\n containerHeight = '200px',\n initialNodes = [],\n initialEdges = [],\n onNodesChangedListener,\n onEdgesChangedListener,\n } = props\n const { accessToken } = useSynapseContext()\n const [tempNodes, setTempNodes] = useState<Node[]>(initialNodes)\n const [tempEdges, setTempEdges] = useState<Edge[]>(initialEdges)\n const [nodes, setNodes] = useNodesState([])\n const [edges, setEdges] = useEdgesState([])\n const [clickedNode, setClickedNode] = useState<Node>()\n const handleError = useErrorHandler()\n\n const { data: rootEntityHeadersPage, isSuccess } = useGetEntityHeaders(\n rootEntityRefs,\n { throwOnError: true },\n )\n if (\n isSuccess &&\n rootEntityHeadersPage &&\n rootEntityHeadersPage.totalNumberOfResults == 0\n ) {\n const synapseIds = rootEntityRefs.map(ref => ref.targetId).join(',')\n handleError(\n `Unable to load provenance for the given Synapse IDs: ${synapseIds}`,\n )\n }\n const rootEntityHeaders = rootEntityHeadersPage?.results\n const [initializedPosition, setInitializedPosition] = useState<boolean>(false)\n\n // Get the react flow instance so we attempt to properly center the view.\n const reactFlowInstance = useReactFlow()\n\n const onClickNode = useCallback((_event: MouseEvent, node: Node) => {\n setClickedNode(node)\n }, [])\n\n /**\n * Called when we have a new entity to add to the graph. This will result in adding\n * a new Entity Node to the nodesCopy, a link from the usedInActivity to the new Entity Node,\n * AND it will look for an Activity associated with the new entity. If an Activity is found,\n * it will add an Expand Node for the user to click (to expand to see this Activity!).\n * If this is a root node (starting entity node), then we automatically add the Activity Node\n * and process it.\n */\n const addEntity = useCallback(\n async (params: {\n entityHeader: EntityHeader\n usedInActivity?: Activity\n nodesCopy: Node[]\n edgesCopy: Edge[]\n }) => {\n const { entityHeader, nodesCopy, edgesCopy, usedInActivity } = params\n addEntityNode({\n entityHeader,\n activity: usedInActivity,\n nodesCopy,\n edgesCopy,\n })\n //look for Activity\n try {\n const activity = await SynapseClient.getActivityForEntity(\n entityHeader.id,\n entityHeader.versionNumber,\n accessToken,\n )\n // if this is not a root node (or there are too many items to show), add an expand node\n if (\n !isRootEntity({ entityHeader, rootEntityHeaders }) ||\n (activity.used && activity.used.length >= MAX_ACTIVITY_EXPAND_NODES)\n ) {\n addExpandNode({\n entityHeader,\n itemCount: activity.used?.length,\n nodesCopy,\n edgesCopy,\n })\n }\n } catch (e) {\n // Activity is not accessible\n console.error(e)\n if (\n isRootEntity({\n entityHeader,\n rootEntityHeaders,\n })\n ) {\n // add provenance undefined node\n addUndefinedNode({\n entityHeader,\n nodesCopy,\n edgesCopy,\n })\n }\n }\n },\n [accessToken, rootEntityHeaders],\n )\n\n /**\n * This effect attempts to center the graph on one of the root nodes.\n * Only initializes after after a root node has been added to the graph.\n */\n useEffect(() => {\n if (!initializedPosition && nodes.length > 0) {\n setTimeout(() => {\n if (rootEntityHeaders) {\n const rootEntityNode = findEntityNode(rootEntityHeaders[0], nodes)\n if (rootEntityNode) {\n const currentZoom = reactFlowInstance.getZoom()\n const zoom = currentZoom > DEFAULT_ZOOM ? DEFAULT_ZOOM : currentZoom\n reactFlowInstance?.setCenter(\n rootEntityNode.position.x + 150,\n rootEntityNode.position.y - 30,\n { zoom, duration: 0 },\n )\n }\n setInitializedPosition(true)\n }\n })\n }\n }, [initializedPosition, nodes, reactFlowInstance, rootEntityHeaders])\n\n /**\n * This is called when the user clicks on an Expand Node. It will add the associated Activity\n * and all \"used\" items (entities and urls) to the graph by adding items to the nodesCopy and edgesCopy arrays.\n */\n const onExpandEntity = useCallback(\n async (params: {\n entityHeader: EntityHeader\n nodesCopy: Node[]\n edgesCopy: Edge[]\n }) => {\n const { entityHeader, nodesCopy, edgesCopy } = params\n try {\n const activity = await SynapseClient.getActivityForEntity(\n entityHeader.id,\n entityHeader.versionNumber,\n accessToken,\n )\n addActivityNode({\n activity,\n entityHeader,\n nodesCopy,\n edgesCopy,\n })\n // go through Activity.used array to add these nodes/edges\n if (activity.used && activity.used.length < MAX_ACTIVITY_EXPAND_NODES) {\n const usedEntityReferences: ReferenceList = []\n activity.used.forEach((usedItem: Used) => {\n if (usedItem.concreteType == USED_ENTITY_CONCRETE_TYPE_VALUE) {\n usedEntityReferences.push((usedItem as UsedEntity).reference)\n } else {\n // UsedURL\n const usedURL = usedItem as UsedURL\n addExternalNode({ usedURL, activity, nodesCopy, edgesCopy })\n }\n })\n const usedEntityHeadersPage = await SynapseClient.getEntityHeaders(\n usedEntityReferences,\n accessToken,\n )\n const { results: usedEntityHeaderPageResults } = usedEntityHeadersPage\n // find refs that were not returned by the entity header call\n const refsMissingEntityHeaders = usedEntityReferences.filter(ref => {\n return (\n usedEntityHeaderPageResults.find(header => {\n return header.id == ref.targetId\n }) == undefined\n )\n })\n refsMissingEntityHeaders.forEach(ref => {\n addEntityPlaceholderNode({ ref, activity, nodesCopy, edgesCopy })\n })\n const addEntityPromises: Promise<void>[] = []\n usedEntityHeaderPageResults.forEach(header => {\n addEntityPromises.push(\n addEntity({\n entityHeader: header,\n nodesCopy,\n edgesCopy,\n usedInActivity: activity,\n }),\n )\n })\n await Promise.allSettled(addEntityPromises)\n }\n } catch (e) {\n // Activity is not accessible\n console.error(e)\n }\n },\n [accessToken, addEntity],\n )\n\n /**\n * This effect code executes when no nodes have been added.\n * It will add the root nodes, and attempt to expand the root nodes.\n */\n useEffect(() => {\n if (rootEntityHeaders && tempNodes.length == 0) {\n const nodesCopy = [...tempNodes]\n const edgesCopy = [...tempEdges]\n const addAndExpandPromises: Promise<void>[] = []\n rootEntityHeaders.forEach(header => {\n const addEntityPromise = addEntity({\n entityHeader: header,\n nodesCopy,\n edgesCopy,\n })\n addAndExpandPromises.push(addEntityPromise)\n\n const expandEntityPromise = onExpandEntity({\n entityHeader: header,\n nodesCopy,\n edgesCopy,\n })\n addAndExpandPromises.push(expandEntityPromise)\n })\n Promise.allSettled(addAndExpandPromises).finally(() => {\n setTempNodes(nodesCopy)\n setTempEdges(edgesCopy)\n })\n }\n }, [\n addEntity,\n handleError,\n onExpandEntity,\n rootEntityHeaders,\n rootEntityRefs,\n tempEdges,\n tempNodes,\n ])\n\n /**\n * This effect code executes when a node is clicked.\n * We check to see if it is an expand node. If it is, then we remove the expand node (and associated edge)\n * and ask for the Activity and associated \"used\" nodes (entities and URLs)\n */\n useEffect(() => {\n const nodeData: ProvenanceNodeData = clickedNode?.data as ProvenanceNodeData\n if (clickedNode && nodeData?.type == NodeType.EXPAND) {\n const expandNodeDataProps = nodeData.props as ExpandGraphNodeDataProps\n if (expandNodeDataProps.itemCount > MAX_ACTIVITY_EXPAND_NODES) {\n displayToast(\n 'Web visualization does not support expanding this many items at this time.',\n 'danger',\n )\n return\n } else {\n // graph will be used outside of synapse, so show a non-branded spinner\n nodeData.label = <CircularProgress size={30} />\n // remove clicked node\n const nodesWithoutExpandNode = tempNodes.filter(\n node => node.id != clickedNode.id,\n )\n const edgeToRemove = getConnectedEdges([clickedNode], tempEdges)[0]\n const edgesWithoutExpandEdge = tempEdges.filter(\n edge => edge != edgeToRemove,\n )\n onExpandEntity({\n entityHeader: expandNodeDataProps.entityHeader,\n nodesCopy: nodesWithoutExpandNode,\n edgesCopy: edgesWithoutExpandEdge,\n }).finally(() => {\n setTempNodes(nodesWithoutExpandNode)\n setTempEdges(edgesWithoutExpandEdge)\n })\n }\n setClickedNode(undefined)\n }\n }, [clickedNode, tempNodes, tempEdges, onExpandEntity])\n\n /**\n * This effect code is run when the graph nodes or edges change.\n * It feeds the nodes and edges into our layout library to figure out where they should be positioned.\n * The result is saved in the state variable \"nodes\" and \"edges\".\n */\n useEffect(() => {\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(\n tempNodes,\n tempEdges,\n 'TB',\n )\n // hack: ProvenanceUtils.getProvenanceNode() returns a new object every time, so check to see if\n // there were any real changes\n if (!isArrayEqual(layoutedNodes, nodes)) {\n setNodes(layoutedNodes)\n if (onNodesChangedListener) {\n onNodesChangedListener(layoutedNodes)\n }\n }\n if (!isArrayEqual(layoutedEdges, edges)) {\n setEdges(layoutedEdges)\n if (onEdgesChangedListener) {\n onEdgesChangedListener(layoutedEdges)\n }\n }\n }, [\n tempNodes,\n tempEdges,\n nodes,\n edges,\n setNodes,\n setEdges,\n initializedPosition,\n reactFlowInstance,\n rootEntityRefs,\n onNodesChangedListener,\n onEdgesChangedListener,\n ])\n\n const onPaneScrollFunction: (event?: WheelEvent) => void = useCallback(\n event => {\n // Cannot simply check the truthy value of event.deltaX (or Y) because the value might be 0 (or -0), which is falsy\n if (\n event &&\n typeof event.deltaX !== 'undefined' &&\n typeof event.deltaY !== 'undefined'\n ) {\n window.scrollTo(\n window.scrollX + event.deltaX,\n window.scrollY + event.deltaY,\n )\n }\n },\n [],\n )\n return (\n <div\n className=\"ProvenanceWidget\"\n role=\"graphics-doc\" //https://www.w3.org/wiki/SVG_Accessibility/ARIA_roles_for_charts#Document_Roles\n style={{ width: '100%', height: containerHeight }}\n >\n <ReactFlow\n defaultViewport={{ x: 0, y: 0, zoom: DEFAULT_ZOOM }}\n nodes={nodes}\n edges={edges}\n onNodeClick={onClickNode}\n // onNodesChange={onNodesChange} // SWC-6804: When the nodes/edges are updated (expanded) the graph is already re-rendered.\n // onEdgesChange={onEdgesChange} // Specifying these callbacks causes an infinite re-rendering loop.\n attributionPosition=\"bottom-right\"\n onConnect={undefined}\n zoomOnScroll={false}\n onPaneScroll={onPaneScrollFunction}\n >\n <Controls />\n </ReactFlow>\n </div>\n )\n}\n\nconst ProvenanceGraph = (props: ProvenanceProps): React.ReactNode => {\n return (\n <SynapseErrorBoundary>\n <ReactFlowProvider>\n <ProvenanceReactFlow {...props} />\n </ReactFlowProvider>\n </SynapseErrorBoundary>\n )\n}\n\nexport default ProvenanceGraph\n"],"mappings":";;;;;;;;;;;;;;;;AAwDA,IAAM,IAA4B,KAC5B,IAAe,KASf,KAAuB,MAA4C;CACvE,IAAM,EACJ,YAAY,GACZ,qBAAkB,SAClB,kBAAe,EAAE,EACjB,kBAAe,EAAE,EACjB,2BACA,8BACE,GACE,EAAE,mBAAgB,GAAmB,EACrC,CAAC,GAAW,KAAgB,EAAiB,EAAa,EAC1D,CAAC,GAAW,KAAgB,EAAiB,EAAa,EAC1D,CAAC,GAAO,KAAY,EAAc,EAAE,CAAC,EACrC,CAAC,GAAO,KAAY,EAAc,EAAE,CAAC,EACrC,CAAC,GAAa,KAAkB,GAAgB,EAChD,IAAc,GAAiB,EAE/B,EAAE,MAAM,GAAuB,iBAAc,EACjD,GACA,EAAE,cAAc,IAAM,CACvB;AACD,CACE,KACA,KACA,EAAsB,wBAAwB,KAG9C,EACE,wDAFiB,EAAe,KAAI,MAAO,EAAI,SAAS,CAAC,KAAK,IAEN,GACzD;CAEH,IAAM,IAAoB,GAAuB,SAC3C,CAAC,GAAqB,KAA0B,EAAkB,GAAM,EAGxE,IAAoB,GAAc,EAElC,KAAc,GAAa,GAAoB,MAAe;AAClE,IAAe,EAAK;IACnB,EAAE,CAAC,EAUA,IAAY,EAChB,OAAO,MAKD;EACJ,IAAM,EAAE,iBAAc,cAAW,cAAW,sBAAmB;AAC/D,KAAc;GACZ;GACA,UAAU;GACV;GACA;GACD,CAAC;AAEF,MAAI;GACF,IAAM,IAAW,MAAM,EAAc,qBACnC,EAAa,IACb,EAAa,eACb,EACD;AAED,IACE,CAAC,EAAa;IAAE;IAAc;IAAmB,CAAC,IACjD,EAAS,QAAQ,EAAS,KAAK,UAAU,MAE1C,EAAc;IACZ;IACA,WAAW,EAAS,MAAM;IAC1B;IACA;IACD,CAAC;WAEG,GAAG;AAGV,GADA,QAAQ,MAAM,EAAE,EAEd,EAAa;IACX;IACA;IACD,CAAC,IAGF,EAAiB;IACf;IACA;IACA;IACD,CAAC;;IAIR,CAAC,GAAa,EAAkB,CACjC;AAMD,SAAgB;AACd,EAAI,CAAC,KAAuB,EAAM,SAAS,KACzC,iBAAiB;AACf,OAAI,GAAmB;IACrB,IAAM,IAAiB,EAAe,EAAkB,IAAI,EAAM;AAClE,QAAI,GAAgB;KAClB,IAAM,IAAc,EAAkB,SAAS,EACzC,IAAO,IAAc,IAAe,IAAe;AACzD,QAAmB,UACjB,EAAe,SAAS,IAAI,KAC5B,EAAe,SAAS,IAAI,IAC5B;MAAE;MAAM,UAAU;MAAG,CACtB;;AAEH,MAAuB,GAAK;;IAE9B;IAEH;EAAC;EAAqB;EAAO;EAAmB;EAAkB,CAAC;CAMtE,IAAM,IAAiB,EACrB,OAAO,MAID;EACJ,IAAM,EAAE,iBAAc,cAAW,iBAAc;AAC/C,MAAI;GACF,IAAM,IAAW,MAAM,EAAc,qBACnC,EAAa,IACb,EAAa,eACb,EACD;AAQD,OAPA,GAAgB;IACd;IACA;IACA;IACA;IACD,CAAC,EAEE,EAAS,QAAQ,EAAS,KAAK,SAAS,GAA2B;IACrE,IAAM,IAAsC,EAAE;AAC9C,MAAS,KAAK,SAAS,MAAmB;AACxC,KAAI,EAAS,gBAAgB,IAC3B,EAAqB,KAAM,EAAwB,UAAU,GAI7D,EAAgB;MAAE,SAAA;MAAS;MAAU;MAAW;MAAW,CAAC;MAE9D;IAKF,IAAM,EAAE,SAAS,MAAgC,MAJb,EAAc,iBAChD,GACA,EACD;AAGgC,MAAqB,QAAO,MAEzD,EAA4B,MAAK,MACxB,EAAO,MAAM,EAAI,SACxB,IAAI,KAGV,CAAyB,SAAQ,MAAO;AACtC,OAAyB;MAAE;MAAK;MAAU;MAAW;MAAW,CAAC;MACjE;IACF,IAAM,IAAqC,EAAE;AAW7C,IAVA,EAA4B,SAAQ,MAAU;AAC5C,OAAkB,KAChB,EAAU;MACR,cAAc;MACd;MACA;MACA,gBAAgB;MACjB,CAAC,CACH;MACD,EACF,MAAM,QAAQ,WAAW,EAAkB;;WAEtC,GAAG;AAEV,WAAQ,MAAM,EAAE;;IAGpB,CAAC,GAAa,EAAU,CACzB;AAqFD,CA/EA,QAAgB;AACd,MAAI,KAAqB,EAAU,UAAU,GAAG;GAC9C,IAAM,IAAY,CAAC,GAAG,EAAU,EAC1B,IAAY,CAAC,GAAG,EAAU,EAC1B,IAAwC,EAAE;AAgBhD,GAfA,EAAkB,SAAQ,MAAU;IAClC,IAAM,IAAmB,EAAU;KACjC,cAAc;KACd;KACA;KACD,CAAC;AACF,MAAqB,KAAK,EAAiB;IAE3C,IAAM,IAAsB,EAAe;KACzC,cAAc;KACd;KACA;KACD,CAAC;AACF,MAAqB,KAAK,EAAoB;KAC9C,EACF,QAAQ,WAAW,EAAqB,CAAC,cAAc;AAErD,IADA,EAAa,EAAU,EACvB,EAAa,EAAU;KACvB;;IAEH;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EAOF,QAAgB;EACd,IAAM,IAA+B,GAAa;AAClD,MAAI,KAAe,GAAU,QAAQ,EAAS,QAAQ;GACpD,IAAM,IAAsB,EAAS;AACrC,OAAI,EAAoB,YAAY,GAA2B;AAC7D,MACE,8EACA,SACD;AACD;UACK;AAEL,MAAS,QAAQ,kBAAC,IAAD,EAAkB,MAAM,IAAM,CAAA;IAE/C,IAAM,IAAyB,EAAU,QACvC,MAAQ,EAAK,MAAM,EAAY,GAChC,EACK,IAAe,EAAkB,CAAC,EAAY,EAAE,EAAU,CAAC,IAC3D,IAAyB,EAAU,QACvC,MAAQ,KAAQ,EACjB;AACD,MAAe;KACb,cAAc,EAAoB;KAClC,WAAW;KACX,WAAW;KACZ,CAAC,CAAC,cAAc;AAEf,KADA,EAAa,EAAuB,EACpC,EAAa,EAAuB;MACpC;;AAEJ,KAAe,KAAA,EAAU;;IAE1B;EAAC;EAAa;EAAW;EAAW;EAAe,CAAC,EAOvD,QAAgB;EACd,IAAM,EAAE,OAAO,GAAe,OAAO,MAAkB,EACrD,GACA,GACA,KACD;AASD,EANK,EAAa,GAAe,EAAM,KACrC,EAAS,EAAc,EACnB,KACF,EAAuB,EAAc,GAGpC,EAAa,GAAe,EAAM,KACrC,EAAS,EAAc,EACnB,KACF,EAAuB,EAAc;IAGxC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,IAAM,KAAqD,GACzD,MAAS;AAEP,EACE,KACO,EAAM,WAAW,UACjB,EAAM,WAAW,UAExB,OAAO,SACL,OAAO,UAAU,EAAM,QACvB,OAAO,UAAU,EAAM,OACxB;IAGL,EAAE,CACH;AACD,QACE,kBAAC,OAAD;EACE,WAAU;EACV,MAAK;EACL,OAAO;GAAE,OAAO;GAAQ,QAAQ;GAAiB;YAEjD,kBAAC,GAAD;GACE,iBAAiB;IAAE,GAAG;IAAG,GAAG;IAAG,MAAM;IAAc;GAC5C;GACA;GACP,aAAa;GAGb,qBAAoB;GACpB,WAAW,KAAA;GACX,cAAc;GACd,cAAc;aAEd,kBAAC,GAAD,EAAY,CAAA;GACF,CAAA;EACR,CAAA;GAIJ,KAAmB,MAErB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAqB,GAAI,GAAS,CAAA,EAChB,CAAA,EACC,CAAA"}
|
|
1
|
+
{"version":3,"file":"ProvenanceGraph.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceGraph.tsx"],"sourcesContent":["import SynapseClient from '@/synapse-client'\nimport { useGetEntityHeaders } from '@/synapse-queries'\nimport { useSynapseContext } from '@/utils/context/SynapseContext'\nimport { CircularProgress } from '@mui/material'\nimport {\n Activity,\n EntityHeader,\n ReferenceList,\n Used,\n USED_ENTITY_CONCRETE_TYPE_VALUE,\n UsedEntity,\n UsedURL,\n} from '@sage-bionetworks/synapse-types'\nimport { MouseEvent, useCallback, useEffect, useState, WheelEvent } from 'react'\nimport { useErrorHandler } from 'react-error-boundary'\nimport ReactFlow, {\n Controls,\n Edge,\n getConnectedEdges,\n Node,\n ReactFlowProvider,\n useEdgesState,\n useNodesState,\n useReactFlow,\n} from 'reactflow'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport { displayToast } from '../ToastMessage/ToastMessage'\nimport { ExpandGraphNodeDataProps } from './ExpandGraphNodeLabel'\nimport {\n addActivityNode,\n addEntityNode,\n addEntityPlaceholderNode,\n addExpandNode,\n addExternalNode,\n addUndefinedNode,\n findEntityNode,\n isRootEntity,\n} from './ProvenanceGraphUtils'\nimport {\n getLayoutedElements,\n isArrayEqual,\n NodeType,\n ProvenanceNodeData,\n} from './ProvenanceUtils'\nimport 'reactflow/dist/style.css'\n\nexport type ProvenanceProps = {\n // what entity nodes should we start with?\n entityRefs: ReferenceList\n containerHeight?: string\n initialNodes?: Node[]\n initialEdges?: Edge[]\n onNodesChangedListener?: (nodes: Node[]) => void\n onEdgesChangedListener?: (edges: Edge[]) => void\n}\n\nconst MAX_ACTIVITY_EXPAND_NODES = 400\nconst DEFAULT_ZOOM = 0.85\n\n/**\n * Renders a Provenance Graph for a set of entities.\n * New Nodes are added to tempNodes, and new Edges are added to tempEdges.\n * On change, these are fed into the dagre js graph library to figure out the node positions,\n * and the output stored in 'nodes' and 'edges'. The 'nodes' and 'edges' arrays are used by the\n * ReactFlow component.\n */\nconst ProvenanceReactFlow = (props: ProvenanceProps): React.ReactNode => {\n const {\n entityRefs: rootEntityRefs,\n containerHeight = '200px',\n initialNodes = [],\n initialEdges = [],\n onNodesChangedListener,\n onEdgesChangedListener,\n } = props\n const { accessToken } = useSynapseContext()\n const [tempNodes, setTempNodes] = useState<Node[]>(initialNodes)\n const [tempEdges, setTempEdges] = useState<Edge[]>(initialEdges)\n const [nodes, setNodes] = useNodesState([])\n const [edges, setEdges] = useEdgesState([])\n const [clickedNode, setClickedNode] = useState<Node>()\n const handleError = useErrorHandler()\n\n const { data: rootEntityHeadersPage, isSuccess } = useGetEntityHeaders(\n rootEntityRefs,\n { throwOnError: true },\n )\n if (\n isSuccess &&\n rootEntityHeadersPage &&\n rootEntityHeadersPage.totalNumberOfResults == 0\n ) {\n const synapseIds = rootEntityRefs.map(ref => ref.targetId).join(',')\n handleError(\n `Unable to load provenance for the given Synapse IDs: ${synapseIds}`,\n )\n }\n const rootEntityHeaders = rootEntityHeadersPage?.results\n const [initializedPosition, setInitializedPosition] = useState<boolean>(false)\n\n // Get the react flow instance so we attempt to properly center the view.\n const reactFlowInstance = useReactFlow()\n\n const onClickNode = useCallback((_event: MouseEvent, node: Node) => {\n setClickedNode(node)\n }, [])\n\n /**\n * Called when we have a new entity to add to the graph. This will result in adding\n * a new Entity Node to the nodesCopy, a link from the usedInActivity to the new Entity Node,\n * AND it will look for an Activity associated with the new entity. If an Activity is found,\n * it will add an Expand Node for the user to click (to expand to see this Activity!).\n * If this is a root node (starting entity node), then we automatically add the Activity Node\n * and process it.\n */\n const addEntity = useCallback(\n async (params: {\n entityHeader: EntityHeader\n usedInActivity?: Activity\n nodesCopy: Node[]\n edgesCopy: Edge[]\n }) => {\n const { entityHeader, nodesCopy, edgesCopy, usedInActivity } = params\n addEntityNode({\n entityHeader,\n activity: usedInActivity,\n nodesCopy,\n edgesCopy,\n })\n //look for Activity\n try {\n const activity = await SynapseClient.getActivityForEntity(\n entityHeader.id,\n entityHeader.versionNumber,\n accessToken,\n )\n // if this is not a root node (or there are too many items to show), add an expand node\n if (\n !isRootEntity({ entityHeader, rootEntityHeaders }) ||\n (activity.used && activity.used.length >= MAX_ACTIVITY_EXPAND_NODES)\n ) {\n addExpandNode({\n entityHeader,\n itemCount: activity.used?.length,\n nodesCopy,\n edgesCopy,\n })\n }\n } catch (e) {\n // Activity is not accessible\n console.error(e)\n if (\n isRootEntity({\n entityHeader,\n rootEntityHeaders,\n })\n ) {\n // add provenance undefined node\n addUndefinedNode({\n entityHeader,\n nodesCopy,\n edgesCopy,\n })\n }\n }\n },\n [accessToken, rootEntityHeaders],\n )\n\n /**\n * This effect attempts to center the graph on one of the root nodes.\n * Only initializes after after a root node has been added to the graph.\n */\n useEffect(() => {\n if (!initializedPosition && nodes.length > 0) {\n setTimeout(() => {\n if (rootEntityHeaders) {\n const rootEntityNode = findEntityNode(rootEntityHeaders[0], nodes)\n if (rootEntityNode) {\n const currentZoom = reactFlowInstance.getZoom()\n const zoom = currentZoom > DEFAULT_ZOOM ? DEFAULT_ZOOM : currentZoom\n reactFlowInstance?.setCenter(\n rootEntityNode.position.x + 150,\n rootEntityNode.position.y - 30,\n { zoom, duration: 0 },\n )\n }\n setInitializedPosition(true)\n }\n })\n }\n }, [initializedPosition, nodes, reactFlowInstance, rootEntityHeaders])\n\n /**\n * This is called when the user clicks on an Expand Node. It will add the associated Activity\n * and all \"used\" items (entities and urls) to the graph by adding items to the nodesCopy and edgesCopy arrays.\n */\n const onExpandEntity = useCallback(\n async (params: {\n entityHeader: EntityHeader\n nodesCopy: Node[]\n edgesCopy: Edge[]\n }) => {\n const { entityHeader, nodesCopy, edgesCopy } = params\n try {\n const activity = await SynapseClient.getActivityForEntity(\n entityHeader.id,\n entityHeader.versionNumber,\n accessToken,\n )\n addActivityNode({\n activity,\n entityHeader,\n nodesCopy,\n edgesCopy,\n })\n // go through Activity.used array to add these nodes/edges\n if (activity.used && activity.used.length < MAX_ACTIVITY_EXPAND_NODES) {\n const usedEntityReferences: ReferenceList = []\n activity.used.forEach((usedItem: Used) => {\n if (usedItem.concreteType == USED_ENTITY_CONCRETE_TYPE_VALUE) {\n usedEntityReferences.push((usedItem as UsedEntity).reference)\n } else {\n // UsedURL\n const usedURL = usedItem as UsedURL\n addExternalNode({ usedURL, activity, nodesCopy, edgesCopy })\n }\n })\n const usedEntityHeadersPage = await SynapseClient.getEntityHeaders(\n usedEntityReferences,\n accessToken,\n )\n const { results: usedEntityHeaderPageResults } = usedEntityHeadersPage\n // find refs that were not returned by the entity header call\n const refsMissingEntityHeaders = usedEntityReferences.filter(ref => {\n return (\n usedEntityHeaderPageResults.find(header => {\n return header.id == ref.targetId\n }) == undefined\n )\n })\n refsMissingEntityHeaders.forEach(ref => {\n addEntityPlaceholderNode({ ref, activity, nodesCopy, edgesCopy })\n })\n const addEntityPromises: Promise<void>[] = []\n usedEntityHeaderPageResults.forEach(header => {\n addEntityPromises.push(\n addEntity({\n entityHeader: header,\n nodesCopy,\n edgesCopy,\n usedInActivity: activity,\n }),\n )\n })\n await Promise.allSettled(addEntityPromises)\n }\n } catch (e) {\n // Activity is not accessible\n console.error(e)\n }\n },\n [accessToken, addEntity],\n )\n\n /**\n * This effect code executes when no nodes have been added.\n * It will add the root nodes, and attempt to expand the root nodes.\n */\n useEffect(() => {\n if (rootEntityHeaders && tempNodes.length == 0) {\n const nodesCopy = [...tempNodes]\n const edgesCopy = [...tempEdges]\n const addAndExpandPromises: Promise<void>[] = []\n rootEntityHeaders.forEach(header => {\n const addEntityPromise = addEntity({\n entityHeader: header,\n nodesCopy,\n edgesCopy,\n })\n addAndExpandPromises.push(addEntityPromise)\n\n const expandEntityPromise = onExpandEntity({\n entityHeader: header,\n nodesCopy,\n edgesCopy,\n })\n addAndExpandPromises.push(expandEntityPromise)\n })\n Promise.allSettled(addAndExpandPromises).finally(() => {\n setTempNodes(nodesCopy)\n setTempEdges(edgesCopy)\n })\n }\n }, [\n addEntity,\n handleError,\n onExpandEntity,\n rootEntityHeaders,\n rootEntityRefs,\n tempEdges,\n tempNodes,\n ])\n\n /**\n * This effect code executes when a node is clicked.\n * We check to see if it is an expand node. If it is, then we remove the expand node (and associated edge)\n * and ask for the Activity and associated \"used\" nodes (entities and URLs)\n */\n useEffect(() => {\n const nodeData: ProvenanceNodeData = clickedNode?.data as ProvenanceNodeData\n if (clickedNode && nodeData?.type == NodeType.EXPAND) {\n const expandNodeDataProps = nodeData.props as ExpandGraphNodeDataProps\n if (expandNodeDataProps.itemCount > MAX_ACTIVITY_EXPAND_NODES) {\n displayToast(\n 'Web visualization does not support expanding this many items at this time.',\n 'danger',\n )\n return\n } else {\n // graph will be used outside of synapse, so show a non-branded spinner\n nodeData.label = <CircularProgress size={30} />\n // remove clicked node\n const nodesWithoutExpandNode = tempNodes.filter(\n node => node.id != clickedNode.id,\n )\n const edgeToRemove = getConnectedEdges([clickedNode], tempEdges)[0]\n const edgesWithoutExpandEdge = tempEdges.filter(\n edge => edge != edgeToRemove,\n )\n onExpandEntity({\n entityHeader: expandNodeDataProps.entityHeader,\n nodesCopy: nodesWithoutExpandNode,\n edgesCopy: edgesWithoutExpandEdge,\n }).finally(() => {\n setTempNodes(nodesWithoutExpandNode)\n setTempEdges(edgesWithoutExpandEdge)\n })\n }\n setClickedNode(undefined)\n }\n }, [clickedNode, tempNodes, tempEdges, onExpandEntity])\n\n /**\n * This effect code is run when the graph nodes or edges change.\n * It feeds the nodes and edges into our layout library to figure out where they should be positioned.\n * The result is saved in the state variable \"nodes\" and \"edges\".\n */\n useEffect(() => {\n const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(\n tempNodes,\n tempEdges,\n 'TB',\n )\n // hack: ProvenanceUtils.getProvenanceNode() returns a new object every time, so check to see if\n // there were any real changes\n if (!isArrayEqual(layoutedNodes, nodes)) {\n setNodes(layoutedNodes)\n if (onNodesChangedListener) {\n onNodesChangedListener(layoutedNodes)\n }\n }\n if (!isArrayEqual(layoutedEdges, edges)) {\n setEdges(layoutedEdges)\n if (onEdgesChangedListener) {\n onEdgesChangedListener(layoutedEdges)\n }\n }\n }, [\n tempNodes,\n tempEdges,\n nodes,\n edges,\n setNodes,\n setEdges,\n initializedPosition,\n reactFlowInstance,\n rootEntityRefs,\n onNodesChangedListener,\n onEdgesChangedListener,\n ])\n\n const onPaneScrollFunction: (event?: WheelEvent) => void = useCallback(\n event => {\n // Cannot simply check the truthy value of event.deltaX (or Y) because the value might be 0 (or -0), which is falsy\n if (\n event &&\n typeof event.deltaX !== 'undefined' &&\n typeof event.deltaY !== 'undefined'\n ) {\n window.scrollTo(\n window.scrollX + event.deltaX,\n window.scrollY + event.deltaY,\n )\n }\n },\n [],\n )\n return (\n <div\n className=\"ProvenanceWidget\"\n role=\"graphics-doc\" //https://www.w3.org/wiki/SVG_Accessibility/ARIA_roles_for_charts#Document_Roles\n style={{ width: '100%', height: containerHeight }}\n >\n <ReactFlow\n defaultViewport={{ x: 0, y: 0, zoom: DEFAULT_ZOOM }}\n nodes={nodes}\n edges={edges}\n onNodeClick={onClickNode}\n // onNodesChange={onNodesChange} // SWC-6804: When the nodes/edges are updated (expanded) the graph is already re-rendered.\n // onEdgesChange={onEdgesChange} // Specifying these callbacks causes an infinite re-rendering loop.\n attributionPosition=\"bottom-right\"\n onConnect={undefined}\n zoomOnScroll={false}\n onPaneScroll={onPaneScrollFunction}\n >\n <Controls />\n </ReactFlow>\n </div>\n )\n}\n\nconst ProvenanceGraph = (props: ProvenanceProps): React.ReactNode => {\n return (\n <SynapseErrorBoundary>\n <ReactFlowProvider>\n <ProvenanceReactFlow {...props} />\n </ReactFlowProvider>\n </SynapseErrorBoundary>\n )\n}\n\nexport default ProvenanceGraph\n"],"mappings":";;;;;;;;;;;;;;;;AAwDA,IAAM,IAA4B,KAC5B,IAAe,KASf,KAAuB,MAA4C;CACvE,IAAM,EACJ,YAAY,GACZ,qBAAkB,SAClB,kBAAe,CAAC,GAChB,kBAAe,CAAC,GAChB,2BACA,8BACE,GACE,EAAE,mBAAgB,EAAkB,GACpC,CAAC,GAAW,KAAgB,EAAiB,CAAY,GACzD,CAAC,GAAW,KAAgB,EAAiB,CAAY,GACzD,CAAC,GAAO,KAAY,EAAc,CAAC,CAAC,GACpC,CAAC,GAAO,KAAY,EAAc,CAAC,CAAC,GACpC,CAAC,GAAa,KAAkB,EAAe,GAC/C,IAAc,EAAgB,GAE9B,EAAE,MAAM,GAAuB,iBAAc,EACjD,GACA,EAAE,cAAc,GAAK,CACvB;CACA,AACE,KACA,KACA,EAAsB,wBAAwB,KAG9C,EACE,wDAFiB,EAAe,KAAI,MAAO,EAAI,QAAQ,EAAE,KAAK,GAEN,GAC1D;CAEF,IAAM,IAAoB,GAAuB,SAC3C,CAAC,GAAqB,KAA0B,EAAkB,EAAK,GAGvE,IAAoB,EAAa,GAEjC,KAAc,GAAa,GAAoB,MAAe;EAClE,EAAe,CAAI;CACrB,GAAG,CAAC,CAAC,GAUC,IAAY,EAChB,OAAO,MAKD;EACJ,IAAM,EAAE,iBAAc,cAAW,cAAW,sBAAmB;EAC/D,GAAc;GACZ;GACA,UAAU;GACV;GACA;EACF,CAAC;EAED,IAAI;GACF,IAAM,IAAW,MAAM,EAAc,qBACnC,EAAa,IACb,EAAa,eACb,CACF;GAEA,CACE,CAAC,EAAa;IAAE;IAAc;GAAkB,CAAC,KAChD,EAAS,QAAQ,EAAS,KAAK,UAAU,MAE1C,EAAc;IACZ;IACA,WAAW,EAAS,MAAM;IAC1B;IACA;GACF,CAAC;EAEL,SAAS,GAAG;GAGV,AADA,QAAQ,MAAM,CAAC,GAEb,EAAa;IACX;IACA;GACF,CAAC,KAGD,EAAiB;IACf;IACA;IACA;GACF,CAAC;EAEL;CACF,GACA,CAAC,GAAa,CAAiB,CACjC;CAMA,QAAgB;EACd,AAAI,CAAC,KAAuB,EAAM,SAAS,KACzC,iBAAiB;GACf,IAAI,GAAmB;IACrB,IAAM,IAAiB,EAAe,EAAkB,IAAI,CAAK;IACjE,IAAI,GAAgB;KAClB,IAAM,IAAc,EAAkB,QAAQ,GACxC,IAAO,IAAc,IAAe,IAAe;KACzD,GAAmB,UACjB,EAAe,SAAS,IAAI,KAC5B,EAAe,SAAS,IAAI,IAC5B;MAAE;MAAM,UAAU;KAAE,CACtB;IACF;IACA,EAAuB,EAAI;GAC7B;EACF,CAAC;CAEL,GAAG;EAAC;EAAqB;EAAO;EAAmB;CAAiB,CAAC;CAMrE,IAAM,IAAiB,EACrB,OAAO,MAID;EACJ,IAAM,EAAE,iBAAc,cAAW,iBAAc;EAC/C,IAAI;GACF,IAAM,IAAW,MAAM,EAAc,qBACnC,EAAa,IACb,EAAa,eACb,CACF;GAQA,IAPA,GAAgB;IACd;IACA;IACA;IACA;GACF,CAAC,GAEG,EAAS,QAAQ,EAAS,KAAK,SAAS,GAA2B;IACrE,IAAM,IAAsC,CAAC;IAC7C,EAAS,KAAK,SAAS,MAAmB;KACxC,AAAI,EAAS,gBAAgB,IAC3B,EAAqB,KAAM,EAAwB,SAAS,IAI5D,EAAgB;MAAE,SAAA;MAAS;MAAU;MAAW;KAAU,CAAC;IAE/D,CAAC;IAKD,IAAM,EAAE,SAAS,MAAgC,MAJb,EAAc,iBAChD,GACA,CACF;IAUA,EAPsD,QAAO,MAEzD,EAA4B,MAAK,MACxB,EAAO,MAAM,EAAI,QACzB,KAAK,IAGV,EAAyB,SAAQ,MAAO;KACtC,EAAyB;MAAE;MAAK;MAAU;MAAW;KAAU,CAAC;IAClE,CAAC;IACD,IAAM,IAAqC,CAAC;IAW5C,AAVA,EAA4B,SAAQ,MAAU;KAC5C,EAAkB,KAChB,EAAU;MACR,cAAc;MACd;MACA;MACA,gBAAgB;KAClB,CAAC,CACH;IACF,CAAC,GACD,MAAM,QAAQ,WAAW,CAAiB;GAC5C;EACF,SAAS,GAAG;GAEV,QAAQ,MAAM,CAAC;EACjB;CACF,GACA,CAAC,GAAa,CAAS,CACzB;CAqFA,AA/EA,QAAgB;EACd,IAAI,KAAqB,EAAU,UAAU,GAAG;GAC9C,IAAM,IAAY,CAAC,GAAG,CAAS,GACzB,IAAY,CAAC,GAAG,CAAS,GACzB,IAAwC,CAAC;GAgB/C,AAfA,EAAkB,SAAQ,MAAU;IAClC,IAAM,IAAmB,EAAU;KACjC,cAAc;KACd;KACA;IACF,CAAC;IACD,EAAqB,KAAK,CAAgB;IAE1C,IAAM,IAAsB,EAAe;KACzC,cAAc;KACd;KACA;IACF,CAAC;IACD,EAAqB,KAAK,CAAmB;GAC/C,CAAC,GACD,QAAQ,WAAW,CAAoB,EAAE,cAAc;IAErD,AADA,EAAa,CAAS,GACtB,EAAa,CAAS;GACxB,CAAC;EACH;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAOD,QAAgB;EACd,IAAM,IAA+B,GAAa;EAClD,IAAI,KAAe,GAAU,QAAQ,EAAS,QAAQ;GACpD,IAAM,IAAsB,EAAS;GACrC,IAAI,EAAoB,YAAY,GAA2B;IAC7D,EACE,8EACA,QACF;IACA;GACF,OAAO;IAEL,EAAS,QAAQ,kBAAC,IAAD,EAAkB,MAAM,GAAK,CAAA;IAE9C,IAAM,IAAyB,EAAU,QACvC,MAAQ,EAAK,MAAM,EAAY,EACjC,GACM,IAAe,EAAkB,CAAC,CAAW,GAAG,CAAS,EAAE,IAC3D,IAAyB,EAAU,QACvC,MAAQ,KAAQ,CAClB;IACA,EAAe;KACb,cAAc,EAAoB;KAClC,WAAW;KACX,WAAW;IACb,CAAC,EAAE,cAAc;KAEf,AADA,EAAa,CAAsB,GACnC,EAAa,CAAsB;IACrC,CAAC;GACH;GACA,EAAe,KAAA,CAAS;EAC1B;CACF,GAAG;EAAC;EAAa;EAAW;EAAW;CAAc,CAAC,GAOtD,QAAgB;EACd,IAAM,EAAE,OAAO,GAAe,OAAO,MAAkB,EACrD,GACA,GACA,IACF;EASA,AANK,EAAa,GAAe,CAAK,MACpC,EAAS,CAAa,GAClB,KACF,EAAuB,CAAa,IAGnC,EAAa,GAAe,CAAK,MACpC,EAAS,CAAa,GAClB,KACF,EAAuB,CAAa;CAG1C,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,IAAM,KAAqD,GACzD,MAAS;EAEP,AACE,KACO,EAAM,WAAW,UACjB,EAAM,WAAW,UAExB,OAAO,SACL,OAAO,UAAU,EAAM,QACvB,OAAO,UAAU,EAAM,MACzB;CAEJ,GACA,CAAC,CACH;CACA,OACE,kBAAC,OAAD;EACE,WAAU;EACV,MAAK;EACL,OAAO;GAAE,OAAO;GAAQ,QAAQ;EAAgB;YAEhD,kBAAC,GAAD;GACE,iBAAiB;IAAE,GAAG;IAAG,GAAG;IAAG,MAAM;GAAa;GAC3C;GACA;GACP,aAAa;GAGb,qBAAoB;GACpB,WAAW,KAAA;GACX,cAAc;GACd,cAAc;aAEd,kBAAC,GAAD,CAAW,CAAA;EACF,CAAA;CACR,CAAA;AAET,GAEM,KAAmB,MAErB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAqB,GAAI,EAAQ,CAAA,EAChB,CAAA,EACC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvenanceGraphUtils.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceGraphUtils.ts"],"sourcesContent":["import { Edge, Node } from 'reactflow'\nimport { EntityHeader, Reference } from '@sage-bionetworks/synapse-types'\nimport { Activity, UsedURL } from '@sage-bionetworks/synapse-types'\nimport {\n getNodeId,\n getProvenanceEdge,\n getProvenanceNode,\n NodeType,\n ProvenanceNodeProps,\n} from './ProvenanceUtils'\n\n/**\n * Is one of the root Entities given by the user\n */\nexport const isRootEntity = (params: {\n entityHeader: EntityHeader\n rootEntityHeaders?: EntityHeader[]\n}) => {\n const { entityHeader, rootEntityHeaders } = params\n const foundNode = rootEntityHeaders?.find(header => {\n return (\n entityHeader.id == header.id &&\n entityHeader.versionNumber == header.versionNumber\n )\n })\n return foundNode !== undefined\n}\n\n/**\n * Given the node properties, will return true if this node is already in the nodesCopy array.\n */\nexport const isNodeNotFound = (\n nodeProps: ProvenanceNodeProps,\n nodesCopy: Node[],\n) => {\n const foundNode = nodesCopy.find(node => {\n return node.id === getNodeId(nodeProps)\n })\n return foundNode === undefined\n}\n\nexport const findEntityNode = (\n entityHeader: EntityHeader,\n nodesCopy: Node[],\n) => {\n const nodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n return nodesCopy.find(node => {\n return node.id === getNodeId(nodeProps)\n })\n}\n\n/**\n * Given the node properties, will return true if this edge is already in the edgesCopy array.\n */\nexport const isEdgeNotFound = (\n nodeProps1: ProvenanceNodeProps,\n nodeProps2: ProvenanceNodeProps,\n edgesCopy: Edge[],\n) => {\n const foundEdge = edgesCopy.find(edge => {\n return (\n edge.source === getNodeId(nodeProps1) &&\n edge.target === getNodeId(nodeProps2)\n )\n })\n return foundEdge === undefined\n}\n\n/**\n * Given node properties of the new node and existing node, this function creates and adds a new node to\n * nodesCopy, and creates an edge from the new node to the existing node. Note, this will only create\n * a new node or edge if these items are not found in the input nodesCopy array and edgesCopy array.\n */\nexport const addNodeAndEdge = (params: {\n newNodeProps: ProvenanceNodeProps\n existingNodeProps: ProvenanceNodeProps\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { newNodeProps, existingNodeProps, nodesCopy, edgesCopy } = params\n if (isNodeNotFound(newNodeProps, nodesCopy)) {\n nodesCopy.push(getProvenanceNode(newNodeProps))\n }\n if (isEdgeNotFound(newNodeProps, existingNodeProps, edgesCopy)) {\n edgesCopy.push(getProvenanceEdge(newNodeProps, existingNodeProps))\n }\n}\n\nexport const addActivityNode = (params: {\n activity: Activity\n entityHeader: EntityHeader\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { activity, entityHeader, nodesCopy, edgesCopy } = params\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n addNodeAndEdge({\n newNodeProps: activityNodeProps,\n existingNodeProps: entityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addExpandNode = (params: {\n entityHeader: EntityHeader\n itemCount: number | undefined\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { entityHeader, itemCount = 0, nodesCopy, edgesCopy } = params\n const expandNodeProps = {\n type: NodeType.EXPAND,\n data: {\n itemCount,\n entityHeader,\n },\n }\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n addNodeAndEdge({\n newNodeProps: expandNodeProps,\n existingNodeProps: entityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addEntityPlaceholderNode = (params: {\n ref: Reference\n activity: Activity\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { ref, activity, nodesCopy, edgesCopy } = params\n const entityPlaceholderNodeProps = {\n type: NodeType.ENTITY_PLACEHOLDER,\n data: ref,\n }\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n addNodeAndEdge({\n newNodeProps: entityPlaceholderNodeProps,\n existingNodeProps: activityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addUndefinedNode = (params: {\n entityHeader: EntityHeader\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { entityHeader, nodesCopy, edgesCopy } = params\n const undefinedNodeProps = {\n type: NodeType.UNDEFINED,\n data: entityHeader,\n }\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n addNodeAndEdge({\n newNodeProps: undefinedNodeProps,\n existingNodeProps: entityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addExternalNode = (params: {\n usedURL: UsedURL\n activity: Activity\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { usedURL, activity, nodesCopy, edgesCopy } = params\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n const externalNodeProps = {\n type: NodeType.EXTERNAL,\n data: usedURL,\n }\n addNodeAndEdge({\n newNodeProps: externalNodeProps,\n existingNodeProps: activityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addEntityNode = (params: {\n entityHeader: EntityHeader\n activity: Activity | undefined\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { entityHeader, activity, nodesCopy, edgesCopy } = params\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n if (isNodeNotFound(entityNodeProps, nodesCopy)) {\n // add the new entity node\n nodesCopy.push(getProvenanceNode(entityNodeProps))\n if (activity) {\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n edgesCopy.push(getProvenanceEdge(entityNodeProps, activityNodeProps))\n }\n }\n}\n"],"mappings":";;AAcA,IAAa,KAAgB,MAGvB;CACJ,IAAM,EAAE,iBAAc,yBAAsB;
|
|
1
|
+
{"version":3,"file":"ProvenanceGraphUtils.js","names":[],"sources":["../../../src/components/ProvenanceGraph/ProvenanceGraphUtils.ts"],"sourcesContent":["import { Edge, Node } from 'reactflow'\nimport { EntityHeader, Reference } from '@sage-bionetworks/synapse-types'\nimport { Activity, UsedURL } from '@sage-bionetworks/synapse-types'\nimport {\n getNodeId,\n getProvenanceEdge,\n getProvenanceNode,\n NodeType,\n ProvenanceNodeProps,\n} from './ProvenanceUtils'\n\n/**\n * Is one of the root Entities given by the user\n */\nexport const isRootEntity = (params: {\n entityHeader: EntityHeader\n rootEntityHeaders?: EntityHeader[]\n}) => {\n const { entityHeader, rootEntityHeaders } = params\n const foundNode = rootEntityHeaders?.find(header => {\n return (\n entityHeader.id == header.id &&\n entityHeader.versionNumber == header.versionNumber\n )\n })\n return foundNode !== undefined\n}\n\n/**\n * Given the node properties, will return true if this node is already in the nodesCopy array.\n */\nexport const isNodeNotFound = (\n nodeProps: ProvenanceNodeProps,\n nodesCopy: Node[],\n) => {\n const foundNode = nodesCopy.find(node => {\n return node.id === getNodeId(nodeProps)\n })\n return foundNode === undefined\n}\n\nexport const findEntityNode = (\n entityHeader: EntityHeader,\n nodesCopy: Node[],\n) => {\n const nodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n return nodesCopy.find(node => {\n return node.id === getNodeId(nodeProps)\n })\n}\n\n/**\n * Given the node properties, will return true if this edge is already in the edgesCopy array.\n */\nexport const isEdgeNotFound = (\n nodeProps1: ProvenanceNodeProps,\n nodeProps2: ProvenanceNodeProps,\n edgesCopy: Edge[],\n) => {\n const foundEdge = edgesCopy.find(edge => {\n return (\n edge.source === getNodeId(nodeProps1) &&\n edge.target === getNodeId(nodeProps2)\n )\n })\n return foundEdge === undefined\n}\n\n/**\n * Given node properties of the new node and existing node, this function creates and adds a new node to\n * nodesCopy, and creates an edge from the new node to the existing node. Note, this will only create\n * a new node or edge if these items are not found in the input nodesCopy array and edgesCopy array.\n */\nexport const addNodeAndEdge = (params: {\n newNodeProps: ProvenanceNodeProps\n existingNodeProps: ProvenanceNodeProps\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { newNodeProps, existingNodeProps, nodesCopy, edgesCopy } = params\n if (isNodeNotFound(newNodeProps, nodesCopy)) {\n nodesCopy.push(getProvenanceNode(newNodeProps))\n }\n if (isEdgeNotFound(newNodeProps, existingNodeProps, edgesCopy)) {\n edgesCopy.push(getProvenanceEdge(newNodeProps, existingNodeProps))\n }\n}\n\nexport const addActivityNode = (params: {\n activity: Activity\n entityHeader: EntityHeader\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { activity, entityHeader, nodesCopy, edgesCopy } = params\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n addNodeAndEdge({\n newNodeProps: activityNodeProps,\n existingNodeProps: entityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addExpandNode = (params: {\n entityHeader: EntityHeader\n itemCount: number | undefined\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { entityHeader, itemCount = 0, nodesCopy, edgesCopy } = params\n const expandNodeProps = {\n type: NodeType.EXPAND,\n data: {\n itemCount,\n entityHeader,\n },\n }\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n addNodeAndEdge({\n newNodeProps: expandNodeProps,\n existingNodeProps: entityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addEntityPlaceholderNode = (params: {\n ref: Reference\n activity: Activity\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { ref, activity, nodesCopy, edgesCopy } = params\n const entityPlaceholderNodeProps = {\n type: NodeType.ENTITY_PLACEHOLDER,\n data: ref,\n }\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n addNodeAndEdge({\n newNodeProps: entityPlaceholderNodeProps,\n existingNodeProps: activityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addUndefinedNode = (params: {\n entityHeader: EntityHeader\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { entityHeader, nodesCopy, edgesCopy } = params\n const undefinedNodeProps = {\n type: NodeType.UNDEFINED,\n data: entityHeader,\n }\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n addNodeAndEdge({\n newNodeProps: undefinedNodeProps,\n existingNodeProps: entityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addExternalNode = (params: {\n usedURL: UsedURL\n activity: Activity\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { usedURL, activity, nodesCopy, edgesCopy } = params\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n const externalNodeProps = {\n type: NodeType.EXTERNAL,\n data: usedURL,\n }\n addNodeAndEdge({\n newNodeProps: externalNodeProps,\n existingNodeProps: activityNodeProps,\n nodesCopy,\n edgesCopy,\n })\n}\n\nexport const addEntityNode = (params: {\n entityHeader: EntityHeader\n activity: Activity | undefined\n nodesCopy: Node[]\n edgesCopy: Edge[]\n}) => {\n const { entityHeader, activity, nodesCopy, edgesCopy } = params\n const entityNodeProps = {\n type: NodeType.ENTITY,\n data: entityHeader,\n }\n if (isNodeNotFound(entityNodeProps, nodesCopy)) {\n // add the new entity node\n nodesCopy.push(getProvenanceNode(entityNodeProps))\n if (activity) {\n const activityNodeProps = {\n type: NodeType.ACTIVITY,\n data: activity,\n }\n edgesCopy.push(getProvenanceEdge(entityNodeProps, activityNodeProps))\n }\n }\n}\n"],"mappings":";;AAcA,IAAa,KAAgB,MAGvB;CACJ,IAAM,EAAE,iBAAc,yBAAsB;CAO5C,OANkB,GAAmB,MAAK,MAEtC,EAAa,MAAM,EAAO,MAC1B,EAAa,iBAAiB,EAAO,aAExC,MACoB,KAAA;AACvB,GAKa,KACX,GACA,MAEkB,EAAU,MAAK,MACxB,EAAK,OAAO,EAAU,CAAS,CAEjC,MAAc,KAAA,GAGV,KACX,GACA,MACG;CACH,IAAM,IAAY;EAChB,MAAM,EAAS;EACf,MAAM;CACR;CACA,OAAO,EAAU,MAAK,MACb,EAAK,OAAO,EAAU,CAAS,CACvC;AACH,GAKa,KACX,GACA,GACA,MAEkB,EAAU,MAAK,MAE7B,EAAK,WAAW,EAAU,CAAU,KACpC,EAAK,WAAW,EAAU,CAAU,CAGjC,MAAc,KAAA,GAQV,KAAkB,MAKzB;CACJ,IAAM,EAAE,iBAAc,sBAAmB,cAAW,iBAAc;CAIlE,AAHI,EAAe,GAAc,CAAS,KACxC,EAAU,KAAK,EAAkB,CAAY,CAAC,GAE5C,EAAe,GAAc,GAAmB,CAAS,KAC3D,EAAU,KAAK,EAAkB,GAAc,CAAiB,CAAC;AAErE,GAEa,KAAmB,MAK1B;CACJ,IAAM,EAAE,aAAU,iBAAc,cAAW,iBAAc;CASzD,EAAe;EACb,cAAc;GARd,MAAM,EAAS;GACf,MAAM;EAOQ;EACd,mBAAmB;GALnB,MAAM,EAAS;GACf,MAAM;EAIa;EACnB;EACA;CACF,CAAC;AACH,GAEa,KAAiB,MAKxB;CACJ,IAAM,EAAE,iBAAc,eAAY,GAAG,cAAW,iBAAc;CAY9D,EAAe;EACb,cAAc;GAXd,MAAM,EAAS;GACf,MAAM;IACJ;IACA;GACF;EAOc;EACd,mBAAmB;GALnB,MAAM,EAAS;GACf,MAAM;EAIa;EACnB;EACA;CACF,CAAC;AACH,GAEa,KAA4B,MAKnC;CACJ,IAAM,EAAE,QAAK,aAAU,cAAW,iBAAc;CAShD,EAAe;EACb,cAAc;GARd,MAAM,EAAS;GACf,MAAM;EAOQ;EACd,mBAAmB;GALnB,MAAM,EAAS;GACf,MAAM;EAIa;EACnB;EACA;CACF,CAAC;AACH,GAEa,KAAoB,MAI3B;CACJ,IAAM,EAAE,iBAAc,cAAW,iBAAc;CAS/C,EAAe;EACb,cAAc;GARd,MAAM,EAAS;GACf,MAAM;EAOQ;EACd,mBAAmB;GALnB,MAAM,EAAS;GACf,MAAM;EAIa;EACnB;EACA;CACF,CAAC;AACH,GAEa,KAAmB,MAK1B;CACJ,IAAM,EAAE,YAAS,aAAU,cAAW,iBAAc,GAC9C,IAAoB;EACxB,MAAM,EAAS;EACf,MAAM;CACR;CAKA,EAAe;EACb,cAAc;GAJd,MAAM,EAAS;GACf,MAAM;EAGQ;EACd,mBAAmB;EACnB;EACA;CACF,CAAC;AACH,GAEa,KAAiB,MAKxB;CACJ,IAAM,EAAE,iBAAc,aAAU,cAAW,iBAAc,GACnD,IAAkB;EACtB,MAAM,EAAS;EACf,MAAM;CACR;CACA,IAAI,EAAe,GAAiB,CAAS,MAE3C,EAAU,KAAK,EAAkB,CAAe,CAAC,GAC7C,IAAU;EACZ,IAAM,IAAoB;GACxB,MAAM,EAAS;GACf,MAAM;EACR;EACA,EAAU,KAAK,EAAkB,GAAiB,CAAiB,CAAC;CACtE;AAEJ"}
|